根据 Ansible 文档使用变量 and 了解变量优先级 https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#understanding-variable-precedence
extra vars
(例如,-e "user=my_user"
)(始终优先)
一般来说,Ansible 优先考虑最近定义的变量......
这意味着最后定义的获胜。
让我们在这里进行一个简短的测试vars.yml
剧本。
---
- hosts: localhost
become: false
gather_facts: false
vars:
my_host: 9.0.0.0
tasks:
- name: Show value
debug:
msg: "{{ my_host }}"
的执行ansible-playbook vars.yml
将导致输出
TASK [Show value] ***
ok: [localhost] =>
msg: 9.0.0.0
的执行ansible-playbook -e "@extraVars1.yml" vars.yml
将导致输出
TASK [Show value] ***
ok: [localhost] =>
msg: 1.2.3.4
的执行ansible-playbook -e "@extraVars1.yml" -e "@extraVars2.yml" vars.yml
将导致输出
TASK [Show value] ***
ok: [localhost] =>
msg: 5.6.7.8
的执行ansible-playbook -e "@extraVars2.yml" -e "@extraVars1.yml" vars.yml
将导致输出
TASK [Show value] ***
ok: [localhost] =>
msg: 1.2.3.4