nahsi.consul

Consul

Zainstaluj, skonfiguruj i utrzymuj Consul - sieć usług od HashiCorp.

Filozofia roli

Zamiast duplikować każdą pojedynczą opcję konfiguracyjną jako zmienną w Ansible, konfiguracja Consul jest przechowywana w inwentarzu Ansible w formacie yaml:

consul_config:
  data_dir: "/var/lib/consul/"

  enable_syslog: true
  # "trace", "debug", "info", "warn", "err"
  log_level: "info"
  syslog_facility: "LOCAL5"

  rejoin_after_leave: true

  bind_addr: !unsafe '{{ GetInterfaceIP "eth0" }}'

  telemetry:
    disable_hostname: true
    prometheus_retention_time: "30s"

  server: false

Następnie jest kopiowana na hosta za pomocą filtra no_nice_json:

- name: skopiuj konfigurację consul
  copy:
    content: "{{ consul_config | to_nice_json }}"
    dest: "/opt/consul/consul.json"
    validate: "consul validate -config-format=json %s"

Gdy zmienna jest mapą (na przykład consul_services), każdy klucz mapy zostanie skopiowany jako plik z wartością jako zawartość.

Poniższa mapa

consul_services:
  consul:
    service:
      id: "consul-api"
      name: "consul-api"
      port: 8500
      tags:
        - "traefik.enable=true"
        - "traefik.http.routers.consul.entrypoints=https"
        - "traefik.http.routers.consul.rule=Host(`consul.example.com`)"
      meta:
        external-source: "consul"
      check:
        id: "consul-api-health"
        name: "consul-api-health"
        http: "http://localhost:8500/v1/agent/self"
        interval: "20s"
        timeout: "2s"

  telegraf:
    service:
      id: "telegraf-exporter"
      name: "telegraf-exporter"
      port: 9271
      meta:
        external-source: "consul"
      check:
        id: "telegraf-exporter-health"
        name: "telegraf-exporter-health"
        http: "http://localhost:9270"
        interval: "20s"
        timeout: "2s"

wytworzy pliki consul.json i telegraf.json w /opt/consul/service.d/.

Pliki, które nie są obecne w mapie, będą usuwane, co pozwoli na utrzymanie stanu zgodnie z inwentarzem Ansible.

Zmienne roli

Zobacz defaults/ aby uzyskać szczegóły i przykłady.

consul_version

  • wersja do użycia

consul_dirs

  • mapa katalogów do utworzenia
  • domyślne:
consul_dir: "/opt/consul"
consul_dirs:
  main:
    path: "{{ consul_dir }}"
  configs:
    path: "{{ consul_dir }}/config.d"
  services:
    path: "{{ consul_dir }}/service.d"
  certs:
    path: "{{ consul_dir }}/certs"
    mode: "u=rwX,g=rX,o="
  scripts:
    path: "{{ consul_dir }}/script.d"
  logs:
    path: "/var/log/consul"
  data:
    path: "/var/lib/consul"
    mode: "u=rwX,g=rX,o="

consul_config

consul_configs

  • mapa plików konfiguracyjnych do utworzenia w katalogu config.d. Restart po zmianach

consul_services

  • mapa plików usług do utworzenia w katalogu service.d. Przeładuj po zmianach

consul_scripts

  • mapa skryptów do utworzenia w katalogu scripts.d

consul_user

  • właściciel procesu i plików Consul
  • domyślnie: consul

consul_group

  • grupa użytkownika consul
  • domyślnie: consul

consul_download_url

  • adres URL do pobrania archiwum Consul
  • domyślnie: https://releases.hashicorp.com

consul_service

consul_unitfile

skip_handlers

  • pomiń ponowne uruchamianie/przeładowanie consul - przydatne podczas budowania obrazów z pakietem
  • domyślnie: false

Tagowanie

  • config - aktualizuje plik jednostki/usługi Consul i synchronizuje pliki konfiguracyjne
  • services - synchronizuje usługi Consul
  • scripts - synchronizuje skrypty Consul

Autor

  • Anatoly Laskaris - nahsi
Zainstaluj
ansible-galaxy install nahsi.consul
Licencja
mit
Pobrania
1.8k
Właściciel