我遇到一个问题,我在两个远程节点上运行相同的任务,并且执行这些命令的目录不同。
如果在此命令之前我在每个远程主机上通过Ansible运行pwd
,它们将返回不同的路径。例如/usr
和/usr/src
。如果我手动登录到远程主机,则两者都将转到/usr/src
(如其配置文件中所指定)。
有人可以向我解释为什么会这样吗?如果您在未指定chdir
的情况下运行命令,Ansible会进入哪个目录?
答案 0 :(得分:1)
我希望会出现这种差异,因为当手动登录时,当Ansible不提供{时,您有一个.bashrc
cd
位于这两个主机之一的右侧文件夹中{1}}文件。
默认情况下,ssh和Ansible这样都会将您登录到您定义Ansible进行连接的用户的.bashrc
文件夹中,您也可以在$HOME
中找到该文件夹
我看到发生这种情况的另一个原因是,您使用一个用户登录到该节点,然后又成为另一个用户。
inventory.yml
/etc/passwd
playbook.yml
all:
hosts:
some.example.com:
ansible_user: some_user