Ansible,在 ssh-args 中运行多个参数

问题描述 投票:0回答:1

我正在尝试在 ansible 中运行剧本,并想在 ssh-args 中传递两个参数,但看起来失败了。

我想传递的论点是:

  • 代理命令
  • 严格主机密钥检查
ansible-playbook provisioning/ec2.yml -i ec2.py --private-key KEY.pem --ssh-common-args '-o "StrictHostKeyChecking=no proxycommand ssh -W %h:%p -i KEY.pem [email protected]"' --skip-tags=ansible -vvvv

但是看起来它失败了,因为连接永远不会发生,如果我仅使用

proxycommand
运行它它就可以工作,只是我需要在主机验证过程中输入 yes 。

ansible-playbook provisioning/ec2.yml -i ec2.py --private-key KEY.pem --ssh-common-args '-o " proxycommand ssh -W %h:%p -i KEY.pem [email protected]"' --skip-tags

谢谢

ssh ansible
1个回答
0
投票

要将多个选项传递给 ssh,必须多次传递

-o
reference.-,%2Do%20option,-Can%20be%20used)。

我的 ansible 库存中有这个工作:

# hosts.yaml
ansible_ssh_common_args: -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null

我相信命令行版本会这样做:

ansible-playbook provisioning/ec2.yml ... --ssh-common-args '-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' ...

或者就你的情况而言,我认为这会起作用:

ansible-playbook provisioning/ec2.yml ... --ssh-common-args '-o StrictHostKeyChecking=no -o ProxyCommand="ssh -W %h:%p -i KEY.pem [email protected]"' ...

(假设代理命令正确,请使用正常的 ssh 连接来验证)

© www.soinside.com 2019 - 2024. All rights reserved.