在集成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=0 >> total used free shared buffers cached Mem: 1518 292 1225 0 42 125 -/+ buffers/cache: 125 1393 Swap: 0 0 0