ansible -i hosts -mshell -a "pwd" 受控制的用户是aiswa用户,返回结果应该是/home/aiswa结果是有的是/home/aiswa有的是/home/yjjs ,aiswa是sudo用户,yjjs是普通用户。
这个问题可能是因为你在受控制的远程主机上以其他用户身份执行了 sudo
命令,导致当前的工作路径并不是你期望的 aiswa
用户的路径,而是其他用户的路径。
为了解决这个问题,你可以在 Ansible 的 playbook 中指定使用 become
或 become_user
选项来切换到 aiswa
用户身份执行命令。具体而言,你可以编写一个类似以下的 playbook:
- hosts: your-host
become: yes
become_user: aiswa
tasks:
- name: show pwd
shell: pwd
然后在终端上执行以下命令来运行 playbook:
ansible-playbook -i hosts your-playbook.yaml
这个 playbook 首先使用 become
选项切换到超级用户身份,然后使用 become_user
选项切换到 aiswa
用户身份,最后执行 pwd
命令获取当前工作路径。这样就可以确保当前执行命令的用户是 aiswa
用户,并且获取到的路径也是该用户的路径。
希望这个方法可以帮助你解决问题。
不使用剧本,就想使用命令,不知道问题出在了哪里,百度不到,大哥有遇到过类似的情况吗?