Ansible无法构建所需的ssh命令

时间:2018-12-07 08:17:29

标签: ssh ansible

我的组织有一个适当的策略,该策略允许“仅”以下ssh命令起作用。

ssh -i /tmp/private.key -t user2@host2 bash --noprofile

我试图修改ansible库存主机文件以构建上述ssh。请在下面查看我的ansible主机文件:

host2 ansible_ssh_common_args="-t -o UserKnownHostsFile=/dev/null" ansible_shell_executable=sh ANSIBLE_HOST_KEY_CHECKING=false ansible_ssh_private_key_file=/tmp/private.key  USER_RUN=user2

我也尝试了以下方法,但它们也失败了

ansible_shell_executable=/bin/bash
ansible_ssh_extra_arg=.....

我的ansible版本是:

ansible --version

ansible 2.7.1

  config file = /etc/ansible/ansible.cfg

  configured module search path = [u'/home/user1/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']

  ansible python module location = /usr/lib/python2.7/site-packages/ansible

  executable location = /bin/ansible

  python version = 2.7.5 (default, Sep 12 2018, 05:31:16) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]

在调试中,我看到由ansible构造的ssh没有

  

bash --noprfile

user2 @ target2之后

请帮助提供解决方案。

1 个答案:

答案 0 :(得分:1)

要实现此目的,您可以通过以下方式为特定主机设置远程外壳程序:

库存

some_host  ansible_shell_executable="/bin/bash --noprofile"
other_host ansible_shell_executable="/bin/bash --noprofile"

或通过以下方式全局

ansible.cfg

executable = /bin/bash --noprofile

更多信息,请参见右侧的documentation

请注意,ansible还会在后台进行sftp转移。

恕我直言,如果您想在组织中使用ansible,则更改政策是合理的。