请原谅我的新手问题,但我想按顺序执行三个任务并在剧本中使用两个角色:
这是我到目前为止(任务,角色,任务):
---
- name: Task Role Task
hosts: 127.0.0.1
connection: local
gather_facts: false
pre_tasks:
- name: Do this task first
foo:
roles:
- role: this role second
foo:
post_tasks:
- name: Do this task third
foo:
这可能还是我应该将我的任务转变为角色?
答案 0 :(得分:22)
每个“主机:” - 块将逐个执行。因此,您可以使用多个块来强制执行所需的执行顺序:
---
- hosts: 127.0.0.1
tasks:
- name: Do this task first
- hosts: 127.0.0.1
roles:
- role: this role second
- hosts: 127.0.0.1
tasks:
- name: Do this task third
答案 1 :(得分:20)
我建议您为后期和后期任务创建角色。
您的site.yml必须是这样的:
---
- hosts: localhost
remote_user: "{{remote_user}}"
sudo: yes
gather_facts: false
roles:
- pre
- main_role
- post
在roles文件夹中,您必须有三个角色,pre,post和main_role。
答案 2 :(得分:12)
---
- name: Task Role Task
hosts: 127.0.0.1
connection: local
gather_facts: false
tasks:
- name: task1
foo:
- name: include role1
include_role:
name: myrole1
- name: task2
foo:
- name: include role2
include_role:
name: myrole2
参见官方docs