Ansibleのsynchronizeモジュールの動作原理と使用方法


synchronizeモジュールを使用するためには、以下のようなタスクをAnsibleのPlaybookに定義する必要があります。

- name: ファイル同期の例
  synchronize:
    src: /path/to/source/file
    dest: /path/to/destination/file

上記の例では、srcパラメータにはコピー元のパスを、destパラメータにはコピー先のパスを指定しています。Ansibleは指定されたパスのファイルやディレクトリの状態を確認し、必要に応じて同期を行います。

synchronizeモジュールには、さまざまなオプションがあります。例えば、deleteオプションをyesに設定すると、コピー先に存在しないファイルやディレクトリが削除されます。また、rsync_optsオプションを使用すると、rsyncコマンドのオプションを指定することができます。

- name: ディレクトリ同期の例
  synchronize:
    src: /path/to/source/directory/
    dest: /path/to/destination/directory/
    delete: yes
    rsync_opts:
      - "--exclude='*.log'"

上記の例では、deleteオプションにyesを設定しており、同期先に存在しないファイルやディレクトリが削除されます。さらに、rsync_optsオプションにはrsyncコマンドのオプションを指定しています。この場合、--exclude='*.log'オプションを使用して、拡張子が.logのファイルを同期対象から除外しています。

Ansibleのsynchronizeモジュールは、ファイルやディレクトリの同期を容易に行うための強力なツールです。このモジュールを使用することで、サーバ間でのファイルのコピー、削除、更新などを簡単に実現することができます。