从 "tasks/alternate.yml" 而不是 "tasks/main.yml" 开始角色
Starting role from "tasks/alternate.yml" instead of "tasks/main.yml"
我有一个大型剧本,它使用多个角色来设置新服务器。我想重新使用该剧本,但为了退役阶段而不是调用 role_name/tasks/main.yml
并有很多 when:
语句,我想告诉 Ansible 调用该角色但从role_name/tasks/decommission.yml
.
作为第一个测试,我这样设置 main.yml
文件:
- name: "Provisioning new server"
block:
- name: "Include the provisioning steps."
include_tasks: provision.yml
when:
- not decom
- name: "DECOM - Unregister from Satellite server"
block:
- name: "DECOM - Include the deprovision steps."
include_tasks: decommission.yml
when:
- decom
但是维护起来真的很难看。这是可能的还是我忽略了另一种设置剧本的方法?
Q: "告诉Ansible调用角色但是从role_name/tasks/decommission.yml开始"
答:使用include_role
- include_role:
name: role_name
tasks_from: decommission.yml
- import_role:
name: role_name
tasks_from: decommission.yml
请参阅 Re-using files and roles 了解包含角色和导入角色之间的区别。
我有一个大型剧本,它使用多个角色来设置新服务器。我想重新使用该剧本,但为了退役阶段而不是调用 role_name/tasks/main.yml
并有很多 when:
语句,我想告诉 Ansible 调用该角色但从role_name/tasks/decommission.yml
.
作为第一个测试,我这样设置 main.yml
文件:
- name: "Provisioning new server"
block:
- name: "Include the provisioning steps."
include_tasks: provision.yml
when:
- not decom
- name: "DECOM - Unregister from Satellite server"
block:
- name: "DECOM - Include the deprovision steps."
include_tasks: decommission.yml
when:
- decom
但是维护起来真的很难看。这是可能的还是我忽略了另一种设置剧本的方法?
Q: "告诉Ansible调用角色但是从role_name/tasks/decommission.yml开始"
答:使用include_role
- include_role:
name: role_name
tasks_from: decommission.yml
- import_role:
name: role_name
tasks_from: decommission.yml
请参阅 Re-using files and roles 了解包含角色和导入角色之间的区别。