如何将Ansible剧本变量从主剧本传递到链接的剧本?

时间:2018-04-11 17:16:55

标签: ansible

我试图找出如何将'master'剧本中定义的Ansible剧本变量传递到我已经在我的主剧本中引用的其他剧本中。

例如,使用下面的“主”播放手册,我想将 sethostname setipaddress 的值传递给playbook [1-3] .yml引用在我的任务部分。这类似于在其他编程语言中调用函数。

BindingSource

2 个答案:

答案 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 }}"