ansible: Service vor Änderung stoppen

Vor einer Änderung muss teilweise ein Dienst gestoppt sein, beispielsweise wenn man Eigenschaften eines Benutzers ändern, wenn unter diesem ein Dienst läuft.
Natürlich kann man im ansible task vor der der Änderung den Dienst stoppen und nachher starten, nur wäre das nicht mehr „idempotent“, da der Dienst dann auch gestoppt/gestartet würde wenn gar keine Änderung nötig ist.

Um dieses Problem zu Umgehen kann man mit dem check_mode vorher testen ob eine Änderung überhaupt nötig ist.

Hier ändern wir die Benutzereigenschaften des Benutzers „mydaemon“:

- user:
    name:     mydaemon
    home:     /srv/mydaemon
    shell:    /bin/bash
  check_mode: yes
  register:   needs_update

- service:    name=mydaemon state=stopped
  when:       needs_update is changed

- name:       "Set home directory and shell of the mydaemon user"
  user:
    name:     mydaemon
    home:     /srv/mydaemon
    shell:    /bin/bash

- service:    name=mydaemon state=started
  when:       needs_update is changed

Published by

Steven Varco

Steven ist ein Redhat RHCE- und Kubernetes CKA Zertifizierter Linux-Crack und ist seit über 20 Jahren sowohl beruflich wie auch privat auf Linux spezialisiert. In seinem Keller steht ein Server Rack mit diversen ESX und Linux Servern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert