Я использую ansible для развертывания артефактов, созданных в jenkins. Пьеса выглядит так:
- Перенесите архив tar.gz на удаленный хост (архив содержит код python)
- остановить код Python (он был настроен как служба systemd, которая символически ссылается на скрипт внутри /home/arl/code
- Удалить папку /home/arl/code (рекурсивно)
- Извлеките файл tar.gz в /home/arl
- Запустите скрипт systemd для кода.
В puppet вы можете управлять услугами с помощью поставщика услуг. Но поскольку вы хотите управлять «состоянием», вы не можете объявить ресурс python_service как «остановленный», а затем в манифесте как «запущенный», поскольку это приведет к ошибке дублирования объявления. В ansible, что является императивом, это легко достижимо.
Есть ли способ добиться этого в марионетке?