Ansible:ansible-playbook delegate_to 错误
Ansible: ansible-playbook delegate_to error
我有一本剧本,这是其中的一部分。
...
- name: Wait for SSH to start
wait_for:
host: "{{ newmachines.instances[0].public_ip }}"
port: 22
timeout: 300
delegate_to: localhost
...
ansible-playbook --check create_instance.yml.old
错误:delegate_to 不是 Ansible Play
的合法参数
ansible-剧本--版本
ansible-剧本 1.9.4
配置的模块搜索路径= None
我该如何解决?
任务的参数格式应该是key=value
,而不是key:value
。这让 Ansible 很困惑。你要的是这个:
- name: Wait for SSH to start
wait_for:
host="{{ newmachines.instances[0].public_ip }}"
port=22
timeout=300
delegate_to: localhost
任务的修饰符,如delegate_to
、with_items
等应使用:
。
@serko 该剧本对我有用 ansible-playbook
1.9.4
---
# main.yml
- hosts: all
gather_facts: false
tasks:
- name: Wait for SSH to start
wait_for:
host: "localhost"
port: 22
timeout: 300
delegate_to: localhost
.
$ ansible-playbook --check main.yml
PLAY [all] ********************************************************************
TASK: [Wait for SSH to start] *************************************************
skipping: [127.0.0.1 -> localhost]
ok: [127.0.0.1 -> localhost]
PLAY RECAP ********************************************************************
127.0.0.1 : ok=0 changed=0 unreachable=0 failed=0
也许您应该检查缩进 (tabs/spaces)? Ansible 似乎认为 delegate_to
处于播放级别,而从您发布的代码的外观来看它处于任务级别。
这行不通:
---
- hosts: myhost
gather_facts: false
tasks:
- name: Wait for SSH to start
wait_for:
host: myhost
port: 22
timeout: 300
delegate_to: localhost
它因您提到的错误而失败:
$ ansible-playbook -i hosts pb.yaml
ERROR! 'delegate_to' is not a valid attribute for a Play
虽然这样做(注意缩进差异):
---
- hosts: myhost
gather_facts: false
tasks:
- name: Wait for SSH to start
wait_for:
host: myhost
port: 22
timeout: 300
delegate_to: localhost
输出:
$ ansible-playbook -i hosts pb.yaml
PLAY [myhost] ****************************************************************
TASK [Wait for SSH to start] ***************************************************
ok: [myhost-> localhost]
PLAY RECAP *********************************************************************
myhost: ok=1 changed=0 unreachable=0 failed=0
我有一本剧本,这是其中的一部分。
...
- name: Wait for SSH to start
wait_for:
host: "{{ newmachines.instances[0].public_ip }}"
port: 22
timeout: 300
delegate_to: localhost
... ansible-playbook --check create_instance.yml.old 错误:delegate_to 不是 Ansible Play
的合法参数ansible-剧本--版本 ansible-剧本 1.9.4 配置的模块搜索路径= None
我该如何解决?
任务的参数格式应该是key=value
,而不是key:value
。这让 Ansible 很困惑。你要的是这个:
- name: Wait for SSH to start
wait_for:
host="{{ newmachines.instances[0].public_ip }}"
port=22
timeout=300
delegate_to: localhost
任务的修饰符,如delegate_to
、with_items
等应使用:
。
@serko 该剧本对我有用 ansible-playbook
1.9.4
---
# main.yml
- hosts: all
gather_facts: false
tasks:
- name: Wait for SSH to start
wait_for:
host: "localhost"
port: 22
timeout: 300
delegate_to: localhost
.
$ ansible-playbook --check main.yml
PLAY [all] ********************************************************************
TASK: [Wait for SSH to start] *************************************************
skipping: [127.0.0.1 -> localhost]
ok: [127.0.0.1 -> localhost]
PLAY RECAP ********************************************************************
127.0.0.1 : ok=0 changed=0 unreachable=0 failed=0
也许您应该检查缩进 (tabs/spaces)? Ansible 似乎认为 delegate_to
处于播放级别,而从您发布的代码的外观来看它处于任务级别。
这行不通:
---
- hosts: myhost
gather_facts: false
tasks:
- name: Wait for SSH to start
wait_for:
host: myhost
port: 22
timeout: 300
delegate_to: localhost
它因您提到的错误而失败:
$ ansible-playbook -i hosts pb.yaml
ERROR! 'delegate_to' is not a valid attribute for a Play
虽然这样做(注意缩进差异):
---
- hosts: myhost
gather_facts: false
tasks:
- name: Wait for SSH to start
wait_for:
host: myhost
port: 22
timeout: 300
delegate_to: localhost
输出:
$ ansible-playbook -i hosts pb.yaml
PLAY [myhost] ****************************************************************
TASK [Wait for SSH to start] ***************************************************
ok: [myhost-> localhost]
PLAY RECAP *********************************************************************
myhost: ok=1 changed=0 unreachable=0 failed=0