質問

だから私は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
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top