# hogedomain backup ## 概要 ホームラボのサーバーで稼働している3システムのボリュームをバックアップする。 操作ミスでボリュームが削除されないよう、バックアップ用のコンテナを削除しない。 ホームラボのサーバーをバックアップすることを目的としており、汎用的にできていない。 雑なバックアップをする際のテンプレート&やり方メモ。 (名前のhdは、HOGEDOMAINの略称) ## 構築方法 ### ダウンロード このリポジトリからダウンロードする。 ``` git clone https://gitea.rohhie.net/rohhie/hd-backup.git cd hd-backup ``` ### ベースとなるイメージを作成 バックアップコンテナのベースとなるイメージを作成する。 スクリプトの修正等でコンテナを作り直す際に、最低限のダウンロードで済ませるため。 ``` sudo baseimage/mkbaseimage.sh ``` なお、ベースイメージにはSambaをインストールしている。 sysvolディレクトリの拡張属性をバックアップするためなので、不要な場合はapk addのところから削除する。 ### バックアップ対象のボリュームを設定 docker-compose.ymlを編集し、バックアップ対象のボリュームを設定する。 コンテナ内の/tmp配下にマウントしているが、このディレクトリは存在しなければ作られる。 ただし、バックアップでsambaの機能(拡張属性の取得)を使うため、/etc/sambaと/var/lib/sambaは所定の場所にマウントしている。 バックアップ先は、ホストの/var/backupsにしている。 ### バックアップスクリプトを修正 ホームラボでバックアップしたいボリュームを固める処理を書いている。 sysvolについては、拡張属性を取り出して、復元用のスクリプトを作成している。 バックアップ対象のボリュームにあわせて、バックアップスクリプトを修正する。 ### バックアップ実行スクリプトを修正 バックアップ対象のコンテナを停止し、バックアップを実行し、コンテナを起動する。 3システム(5コンテナ)を停止・起動しているが、必要に応じて修正する。 ## 使い方 バックアップ実行スクリプトを実行する。 ``` sudo ./do-backup.sh ``` 環境によっては、クーロンに登録しても良いと思われる。 ホームラボでは、サーバーが常時動いていないので、手動で実行することにしている。 ## リストア リストアする際には、バックアップスクリプトが動作しないように docker-compose.yml を変更する。 ``` DO_BACKUP: "false" ``` 設定変更後、コンテナを起動し、コンテナの中でリストア操作をする。 ``` sudo docker compose up -d sudo docker exec -it backup ash --login ``` Samba ad dcについては拡張属性設定スクリプトを用意しているので、復元後に実行しておく。 var/lib/samba/NTACL ## その他 詳細はメインサイト参照。 https://rohhie.net/back-up-the-docker-volume/ ## ライセンス MIT