0
私は非常に単純な脚本があります、私はdelegate_to
に追加するものは何でも、完全なものにするになぜ、delegate_toパラメータが無視される可能性がありますか?
TASK [debug] *************************************************************************************************************************************************************************
ok: [host1 -> host2] => {
"changed": false,
"msg": "host1"
}
:
- hosts: test
gather_facts: no
tasks:
- name: debug
debug: msg="{{ inventory_hostname }}"
run_once: yes
delegate_to: "host2"
とインベントリファイル:
host1 ansible_ssh_host="1.2.3.4"
host2 ansible_ssh_host="1.2.3.5"
[test]
host1
host2
そして、プレイの結果をランダムな文字列であっても、結果は常に"msg": "host1"
です。
このタスクをgroups.test.1や他のホストに正しく委任するにはどうすればよいですか?
EDIT:
- hosts: test
gather_facts: no
tasks:
- name: 1
shell: "hostname -f"
run_once: yes
delegate_to: "host2"
register: result
- name: debug
debug: msg="{{ ansible_host }} {{ inventory_hostname }} {{ result.stdout }}"
run_once: yes
プレイ出力:
TASK [command] ***************************************************************************************************************************************************************************************
changed: [host1 -> None]
TASK [debug] *****************************************************************************************************************************************************************************************
ok: [host1] => {
"msg": "1.2.3.4 host1 host2"
}
あなたができるようにdelegate_to
を使用する場合Ansibleの2.3.x以降
Ansible 2.4.0
をいいえ、全く動作しません。それでもなお 'host1 1.2.3.4'を返します – Misko
シェルを実行していても、delegate_toで「hostname -f」を指定すると、コマンドがhost1に対して実行されたことが証明されます。 – Misko
'-vvv'冗長な' hostname -f'の例を元の投稿に追加してください。 –