web-dev-qa-db-fra.com

Comment puis-je installer un service systemd à l'aide d'Ansible?

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?

19
ATOzTOA

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
34
Peter Lyons