はAnsible 2.1の脚本の一部です:Ansible:以下は他のホストのためのコンテンツが利用できない登録
- hosts: localhost
any_errors_fatal: true
tasks:
- name: Bla Bla
file: path=/var/tmp/somedir state=directory
#ignore_errors: no
- name: Create directory for every host
file: path=/var/tmp/somedir/{{ item }} state=directory
with_items: "{{ groups['XYZ'] }}"
- name: Get File contents of NewFile
shell: cat NewFile.txt executable=/bin/bash
register: file_contents
- hosts: XYZ
#any_errors_fatal: true
vars:
num_hosts: "{{ groups['XYZ'] | length }}"
serial: num_hosts
tasks:
- name: Copy files to corresponding directories
vars:
path: /var/tmp/somedir/{{ item[0] }}
synchronize: mode=pull src={{ item[1] }} dest={{ path }}
with_nested:
- "{{ groups['XYZ'] }}"
- with_lines: cat NewFile.txt
これは動作しません。 今の問題は、いくつかの簡単な方法でこれを行うにはどのような方法があり、私はlocalhostの下に登録されているfile_contents
を参照することはできませんよとAnsibleがhosts: XYZ
からcat
NewFile
にサポートされていないのですか?この帳でのNewFile
の内容を確認してから、リモートからローカルにファイルをコピーするために同じものを使用する必要があります。
set_factを使用してfile_contentsの値をいくつかの変数に代入しようとしていないのであれば、それはプレイブック全体で利用可能になります。 –
iは、の値に設定set_fact' '試み「変数' lines'にfile_contents'を 'した後に同じ変数を使用する: ' with_nested: - "{{グループ[ 'XYZ']}}" --with_items:lines' 'link_stat \"/home/XYZ/with_items \ "failed:そのようなファイルやディレクトリはありません.' –
デバッグモジュールを使用して、行の値を確認してください。 –