1. ホーム
  2. ansible

[解決済み] ansibleでファイルをロールに相対的にコピーする方法とは?

2023-03-16 14:15:19

質問

ロールの中にコピータスクがあります。 src の位置は、ロールを呼び出すプレイブックではなく、ロール自体に相対的であるだろうと予想していました。

これを動作させるために、どのようにして myfrole/files の中のタスクから myrole/tasks というように、パスの一部としてロール名を含めることはあまり意味がありません。もしそうすれば、ロールを複製したときに壊れてしまいます。

どのように解決するのですか?

パスを全く指定せず、ファイル名だけを指定した場合、Ansibleはそれを自動的に files ディレクトリから自動的に選択します。

- copy:
    src: foo.conf
    dest: /etc/foo.conf

さらに、Ansible 1.8 以降では、変数 role_path という変数があり、これを コピー タスクで使うことができます。

- copy:
    src: "{{ role_path }}/files/foo.conf"
    dest: /etc/foo.conf