it-swarm.com.de

Wie kann ich mit Ansible einen systemd-Dienst installieren?

Ich möchte einen systemd-Dienst von einer Jinja2-Vorlage installieren. Wie mache ich das?

Muss ich das Modul copy verwenden, um die Datei nach /lib/systemd/system Zu kopieren, und dann das Modul systemd verwenden, um sie zu aktivieren?

Gibt es einen besseren Weg?

19
ATOzTOA

Ich verwende das Modul template, um die Datei .service In /etc/systemd/system Zu installieren. Laut diesem Digital Ocean-Blogeintrag/lib/systemd/system Sollten Pakete reserviert werden, die mit dem Betriebssystem selbst gebündelt sind, und Dienste von Drittanbietern sollten in /etc/systemd/system Definiert werden.

Mit Ansibles systemd Modul starte ich den Dienst mit daemon_reload=yes.

Vor Ansible 2.2 : Ich mache danach einen systemctl daemon-reload (Kann dafür gegebenenfalls einen ansible-Handler verwenden), um systemd zur Abholung zu veranlassen die neue Datei.

- 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