ansible - 从“tasks/alternate.yml”而不是“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
但这变得很难维护。这是可能的还是我忽略了另一种设置剧本的方法?
解决方案
问:“告诉 Ansible 调用角色,但从 role_name/tasks/decommission.yml 开始”
A:使用include_role
- include_role:
name: role_name
tasks_from: decommission.yml
, 或import_role
- import_role:
name: role_name
tasks_from: decommission.yml
请参阅重用文件和角色,了解包含和导入角色之间的区别。
推荐阅读
- angular - Angular VideoJs VR 导入问题
- amazon-s3 - S3 上空键的存储成本是多少
- node.js - 节点 api 为所有路由添加 /api 前缀
- broadleaf-commerce - 通过 jar 部署 6.1
- python - conda activate env 切换到系统 python 路径而不是 env 路径
- r - 如何避免手机锁屏?r 闪亮
- html - 如何修复导航栏中的搜索图标位置使用?
- android - google-services.json 生成错误的 ios_info bundle_id 字符串
- c# - 检查对象是否为字典或字典联合类型
- c# - 使用 EF CORE 运行内联 SELECT 语句