Ansible Playbooksの別のリストとwith_fileglobと組み合わせる
-
21-12-2019 - |
質問
だから私はAnsible Playbookを持っていて、リスト内の各項目のコマンドを呼び出しようとしていますが、そのコマンドもFileGlobを介して実行しようとしています。Ansibleに "with_nested"があり、変数名を取ることができますが、 "with_fileglob"を追加すると、実際にglobを実行するのではなくファイル名として "with_fileglob"を挿入するだけです。
vars:
repo_versions:
- version: trusty
distribution: Ubuntu
- version: wheezy
distribution: Debian
...
- command: reprepro -b /var/www/html includedeb {{ item[0].version }} {{ item[1] }}
with_nested:
- repo_versions
with_fileglob: /home/repoman/debs/*.deb
when: debs_available.stat.exists == True
.
私はいくつかの異なる組み合わせを試してみました、そして、ループのための二重のコマンドをプロセスするように思われることはできません(各.debファイルの場合は、各。ごとに)
解決
これはあなたが達成しようとしているものであるべきです。
shell
モジュールを使用して、ファイルグローブの出力を登録し、次にループ内の登録変数のstdout_lines
プロパティを使用しました。タスクをテストから実際のコマンドとパスに変換しましたので、2倍チェックする必要があるかもしれません。
vars:
repo_versions:
- version: trusty
distribution: Ubuntu
- version: wheezy
distribution: Debian
tasks:
- shell: ls -1 /home/repoman/debs/*.deb
register: repo_list
- command: reprepro -b /var/www/html includedeb {{ item[0].version }} {{ item[1] }}
with_nested:
- repo_versions
- repo_list.stdout_lines
. 所属していません StackOverflow