Читать книгу Handbuch Infrastructure as Code - Kief Morris - Страница 66

Idempotenz

Оглавление

Das kontinuierliche Anwenden von Code ist eine wichtige Praxis für das Pflegen der Konsistenz und Kontrolle Ihres Infrastruktur-Codes, wie in »Code kontinuierlich anwenden« auf Seite 395 beschrieben wird. Dazu gehört ein wiederholtes Wiederanwenden von Code auf die Infrastruktur, um einen Drift zu vermeiden. Code muss idempotent sein, um sicher kontinuierlich angewendet werden zu können.

Sie können idempotenten Code beliebig häufig wiederholt laufen lassen, ohne die Ausgabe oder das Ergebnis zu verändern. Lassen Sie ein Tool mehrfach laufen, das nicht idempotent ist, kann das die Dinge ziemlich durcheinanderbringen.

Hier ein Beispiel für ein Shell-Skript, das nicht idempotent ist:

echo "spock:*:1010:1010:Spock:/home/spock:/bin/bash" \

>> /etc/passwd

Lassen Sie dieses Skript einmal laufen, erhalten Sie das gewünschte Ergebnis: Der Anwender spock wird zur Datei /etc/passwd hinzugefügt. Lassen Sie es zehnmal laufen, erhalten Sie zehn identische Einträge für diesen gleichen Anwender.

Mit einem idempotenten Infrastruktur-Tool geben Sie an, wie das Ergebnis aussehen soll:

user:

name: spock

full_name: Spock

uid: 1010

gid: 1010

home: /home/spock

shell: /bin/bash

Egal wie oft Sie das Tool mit diesem Code laufen lassen, wird es sicherstellen, dass nur ein Eintrag für den Anwender spock in der Datei /etc/passwd existiert. Keine unschönen Nebeneffekte.

Handbuch Infrastructure as Code

Подняться наверх