tschifftner.duplicity
Ansibleロール: Duplicityのインストールと設定
ソースからDuplicityをインストールし、Debian/UbuntuのLinuxサーバーでバックアップタスクを管理します。
必要条件
Ansible 2.0以上
依存関係
なし。
インストール
$ ansible-galaxy install tschifftner.duplicity
例のプレイブック
利用可能な変数は以下に示し、デフォルト値を含みます(defaults/main.yml
を参照):
- hosts: webservers
vars:
# Duplicity
duplicity_known_hosts:
- host: 'example.org'
key: 'example.org ssh-rsa AAAAB3NzaC...+PwAK+MPw=='
state: present
duplicity_config_vars:
FTP_SERVER: 'sftp://[email protected]/my/folder/'
FTP_PASSWORD: '*******'
DEFAULT_PARAMS: '--verbosity info --exclude-device-files --exclude-other-filesystems --exclude-if-present .duplicity-ignore'
duplicity_cronjobs:
- name: '2ヶ月以上古いファイルのクリーンアップ'
user: root
group: root
source: /etc/duplicity/duplicity.conf
hour: 4
minute: 10
command: >
duplicity remove-older-than 2M --force --extra-clean $FTP_SERVER;
duplicity cleanup --force $FTP_SERVER
- name: '/var/wwwのバックアップ'
user: root
group: root
hour: 5
minute: 21
source: /etc/duplicity/duplicity.conf
command: duplicity $DEFAULT_PARAMS --include /var/www --full-if-older-than 1M --exclude '**' / $FTP_SERVER
roles:
- { role: tschifftner.duplicity }
すべての変数を外部ファイルに保存することをお勧めします。
- hosts: webservers
vars_files:
- duplicity-settings.yml
roles:
- { role: tschifftner.duplicity }
ヒント
- サーバーのssh-keyを取得するには、
ssh-keyscan -t rsa example.org
を使用します(これはduplicity_known_hosts変数で使用されます)。 - cronジョブは複数行で記述することも可能ですが、アイデポテンスに失敗する原因になります。例えば:
command: >
duplicity remove-older-than 2M --force --extra-clean $FTP_SERVER;
duplicity cleanup --force $FTP_SERVER
これは常に変更された結果になります。
Duplicityの変数
duplicity_config_vars:
SERVER: 'ftp://[email protected]/backups/'
PASSPHRASE: 'あなたの秘密のパスフレーズ'
FTP_PASSWORD: '*******'
PARAMS: '--verbosity info --exclude-device-files --exclude-other-filesystems --exclude-if-present .duplicity-ignore --exclude-filelist /etc/duplicity/exclude.list'
INCLUDES: '/root /home /var/www /var/backup'
GPG暗号化
GPG暗号化はこのロールではサポートされていません。手動でインストールする必要があります。
GPGキー・ペアを生成
GPGキーを生成するには、以下のスニペットを使用します。
gpg --batch --gen-key <<EOF
%echo GPGキーを生成中
Key-Type: RSA
Key-Length: 4096
Subkey-Type: RSA
Subkey-Length: 4096
Name-Real: Duplicity Backup
Name-Comment: バックアップ暗号化用
Name-Email: duplicity@localhost
Expire-Date: 0
Passphrase: あなたの個人的なユニークなパスフレーズ
%commit
%echo 完了
EOF
公開鍵をエクスポート
gpg --output FB37DF3B.public.asc --armor --export FB37DF3B
オーナートラストをエクスポート
gpg --export-ownertrust > ownertrust.txt
秘密鍵をエクスポート
gpg --output FB37DF3B.private.asc --armor --export-secret-key FB37DF3B
知っているホスト
ホストを既知のホストとしてマークするには
duplicity_known_hosts:
- host: 'ftp.example.com'
key: 'ftp.example.com ssh-rsa AAAAB3NzaC1yc2[...]+MPw=='
state: 'present'
システムがサポートしている場合、ecdsaやed25519キーを使用することも可能です。
ssh-keyscan -t ecdsa ftp.example.com
ssh-keyscan -t ed25519 ftp.example.com
Duptools
Duptoolsはバックアップを管理するためのヘルパースクリプトです。デフォルトでインストールされていますが、duplicity_install_duptools: false
で無効にすることができます。
Duptoolsを実行
コマンドラインにduptools
と入力するだけで、利用可能なオプションを取得できます:
duptools - Duplicityバックアップを管理します
使用法:
duptools backup
duptools list
duptools status
duptools restore file [time] dest
duptools remove [time]
[time]
a) now
b) 2002-01-25T07:00:00+02:00
c) D=日、W=週、M=月、Y=年、h=時間、m=分、s=秒
サポートされているOS
- Debian 9 (Stretch)
- Debian 8 (Jessie)
- Ubuntu 18.04 (Bionic Beaver)
- Ubuntu 16.04 (Xenial Xerus)
必要なAnsibleのバージョン
Ansible 2.5以上
ライセンス
著者情報
TODO
- 再インストールの修正と他のバージョンのインストール、現在はファイル/usr/local/bin/duplicityを書き換えず、pipがduplicityをアンインストールしないようにする。
プロジェクトについて
Installs duplicity from source and handles backup tasks on Debian/Ubuntu linux servers.
インストール
ansible-galaxy install tschifftner.duplicity
ライセンス
mit
ダウンロード
90
所有者
Kubernetes Software Architekt, Magento Certified Developer und Full-Stack Entwickler