【问题标题】:Specifying variables in master Ansible playbook在主 Ansible 剧本中指定变量
【发布时间】:2016-05-04 07:56:26
【问题描述】:

我正在编写一个包含剧本的大师级 Ansible 剧本。现在,我想设置其中指定的所有剧本使用的变量。如何在此剧本中指定变量? 我知道其中一个选项是包含 vars_files 并将其与每个剧本一起使用。示例:- 包括:abc.yml vars_files: vars.yml

我正在使用 Ansible 1.9.3。

【问题讨论】:

    标签: ansible ansible-playbook


    【解决方案1】:

    首先,我真的会推荐你 update 你的 Ansible 到最新版本。这样做很容易,没有理由落后。

    话虽如此,有很多方法可以在您的主剧本中指定变量。所有这些都或多或少与任何其他剧本相同。简单提一下:

    一个。 Define他们在你的剧本中

    - hosts: webservers
      vars:
        http_port: 80
    

    b. Separating 到一个变量文件中,正如你已经说过的:

    - hosts: all
      remote_user: root
      vars:
        favcolor: blue
      vars_files:
        - /vars/external_vars.yml
    

    vars/external_vars.yml

    somevar: somevalue
    password: magic
    

    其他可能性包括:

    c。 Using facts

    d。 Registering output into variables

    另外,这对您的情况可能很重要:

    d。你可以pass variables into includes:

    tasks:
      - include: wordpress.yml wp_user=timmy
      - include: wordpress.yml wp_user=alice
      - include: wordpress.yml wp_user=bob
    

    e。路过variables in command line

    ansible-playbook release.yml -k "version=1.23.45 other_variable=foo"
    

    -k--exra-vars 的简写。

    目前我可能还缺少其他方法。

    【讨论】:

      猜你喜欢
      • 2017-04-20
      • 2018-09-21
      • 1970-01-01
      • 1970-01-01
      • 2015-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多