【问题标题】:ansible playbook of playbooks with variables带有变量的剧本的ansible剧本
【发布时间】:2015-03-03 14:30:33
【问题描述】:

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

我知道你可以拥有一个调用其他 playbook 的 playbook..

IE:

---
# MasterPlaybook.yml

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

- include: playbook2.yml
  when: someother_var == "true"

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

但我想包含来自其他 yml 的变量 例如这里是 myvars.yml

  some_var: "true"
  someother_var: "false"
  Other_var: "Foo"

因此,如果我希望将其包含在 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

它会拉入变量..

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

当我们在做的时候.. 有没有什么好的剧本大师的例子? (或剧本的剧本)

【问题讨论】:

    标签: variables ansible ansible-playbook


    【解决方案1】:

    您可以将变量指定为包含语句的一部分。这就是我为我的一些项目所做的。

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

    【讨论】:

      【解决方案2】:

      看看ansible中的roles。它们是“剧本中的剧本”概念的一种更结构化的方式。在那里,您可以在“主”剧本中定义全局变量,并在子剧本http://docs.ansible.com/playbooks_roles.html 中定义变量。

      您还可以查看example playbooks,了解如何使用和构建角色。

      【讨论】:

      • 由于某种原因角色对我来说没有意义..你能推荐一个好的教程吗?
      • 看看github.com/leucos/ansible-tuto。在第 12 步中,本教程解释了角色。我建议阅读整个教程,因为角色的概念只是一种有组织的方式来编写属于主题的剧本的可重用步骤(如安装和配置 apache、mysql 的步骤......)。之后,您可以查看上面的链接以获取示例剧本,以了解它们在现实生活中的一些作用。
      • 谢谢,我会试一试
      猜你喜欢
      • 1970-01-01
      • 2015-07-31
      • 1970-01-01
      • 2018-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-08
      • 2016-06-18
      相关资源
      最近更新 更多