我有一个 Flask 应用程序,我想部署并开始使用 Ansible。我已经设置了 playbook 来安装所有需要的依赖项,但我无法让 Ansible 启动我的应用程序。我使用了 command
和 shell
两者都启动了 Flask 应用程序,但它们阻止了 Ansible 退出并且 Flask 不会在它自己的终端窗口中弹出,这使得很难直观地调试和查看 Flask 在做什么。
#Current playbook; both command and shell act the same way
tasks:
- command: python3 /home/user/Desktop/Flask/app.py
- shell: python3 /home/user/Desktop/Flask/app.py
问:如何让 Ansible 在它自己的终端窗口中启动 Flask 脚本?
最佳答案
如果你有gnu screen安装在此系统上,然后您可以使用它来执行后台任务。我使用它以 deploy
用户的身份异步运行 shell 脚本,以便稍后登录并查看它的运行情况:
- name: Invoke reset script
command: /usr/bin/screen -d -m sudo -u deploy /usr/local/bin/do-reset.sh -i -y reset
async: True
poll: 0
-d -m
参数告诉屏幕以分离模式启动,async
和 poll
设置告诉 Ansible 将命令并忘掉它。
关于python - Ansible - 在新终端窗口中启动 Python Flask 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29994021/