假设如下:
主要剧本.yml
- name: Play-1
hosts: localhost
connection: local
gather_facts: no
roles:
- role: my-role
vars:
newhost: 192.168.1.1
生成的剧本.yml
- name: Play-1
hosts: newhost
gather_facts: yes
tasks:
- name: Task1
- name: Task2
- name: Task3
角色的主要任务:
- name: "Role MAIN-1"
add_host:
name: newhost
ansible_host: "{{newhost}}"
- include: generated_playbook.yml
错误:
ERROR! conflicting action statements: hosts, tasks
The error appears to be in 'generated_playbook.yml': line 1, column 3, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
- name: Generated Playbook
^ here
我创建了新角色并将此角色包含在主要剧本中。
在这个角色中,我将新主机添加到内存清单中,然后,我使用 j2 模板示例输出生成了新的剧本 generate_playbook.yml
问题:
有没有办法只在新添加的主机上运行这个新生成的剧本而不向主剧本添加任何其他内容?
我试图使用 import-playbook 或包含在角色中,但这失败了
这是不可能的。引用ansible.builtin.import_playbook
该示例明确显示了这一点
笔记