Je souhaite installer un service systemd à partir d'un modèle Jinja2. Comment puis-je faire cela?
Dois-je utiliser le module copy
pour copier le fichier dans /lib/systemd/system
puis utilisez le module systemd
pour l'activer?
Y a-t-il une meilleure façon?
J'utilise le module template
pour installer le .service
fichier dans le /etc/systemd/system
. Selon ce billet de blog Digital Ocean/lib/systemd/system
doit être réservé aux packages fournis avec le système d'exploitation lui-même, et les services tiers doivent être définis dans /etc/systemd/system
.
Avec le module systemd
ansible, je démarrerais le service avec daemon_reload=yes
.
Avant Ansible 2.2 : je fais un systemctl daemon-reload
ensuite (peut utiliser un gestionnaire ansible pour cela le cas échéant) pour produire systemd pour récupérer le nouveau fichier.
- name: install myservice systemd unit file
template: src=myservice.j2 dest=/etc/systemd/system/myservice.service
- name: start myservice
systemd: state=started name=myservice daemon_reload=yes
# For ansilble < 2.2 only
#- name: reload systemd unit configuration
# command: systemctl daemon-reload