带有变量的剧本的 ansible 剧本

jva*_*ryn 1 variables ansible ansible-playbook

我什至不确定这是否可能。

我知道你可以有一个剧本来调用其他剧本..

IE:

---
# MasterPlaybook.yml

- include: playbook1.yml
  when: some_var == "true"

- include: playbook2.yml
  when: someother_var == "true"
Run Code Online (Sandbox Code Playgroud)

如果我调用 MasterPlaybook.yml 并传入 Vars,这将起作用。

但是我想包括来自其他一些 yml 的变量,例如这里是 myvars.yml

  some_var: "true"
  someother_var: "false"
  Other_var: "Foo"
Run Code Online (Sandbox Code Playgroud)

因此,如果我希望将其包含在 playbook1.yml 中,我只需添加..

---
- name: Script Play use variables to get and push out the code
  hosts: somegroup
  remote_user: "some user"
  vars:
    url: 'The url of the build'
    buildNumber: 'the build number'
    jobName: 'passed in job name'
  vars_files:
    - ~/myvars.yml
  serial: 1
Run Code Online (Sandbox Code Playgroud)

它会拉入 vars..

我的问题是如何在 masterplaybook.yml 中执行此操作,以便不必传入 vars?

当我们在做的时候..有什么好的例子可以作为大师剧本吗?(或剧本剧本)

Car*_*ght 5

您可以将 vars 指定为 include 语句的一部分。这就是我为我的一些项目所做的。

---

- include: playbook1.yml
  vars:
      some_var: "true"
      someother_var: "false"
      Other_var: "Foo"
  when: some_var == "true"

- include: playbook2.yml
  when: someother_var == "true"
Run Code Online (Sandbox Code Playgroud)