2017-04-06 55 views
3

我目前使用Ansible使用IPv6鏈接本地地址提供裸機。一旦服務器供應完畢,有理由將在服務器上運行一系列測試,作爲一個shell命令,以確保供應成功。這些測試大約需要10分鐘才能運行。在Ansible中增加SSH命令的超時時間

我面臨的問題是連接似乎在命令完成之前超時。

這裏是Ansible錯誤:

fatal: [fe80::5054:ff:XXXX:XXXX%eth0]: UNREACHABLE! => { 
    "changed": false, 
    "msg": "Failed to connect to the host via ssh: Shared connection to fe80::5054:ff:XXXX:XXXX%eth0 closed.\r\n", 
    "unreachable": true 
} 

通過查看這個錯誤,可能會覺得有與SSH連接的問題。 SSH連接本身很好,因爲在此任務之前,其他幾個任務在同一主機上成功運行。

如何增加超時時間以便Ansible等待命令完成?可以在Ansible配置中增加此超時,還是需要修改命令本身以增加超時?

+0

我不認爲你的問題是在SSH會話超時。請包含您的代碼。 – techraf

回答

2

您將要異步運行任務。高層次的步驟是:例如

    1. 發送部署請求得到一些實例或請求ID爲所述請求
    2. 輪詢的請求結果
    3. 繼續劇本

    這是official docs的一個示例

    - name: 'YUM - fire and forget task' 
        yum: 
        name: docker-io 
        state: installed 
        async: 1000 
        poll: 0 
        register: yum_sleeper 
    
    - name: 'YUM - check on fire and forget task' 
        async_status: 
        jid: "{{ yum_sleeper.ansible_job_id }}" 
        register: job_result 
        until: job_result.finished 
        retries: 30 
    
  • 0

    我有幾乎相似的問題,-vvv沒有給我太多的信息。但是,在訪客中查看系統日誌顯示,我在運行可靠的腳本時耗盡了內存。如果在運行安全腳本時能夠看到系統日誌條目以查看guest虛擬機中是否存在任何問題,那就太好了。