如何在ansible角色之间暂停
How to put pause between ansible roles
这是我的剧本:
---
- hosts: "mms"
user: wladmin
roles:
- { role: App1 }
- { role: App2 }
- { role: App3 }
- { role: App4 }
我希望在这些 ansible 角色之间暂停 30 秒。
我尝试了下面的方法,但它给我语法错误:
roles:
- { role: App1 }
pause:
seconds: 30
- { role: App2 }
pause:
seconds: 30
- { role: App3 }
我也试过了
roles:
- { role: App1 }
- pause:
seconds: 30
- { role: App2 }
- pause:
seconds: 30
- { role: App3 }
你能推荐一下吗?
pause
不是角色,因此您不能将其包含在您的剧本的 roles
部分中。 pause
是一项任务。您有几个选择:
使用 import_role
任务代替 roles
部分
例如:
- hosts: localhost
tasks:
- import_role:
name: App1
- pause:
seconds: 30
- import_role:
name: App2
- pause:
seconds: 30
- import_role:
name: App3
创建一个“暂停”角色
创建一个 pause
角色。把这个放在 roles/pause/tasks/main.yml
:
- name: pause
pause:
seconds: "{{ pause_seconds|default(30) }}"
roles/pause/meta/main.yml
中的这个:
allow_duplicates: true
现在你可以写:
- hosts: localhost
roles:
- App1
- pause
- App2
- pause
- App3
这是我的剧本:
---
- hosts: "mms"
user: wladmin
roles:
- { role: App1 }
- { role: App2 }
- { role: App3 }
- { role: App4 }
我希望在这些 ansible 角色之间暂停 30 秒。
我尝试了下面的方法,但它给我语法错误:
roles:
- { role: App1 }
pause:
seconds: 30
- { role: App2 }
pause:
seconds: 30
- { role: App3 }
我也试过了
roles:
- { role: App1 }
- pause:
seconds: 30
- { role: App2 }
- pause:
seconds: 30
- { role: App3 }
你能推荐一下吗?
pause
不是角色,因此您不能将其包含在您的剧本的 roles
部分中。 pause
是一项任务。您有几个选择:
使用 import_role
任务代替 roles
部分
例如:
- hosts: localhost
tasks:
- import_role:
name: App1
- pause:
seconds: 30
- import_role:
name: App2
- pause:
seconds: 30
- import_role:
name: App3
创建一个“暂停”角色
创建一个 pause
角色。把这个放在 roles/pause/tasks/main.yml
:
- name: pause
pause:
seconds: "{{ pause_seconds|default(30) }}"
roles/pause/meta/main.yml
中的这个:
allow_duplicates: true
现在你可以写:
- hosts: localhost
roles:
- App1
- pause
- App2
- pause
- App3