【发布时间】:2020-12-27 15:05:15
【问题描述】:
ansible 的以下 ssh 连接无法连接到远程主机
ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o 'IdentityFile="/app/ssh_keys/id_rsa"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="root"' -o ConnectTimeout=10 -o StrictHostKeyChecking=no -o ControlPath=/home/ansibleuser/.ansible/cp/6abdc12511 -tt 10.9.88.205 'id mwweb || id webadm || ls -ld /web'
而当我从 ssh 中删除以下两个参数时,我的连接成功
1. -tt
2. -o ControlPath=/home/ansibleuser/.ansible/cp/6abdc12511
需要 ansible 构建的工作 ssh 命令。
ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o 'IdentityFile="/app/ssh_keys/id_rsa"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="root"' -o ConnectTimeout=10 -o StrictHostKeyChecking=no 10.9.88.205 'id mwweb || id webadm || ls -ld /web'
此要求(自定义 ssh 命令)适用于特定目标主机的特定 playbook,它作为参数提供给我下面的 ansible playbook。我不想在操作系统上修改现有的 ssh 配置:
- name: Play 2- Configure Source nodes
hosts: all
user: root
ignore_errors: yes
gather_facts: false
tasks:
- name: Get HTTPD userid on server
raw: id mwweb || id webadm || ls -ld /web
- name: Get OHS userid on server
raw: id mwweb
上面的剧本使用这个命令运行:
ansible-playbook -i 10.9.88.205, -f 5 testpython.yml -vvvv
我正在使用 jenkin 的 ansible 插件来触发上面的剧本。
您能否为以下问题提供解决方案:
-
我可以通过修改 playbook 代码来禁用
-tt和ControlPath吗?这是我的第一个偏好。请推荐? -
如果修改 playbook 没有帮助,那么如何使用 ansible 参数禁用两个 ssh args?
我可以使用以下方法禁用 -tt:
ansible-playbook -i 10.9.88.205, -f 5 testpython.yml -e ansible_ssh_use_tty=no -vvvv
但是,尽管通过了-e control_path="",但无法找到禁用ControlPath的方法
参考:https://docs.ansible.com/ansible/latest/plugins/connection/ssh.html
你能推荐一下吗?
【问题讨论】:
标签: ssh parameters ansible arguments connection