Ansible是否有任何方法可以使全局任务在所有剧本中使用
有没有办法只创建一次中心函数,并从每个需要它的任务手册中调用它? 例如,我有以下任务:Ansible是否有任何方法可以使全局任务在所有剧本中使用,ansible,Ansible,有没有办法只创建一次中心函数,并从每个需要它的任务手册中调用它? 例如,我有以下任务: - name: Download get_url: url_username: foo url_password: foo dest: "{{ ansible_env.APP }}/" url: "{{ download_url }}" 相同的任务是在不同的剧本中复制/粘贴多次 这是非常没有效率的 有没有办法定义一次并从其他剧本中调用它 有两种选择 1) 将任务放入文件并
- name: Download
get_url:
url_username: foo
url_password: foo
dest: "{{ ansible_env.APP }}/"
url: "{{ download_url }}"
相同的任务是在不同的剧本中复制/粘贴多次
这是非常没有效率的
有没有办法定义一次并从其他剧本中调用它 有两种选择
1) 将任务放入文件并使用或
2) 使用该文件创建一个角色,并使用include\u角色
不管好坏请参阅我的任务库和。
问:“它们之间有什么区别?” 答:导入的代码从playbook执行的开始就存在。当工作流程到达该点时,将加载包含的代码。这影响
- 标签的继承
- 某些变量的可用性(例如角色默认值等)
() 问:“通常使用什么?” 答:
include\u角色
是最强大、最灵活的选择。请参阅模块的第页
问:“导入剧本怎么样?”
答:这不是一个模块。这是一个包含代码的简单指令。使用
import_playbook
简化(模块化)复杂的playbook,并在保留的同时动态更改(例如,主机,…
)。谢谢。从较高的层次来看,它们之间的区别是什么?通常使用什么?导入剧本如何?这是推荐的吗?我正在尝试实施你的建议,你能看到这个新问题吗