尝试连接到ansible
中的主机时出错我可以在本地主机(ansible)中ping ssh_connection,但不能在jenkins管道构建中ping。
我几乎尝试过所有事情。
----------
[FPipeline] Running shell script
+ ansible all -m ping -vvv
ansible 2.4.0.0
config file = /var/lib/jenkins/workspace/FPipeline/ansible.cfg
configured module search path =
[u'/var/lib/jenkins/.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, Aug 4 2017, 00:39:18) [GCC 4.8.5 20150623
(Red Hat 4.8.5-16)]
Using /var/lib/jenkins/workspace/FPipeline/ansible.cfg as config file
Parsed /etc/ansible/hosts inventory source with ini plugin
META: ran handlers
Using module file /usr/lib/python2.7/site-
packages/ansible/modules/system/ping.py
<localhost> ESTABLISH SSH CONNECTION FOR USER: None
<localhost> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o
KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-
mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o
ConnectTimeout=10 -o ControlPath=/var/lib/jenkins/.ansible/cp/8a5a4c6a60
localhost '/bin/sh -c '"'"'echo ~ && sleep 0'"'"''
Using module file /usr/lib/python2.7/site-
packages/ansible/modules/system/ping.py
<192.168.219.131> ESTABLISH SSH CONNECTION FOR USER: None
<192.168.219.131> SSH: EXEC ssh -C -o ControlMaster=auto -o
ControlPersist=60s -o KbdInteractiveAuthentication=no -o
PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o
PasswordAuthentication=no -o ConnectTimeout=10 -o
ControlPath=/var/lib/jenkins/.ansible/cp/81147ff3f7 192.168.219.131 '/bin/sh
-c '"'"'echo ~ && sleep 0'"'"''
<192.168.219.131> (255, '', 'Host key verification failed.\r\n')
server1 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Host key verification
failed.\r\n",
"unreachable": true
}
<localhost> (255, '', 'Host key verification failed.\r\n')
localhost | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Host key verification
failed.\r\n",
"unreachable": true
}
----------
你可以帮我解决这个问题......
答案 0 :(得分:6)
在您的ansible配置文件[defaults]
host_key_checking = False
中添加以下行并再次测试。
memory.size()
答案 1 :(得分:2)
在ansible
中禁用主机密钥检查的另一种方法是将ANSIBLE_HOST_KEY_CHECKING
环境变量设置为False
export ANSIBLE_HOST_KEY_CHECKING=False
答案 2 :(得分:0)
机器首次连接后是否重建了?
如果需要,您需要从~/.ssh/known_hosts
中删除主机,或将以下选项添加到SSH:StrictHostKeyChecking=no
。
答案 3 :(得分:0)
您可以使用Jenkins ansible插件执行此操作。他们的文档中的主机密钥检查有错误,但是here is a full working example:
以下是该决议的重要摘要:
ansiColor('xterm') {
ansiblePlaybook(
playbook: './ansible/playbook.yml',
inventory: '/tmp/inventory.ini',
credentialsId: 'your-jenkins-pk-credential',
disableHostKeyChecking: true,
colorized: true)
}
}