Ansible变量优先级和保险库



我正在重新加工我的Ansible库存以使用Ansible-vault。一切都很好,但是我认为变量的能力是问题。当我尝试将本地连接与Ansiblemaster(Localhost 127.0.0.1)时,它似乎正在使用全局配置的sudo密码,而不是host_vars中的sudo密码

这是我的设置:

  • hosts.ini
  • group_vars/all/config.yml
  • group_vars/all/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/ansibremaster中定义了此内容:

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?

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

中拾取了变量

...

不确定这是否是最佳实践。

最新更新