Python
通過 Ansible Playbook 呼叫 Python 腳本並在後台執行 - 通過 Ansible Tower
在這裡,我試圖通過 ansible playbook 呼叫 python 腳本。當我執行包含下面提到的程式碼的劇本時,它成功地呼叫了腳本。但是 ansible 腳本會繼續執行,直到 Python 腳本完成其所有任務。
- hosts: localhost gather_facts: false vars: username: 'User' password: '1234@345' tasks: - name: Invoking Python script script: data_pull_push.py args: executable: python
python 腳本“data_pull_push.py”正在從一個 Url 獲取數據並將其發佈到另一個 Url。它的數據太多了。因此,檢索和發布所有數據需要很長時間。所以我希望 Ansible 劇本觸發其中的 Python 腳本並關閉劇本。Python 腳本應該在後台執行。
這個 Ansible playbook 和 python 腳本保存在 git 中,並將在 Ansible tower 中執行 playbook。我不知道如何在 Ansible 中使用它。如果有人知道請告訴我。
您應該使用非同步操作和輪詢Ansible 功能。
所以你的任務應該是這樣的:
- name: Long async task command: python data_pull_push.py async: <timeout value> poll: 0
使用您選擇的作業管理器實用程序(如 atd、cron、supervisord 或 systemd)創建後台作業。僅作為範例,根據作業系統存在許多其他服務管理器。
其中,至少 cron、supervisord 和 systemd 具有包裝 Ansible 模組。即使不存在,您也可以使用通用命令呼叫 systemd-run 或任何其他命令。