ansible playbook按以下顺序执行:任务、角色、任务、角色、任务
请原谅我的新手问题,但我想执行三项任务,并在剧本中使用两个角色,顺序如下:ansible playbook按以下顺序执行:任务、角色、任务、角色、任务,ansible,Ansible,请原谅我的新手问题,但我想执行三项任务,并在剧本中使用两个角色,顺序如下: 任务 角色 任务 角色 任务 这就是我到目前为止所做的(任务、角色、任务): 这是可能的还是我应该将我的任务更改为角色?我建议您为您的post和pre任务创建角色 您的site.yml必须如下所示: --- - hosts: localhost remote_user: "{{remote_user}}" sudo: yes gather_facts: false roles: - pre
这是可能的还是我应该将我的任务更改为角色?我建议您为您的post和pre任务创建角色 您的site.yml必须如下所示:
---
- hosts: localhost
remote_user: "{{remote_user}}"
sudo: yes
gather_facts: false
roles:
- pre
- main_role
- post
在“角色”文件夹中,您必须有三个角色:预角色、后角色和主角色 每个“主机:”-块将逐个执行。因此,您可以使用多个块强制执行所需的执行顺序:
---
- 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
请参见官方如果您决定尝试使用滚动更新,并打算按顺序执行一组播放,则此方法的成功之处在于。而不是完成一切串行,每个发挥将完成整个主机组!这是正确的方法,因为它可以正确地用于滚动更新,不像使用单独的主机部分。但可能在最初提出问题时,它还不可用。还有可能与此相关的“导入角色”。自Ansible 2.2(2016年9月)以来,这是正确的答案。
---
- 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
---
- 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