在这里,我试图通过 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 功能。
所以你的任务应该是这样的:
使用您选择的作业管理器实用程序(如 atd、cron、supervisord 或 systemd)创建后台作业。仅作为示例,根据操作系统存在许多其他服务管理器。
其中,至少 cron、supervisord 和 systemd 具有包装 Ansible 模块。即使不存在,您也可以使用通用命令调用 systemd-run 或任何其他命令。