我正在写一本主要的Ansible剧本,其中包括剧本。现在,我想设置其中指定的所有剧本使用的变量。如何在此剧本中指定变量? 我知道其中一个选项是包含vars_files并将其与每个playbook一起使用。示例: - include:abc.yml vars_files:vars.yml
我正在使用Ansible 1.9.3。
答案 0 :(得分:3)
首先,我真的建议你update将你的Ansible发布到最新版本。这样做很容易,没有理由留下来。
话虽如此,有很多方法可以指定主游戏手册中的变量。所有这些与其他任何剧本大致相同。简单地说:
一个。 Define他们在你的剧本本身
- hosts: webservers
vars:
http_port: 80
湾正如您已经说过的那样Separating到变量文件中:
- hosts: all
remote_user: root
vars:
favcolor: blue
vars_files:
- /vars/external_vars.yml
乏/ external_vars.yml
somevar: somevalue
password: magic
其他可能性包括:
℃。 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
ansible-playbook release.yml -k "version=1.23.45 other_variable=foo"
-k
是--exra-vars
的缩写。
目前我可能还有其他方法可能会失踪。