Ansible:禁止混合角色和任务?
我正在使用下面的Ansible:禁止混合角色和任务?,ansible,ansible-2.x,Ansible,Ansible 2.x,我正在使用下面的site.ymlplaybook并通过 ansible剧本网站.yml - hosts: some_hosts vars: pip_install_packages: - name: docker - tasks: - name: Conditionally include bar vars include_vars: file: bar_vars.yml when: some_condition == "bar"
site.yml
playbook并通过
ansible剧本网站.yml
- hosts: some_hosts
vars:
pip_install_packages:
- name: docker
- tasks:
- name: Conditionally include bar vars
include_vars:
file: bar_vars.yml
when: some_condition == "bar"
- name: Conditionally include foo vars
include_vars:
file: foo_vars.yml
when: some_condition == "foo"
roles:
- role1
- role2
environment:
SOME_ENV_VAR: "{{ vault_some_env_var }}"
呼叫失败,如下所示:
错误!“主机”字段是必需的,但未设置
但是如上所述,hosts
字段已经设置好了
有什么建议吗?您可以在剧本中混合任务和角色,还可以使用“前任务”和“后任务”控制任务执行的时间 在我看来,你似乎对不应该出现的任务有一个明确的看法,可能认为这是一部新戏
- hosts: some_hosts
vars:
pip_install_packages:
- name: docker
- tasks: <-- This should not have a dash
---
- hosts: all
name: Roles with pre and post tasks
vars:
somevar: foobar
roles:
- { role: common, tags: ["common"] }
pre_tasks:
- debug:
msg: I execute before roles
post_tasks:
- debug:
msg: I execute after roles