在主Ansible playbook中指定变量

Div*_*tra 5 ansible ansible-playbook

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

我正在使用Ansible 1.9.3.

Wto*_*wer 3

首先,我强烈建议您将Ansible更新到最新版本。做到这一点很容易,没有理由留下来。

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

A。在你的剧本中定义它们

- hosts: webservers
  vars:
    http_port: 80
Run Code Online (Sandbox Code Playgroud)

b. 正如您已经说过的,分成变量文件:

- hosts: all
  remote_user: root
  vars:
    favcolor: blue
  vars_files:
    - /vars/external_vars.yml
Run Code Online (Sandbox Code Playgroud)

变量/external_vars.yml

somevar: somevalue
password: magic
Run Code Online (Sandbox Code Playgroud)

其他可能性包括:

C。使用事实

d. 将输出注册到变量中

此外,这对您的案例可能很重要:

d. 您可以将变量传递到 include 中

tasks:
  - include: wordpress.yml wp_user=timmy
  - include: wordpress.yml wp_user=alice
  - include: wordpress.yml wp_user=bob
Run Code Online (Sandbox Code Playgroud)

e. 在命令行中传递变量:

ansible-playbook release.yml -k "version=1.23.45 other_variable=foo"
Run Code Online (Sandbox Code Playgroud)

-k是 的简写--exra-vars

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