web-dev-qa-db-ja.com

Ansibleを使用してサーバーをバックアップしますか?

Ansible サーバー上のアプリケーションをデプロイおよび更新するための非常に効率的な自動化ツールのようです。

  • (Linux)サーバーのバックアップにも使用できますか?そうすることは良い習慣ですか?

  • はいの場合、それを行う方法に関するモジュール/例はありますか?たとえば、データベースのエクスポートを作成して別のマシンにコピーしたいとします。Ansibleでこのタスクを自動化するにはどうすればよいですか?

10
Nicolas C

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
9
Aniket

私自身の質問に答えて、リモートサーバーからファイルをダウンロードできるフェッチモジュールを見つけました: http://docs.ansible.com/ansible/fetch_module.html

2
Nicolas C