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
- główny plik konfiguracyjny
- przykład: zobacz defaults/example.yml
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
- plik usługi openrc
- domyślnie: zobacz defaults/main.yml
consul_unitfile
- plik jednostki systemd
- domyślnie: zobacz defaults/main.yml
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
O projekcie
 Manage HashiCorp Consul
Zainstaluj
 ansible-galaxy install nahsi.consulLicencja
 
            mit
          
Pobrania
 
            1.8k
          
Właściciel
 