Ansible サーバー上のアプリケーションをデプロイおよび更新するための非常に効率的な自動化ツールのようです。
(Linux)サーバーのバックアップにも使用できますか?そうすることは良い習慣ですか?
はいの場合、それを行う方法に関するモジュール/例はありますか?たとえば、データベースのエクスポートを作成して別のマシンにコピーしたいとします。Ansibleでこのタスクを自動化するにはどうすればよいですか?
Ansibleを使用してサーバーをバックアップすることが可能です。私はAnsibleの新規ユーザーなので、それが良い習慣かどうかはわかりません。
データベースをバックアップしたい場合は、 mysql_db モジュールを使用できます。
tasks:
- name: backup db server
mysql_db: name={{item}} state=dump target=/{{item}}-{{ansible_date_time.iso8601}}.sql
with_items: db_name
次に、fetchまたはsynchronize module を使用して、これらのファイルをローカルマシンに転送できます。 fetch
モジュールでは、ワイルドカード文字とフォルダーのダウンロードをサポートしていないため、複数のファイルをダウンロードすることはできません。 1つのtarファイルを作成することは、この問題を克服するためのオプションです。
scp
を使用して、リモートインスタンスからバックアップファイルをダウンロードすることもできます。
- name: Downloading backup files from remote machine
command: scp -i {{ansible_ssh_private_key_file}} {{remote_user}}@{{Host}}:/backup/* {{backup_folder}}
delegate_to: 127.0.0.1
私自身の質問に答えて、リモートサーバーからファイルをダウンロードできるフェッチモジュールを見つけました: http://docs.ansible.com/ansible/fetch_module.html