Consul Template

Zur besseren Integration von Consul und Vault in typische Konfigurationsszenarien, die auf Konfigurationsdateien beruht, verwendet man consul-template.

Das wird in zwei unterschiedlichen Weisen verwendet:

  • als Binary

    • on One-Shot Mode: einmaliges Ausführen

    • in Observer Mode: immer wenn sich verwendete Konfigurationen in Consul/Vault verändern, dann erfolgt eine erneute Ausführung

  • als Service

Über Binary-Observer-Mode und als Service lassen sich auch Konfigurationsänderungen in Echtzeit an die beteiligten Service weitergeben.


Getting Started

Download des GO-Executables consul-template.

Angenommen man hat

  • in Consul einen Key consul_foo mit dem Wert consul_bar

  • in Vault einen Key vault_foo mit dem Wert vault_bar

hinterlegt und my.cfg.tpl sieht folgendermaßen aus:

Das ist der Wert aus Consul: {{ key "consul_foo" }}
Das ist der Wert aus Vault: {{ with secret "vault_foo" }}

dann wird hierdurch

consul-template \
    -template=my.cfg.tpl:my.cfg \
    -once \
    -vault-retry-attempts=2 \
    -consul-retry-attempts=2

eine Datei my.cfg erstellt, die folgendermaßen aussieht:

Das ist der Wert aus Consul: consul_bar
Das ist der Wert aus Vault: vault_bar

erstellt.

Läßt man -once weg, so läuft der Prozess weiter und erzeugt bei Änderungen in Consul/Vault eine neue my.cfg Datei.


Syntax

Last updated

Was this helpful?