从 "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

    - import_role:
        name: role_name
        tasks_from: decommission.yml

请参阅 Re-using files and roles 了解包含角色和导入角色之间的区别。