0

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

这是我的设置:

  • 主机.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/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 吗?

4

1 回答 1

0

我已经解决了。归结为:我有一个 local_action: 任务没有为“ansiblemaster”(即 localhost )获取变量......我将其更改为使用 delegate_to: ansiblemaster 现在它确实在我的 host_vars 中获取了变量/

...

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

于 2017-09-26T11:58:33.697 回答