【发布时间】:2019-06-09 21:37:51
【问题描述】:
我有一个简单的 Python 程序,它实现了一个 prometheus 导出器,它通过 buildout 使用 zdaemon。如何使用 Ansible 部署它,同时保留构建所产生的隔离环境?
我查看了 Ansible 的 pip 模块,但如果我使用 buildout setup ... 制作一个包,那么我只需将 myscript 打包,而没有 buildout 添加的 zdaemon 内容。
我正在考虑这样做的方式是安装 buildout 在服务器上创建的“bin/server”并从 cron 的 @reboot 运行它,但当然这不会直接工作,因为 buildout 使用路径在它生成的脚本中的构建机器上。
buildout.cfg:
develop = .
parts = server
[server]
recipe = zc.zdaemonrecipe
program = ${buildout:bin-directory}/myscript.py
eggs =
myscript
zdaemon
setup.py:
from setuptools import setup, find_packages
setup(
name="myscript",
version="0.1",
packages=find_packages(),
scripts=['myscript.py'],
install_requires=['prometheus_client']
)
【问题讨论】: