1
我試圖使用可以配置我必須使用的環境。特別是,我需要編寫一個重新啓動服務器任務,所以我寫了這個任務:Ansible wait_for重新啓動
- name: waiting for server to come back
local_action: wait_for
host={{ ansible_hostname }}
port=22
state=started
delay=50
timeout=300
sudo: false
但任務失敗,達到即使服務器重新啓動正確的超時。
我想知道是否因爲我的SSH配置而失敗。與這些服務器的連接通過代理(ProxyCommand
,在~/.ssh/config
)完成。
FROM VERBOSE OUTPUT
<servername> ESTABLISH SSH CONNECTION FOR USER: username
<servername> SSH: EXEC ssh -C -vvv -o ControlMaster=False -o Port=22 -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=username -o ConnectTimeout=10 -tt hostname
...
fatal: [servername -> localhost]: FAILED! => {"changed": false, "elapsed": 300, "failed": true, "invocation": {"module_args": {"connect_timeout": 5, "delay": "10", "exclude_hosts": null, "host": "hostname", "path": null, "port": "22", "search_regex": null, "state": "started", "timeout": "300"}, "module_name": "wait_for"}, "msg": "Timeout when waiting for host:22"}
我不知道是否有關,但在輸出:
hostname != servername: hostname = foo, servername = foo.bar.com
我覺得hostname=ansible_hostname
而servername=inventory_hostname
Ansible版本:2.0.1.0 ansible
有什麼錯誤? –
你可以用'-vvvv'執行嗎?我剛剛在服務器上試過這個代碼,它也使用ProxyCommand訪問,它工作得很好。 –
我有幾乎相同的任務,也使用ProxyCommand和工程。我不完全確定,但我相信這是我必須禁用SSH會話(ControlMaster)的原因。你使用ssh會話嗎? – udondan