在集成jenkins和ansible实现自动化部署时,root用户下执行ansible命令时可以正常运行。由于是通过jenkins用户去执行ansible命令,而jenkins用户却报如下异常:
XXXXXXX | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh.",
"unreachable": true
}
找了好久也没找到相应的解决办法,后来在http://superuser.com/questions/1081609/ansible-how-to-set-a-default-ssh-user-for-all-hosts上找到了相应的解决办法。
设置以root用户执行ansible,将remote_user = root前的注释符去掉,再次运行即可。
# default user to use for playbooks if user is not specified
# (/usr/bin/ansible will use current user as default)
remote_user = root
再次执行,成功返回执行信息。
-bash-4.2$ ansible webservers -m command -a "free -m"
xxxx | SUCCESS | rc= >>
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap: