Разверните сборку с помощью Ansible - PullRequest
0 голосов
/ 10 июня 2019

У меня есть простая программа на Python, которая реализует экспортер prometheus, который использует zdaemon через buildout. Как я могу развернуть это с помощью Ansible, сохранив изолированную среду, которую создает buildout?

Я смотрел на pip-модуль Ansible, но если я создаю пакет, используя buildout setup ..., тогда я просто упаковываю myscript без zdaemon, который добавляет buildout.

Я думаю об этом, чтобы установить «bin / server», который выполняет buildout на сервере, и запустить его из cron's @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']
)

1 Ответ

0 голосов
/ 17 июня 2019

Очевидно, что buildout работает не так, и единственный способ получить изолированную среду buildout - запустить buildout на целевой машине.

Если это нежелательно, то альтернативой является создание setuptoolsпакет (используя buildout setup path/to/setup.py [sdist|bdist]), который можно установить через pip.Это будет обычный пакет Python, и у него не будет изоляции Buildout.В этом случае zdaemon должен быть настроен вручную, и его конфигурационный файл включен в пакет.Пакет, который будет файлом .tar.gz, затем может быть скопирован в цель и установлен с помощью pip, что можно сделать с помощью Ansible.

...