Ansible变量优先级和保险库

时间:2017-09-26 09:33:32

标签: variables ansible operator-precedence ansible-vault

我正在修改我的ansible库存以使用ansible-vault。 一切都工作正常,但我有一个问题,我认为变量优先。当我尝试与ansiblemaster(localhost 127.0.0.1)建立本地连接时,它似乎使用全局配置的sudo密码而不是host_vars中的那个

这是我的设置:

  • hosts.ini
  • group_vars /所有/ config.yml
  • group_vars /所有/ secrets.yml
  • host_vars / ansiblemaster

所以我在group_vars / all / config.yml中定义了这个:

### GLOBAL ###
ansible_become_password: "{{ secret_ansible_become_password }}"
ansible_password: "{{ secret_ansible_password }}"
ansible_user: "{{ secret_ansible_user }}"

我在host_vars / ansiblemaster中定义了这个:

ansible_ssh_host: 127.0.0.1
ansible_user: "{{secret_master_ansible_user}}"
ansible_password: "{{secret_master_ansible_password}}"
ansible_become_password: "{{secret_master_ansible_become_password}}"
ansible_become_user: "{{secret_master_ansible_become_user}}"
ansible_connection: local

我一直在:

  

密码:\ nsudo:1次密码尝试不正确\ n"   当我运行一个构成本地连接并执行sudo的剧本时。

我在host_vars / ansiblemaster中的定义是否不会覆盖group_vars / all / config?

1 个答案:

答案 0 :(得分:0)

我已经解决了。归结为: 我有一个local_action:任务没有找到" ansiblemaster"的变量。 (这是localhost)...我改为使用delegate_to:ansiblemaster,现在它确实在我的host_vars /

中获取变量

...

不确定这是否是最佳做法。