-3

我正在使用以下命令,但出现错误[Errno 2] No such file or directory: b'cd'

ansible 服务器 -a "cd /etc/ansible"

我知道我们可以使用剧本,但我只是不想创建,有没有可能执行上述命令?请告诉我。谢谢你。

4

1 回答 1

0

根据您的问题,我了解您喜欢在远程托管节点上执行临时命令,使用类似的清单

[servers]
test1.example.com
test2.example.com

[test]
test1.example.com
test2.example.com

Ansible 引擎可以安装在一个控制节点上,仅用于连接到远程托管节点来管理它们。因此像这样的命令

user@ansible.example.com:~$ ansible test --user ${REMOTE_ACCOUNT} --ask-pass -m shell --args 'cd /etc/ansible'
SSH password:
test1.example.com | FAILED | rc=1 >>
/bin/sh: line 0: cd: /etc/ansible: No such file or directory non-zero return code
test2.example.com.example.com | FAILED | rc=1 >>
/bin/sh: line 0: cd: /etc/ansible: No such file or directory non-zero return code

可能会失败,因为 Ansible 通常不需要也不需要安装在远程 Managed Nodes 上。您可以通过一般测试您的连接和执行

user@ansible.example.com:~$ ansible test --user ${REMOTE_ACCOUNT} --ask-pass -m shell --args 'cd /tmp'
SSH password:
test1.example.com | CHANGED | rc=0 >>

test2.example.com | CHANGED | rc=0 >>
 

由于您提到的错误代码 2 ( [Errno 2], RC2),您还可以查看Ansible 之间的区别rawshellcommandAnsible之间shell区别command

于 2021-11-29T15:28:04.627 回答