【发布时间】:2020-11-05 10:44:29
【问题描述】:
我的剧本目录结构。
/ansible_repo/
└── playbooks/
├──playbooks1.yml
├──playbooks2.yml
├── somerole.yml --> main playbook with roles
└── roles/
└── somerole
├── default
│ └── main.yml
├── handler
│ └── main.yml
├── tasks
│ └── main.yml
└── vars
└── main.yml
playbooks1.yml:
---
- hosts: all
tasks:
- pause:
minutes: 3
- name: ping host
win_ping:
somerole.yml:
---
- hosts: ci_host
roles:
- somerole
somerole\tasks\main.yml :
---
- include: playbooks/playbooks1.yml
当我在某个主机上运行角色时:
ansible-playbook role-test.yml -vv --limit somehost
我收到此错误:
fatal: [somehost]: FAILED! =>
reason: |-
conflicting action statements: hosts, tasks
如果我改变它通过的类似:
- pause:
minutes: 3
- name: ping host
win_ping:
我尝试了解如何在 role-tasks-main 和 playbook.yml 中设置主机和任务 并将剧本包含在角色任务中。
如果我遇到冲突,我可以配置层次结构主机吗?
【问题讨论】:
-
你为什么在 yml 而不是在 host.ini 中使用主机配置?您的 ping 检查也有效吗?
-
我也有托管库存,我在这里向我的仓库展示示例
-
那么 ansible all -m ping 是怎么说的?
-
playbook 在库存中的所有主机上运行并逐个运行 win_ping 模型(它的示例 playbook,可以是 linux 模型、shell 模型或其他),我想要运行角色,其中有很多任务任务目录,并在主要所有任务中运行,并从剧本目录中再添加一本剧本
-
很难理解你到底想要什么。通常您会创建一个剧本并对其进行测试,直到与您的一台一次性主机一起使用。这样就很难隔离问题。抱歉,我帮不上忙
标签: ansible