複数の設定ファイルを一連のディレクトリに展開する必要があります。コピー中に複数のsrcと宛先にwith_fileglobを使用する
- name: Deploy apache configuration files
template: src={{ item.src }} dest=/etc/httpd/{{ item.dest }} mode=0644
with_fileglob:
- { src: "../templates/apache_templates/conf/*.conf", dest: 'conf' }
- { src: "../templates/apache_templates/conf.d/*.conf", dest: 'conf.d' }
上記のタスクを実行すると、以下のエラーが表示されます。
An exception occurred during task execution. The full traceback is:
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/ansible/executor/task_executor.py", line 90, in run
items = self._get_loop_items()
File "/usr/lib/python2.7/site-packages/ansible/executor/task_executor.py", line 205, in _get_loop_items
items = mylookup.run(terms=loop_terms, variables=self._job_vars, wantlist=True)
File "/usr/lib/python2.7/site-packages/ansible/plugins/lookup/fileglob.py", line 34, in run
term_file = os.path.basename(term)
File "/usr/lib64/python2.7/posixpath.py", line 121, in basename
i = p.rfind('/') + 1
AttributeError: 'dict' object has no attribute 'rfind'
fatal: [server1.example.com]: FAILED! => {
"failed": true,
"msg": "Unexpected failure during module execution.",
"stdout": ""
}
Iは、上記課題にwith_items
とwith_fileglob
を交換する場合は、パスが存在しないため、奇数msg": "Unable to find '../templates/apache/conf/*.conf' in expected paths."
エラーをスローします。
ただし、以下のように設定ファイルをハードコードすると、タスクは意図した通りに動作します。私はこの作業を取得するにはどうすればよい
- name: Deploy apache configuration files
template: src={{ item.src }} dest=/etc/httpd/{{ item.dest }} mode=0644
with_items:
- { src: "../templates/apache_templates/conf/vhost1.conf", dest: 'conf' }
- { src: "../templates/apache_templates/conf.d/example1.conf", dest: 'conf.d' }
を展開するために、複数の設定ファイルを持っているので、この方法は、ループの目的に反しタスクを書きますか?
質問は何ですか?になり、その後その結果、
../templates/apache_templates/conf
とregex_replace
の正規表現は/
まですべてを置き換える返しますか。すべてが期待通りに機能するからです。 'with_fileglob'ルックアップを誤ってしまい、Anipalがエラーを返します。 2つのタスクを書くと、完了です。 – techraf1)あなたの質問に答えを含めないでください。 2)スペルチェッカーを使用します。 3)あなたの問題をより明確に説明するのに役立たないものはすべて削除します(ソリューションなしで問題があることがわかっている場合は、そうでない場合はここにいません)。 4)常に、**常に**あなたのポストに質問を入れてください。 (つまり、疑問符で終わる文章を追加しましたが、より具体的にすることができます)。 – Anthon