我试图找出如何将'master'剧本中定义的Ansible剧本变量传递到我已经在我的主剧本中引用的其他剧本中。
例如,使用下面的“主”播放手册,我想将 sethostname 和 setipaddress 的值传递给playbook [1-3] .yml引用在我的任务部分。这类似于在其他编程语言中调用函数。
BindingSource
答案 0 :(得分:4)
从Ansible 2.4开始,您现在可以导入Playbooks,这意味着它们将在解析Playbook时进行预处理,并按您导入它们的顺序运行。查看文档以获取有关导入的完整信息,包括此处http://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_includes.html
您可以像对待其他include_ *任务一样将变量传递给它们。
tasks:
- import_playbook: playbook1.yml
vars:
sethostname: "{{ sethostname }}"
setipaddress "{{ setipaddress }}"
答案 1 :(得分:1)
Kellie的答案并不完全准确,可能无法仅在剧本的最高级别上以任务级别导入剧本。如此有效:
- import_playbook: playbook1.yml
vars:
sethostname: "{{ sethostname }}"
setipaddress "{{ setipaddress }}"