当ansible_user和become_user不起作用时,可能是由于以下几个原因:
检查远程主机上的用户是否存在。确保ansible_user和become_user指定的用户在远程主机上都存在。
检查ansible_user和become_user的值是否正确。确保ansible_user和become_user的值是正确的用户名。
检查ansible.cfg文件中的配置。确保ansible.cfg文件中没有覆盖ansible_user和become_user的设置。可以使用ansible-config命令查看ansible.cfg文件的位置。
如果以上检查都没有问题,可以尝试以下解决方法:
- hosts: target_server
remote_user: ansible_user
become_user: become_user
tasks:
- name: Example task
command: echo "Hello World"
在上面的示例中,将ansible_user和become_user分别指定为remote_user和become_user。
ansible-playbook playbook.yml --user=ansible_user --become-user=become_user
在上面的示例中,使用--user和--become-user选项来指定ansible_user和become_user。
- hosts: target_server
vars:
ansible_user: ansible_user
become_user: become_user
tasks:
- name: Example task
command: echo "Hello World"
在上面的示例中,使用vars变量来指定ansible_user和become_user。
通过以上解决方法,你应该能够解决ansible_user和become_user不起作用的问题。确保在实际使用时,将ansible_user和become_user替换为正确的用户名。