nahsi.consul
Consul
Installer, configurer et maintenir Consul - un service mesh de HashiCorp.
Philosophie du Rôle
Au lieu de dupliquer chaque option de configuration en tant que variable Ansible, la configuration de Consul est stockée dans l'inventaire Ansible au format 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
Ensuite, il est copié sur l'hôte à l'aide du filtre no_nice_json
:
- name: copier la config de consul
copy:
content: "{{ consul_config | to_nice_json }}"
dest: "/opt/consul/consul.json"
validate: "consul validate -config-format=json %s"
Lorsque la variable est une carte (consul_services
par exemple), chaque clé de la carte sera copiée en tant que fichier avec la valeur comme contenu.
La carte suivante
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"
produira les fichiers consul.json
et telegraf.json
dans /opt/consul/service.d/
.
Les fichiers qui ne sont pas présents dans la carte seront supprimés, permettant ainsi de maintenir un état avec l'inventaire Ansible.
Variables du Rôle
Voir defaults/ pour plus de détails et d'exemples.
consul_version
- version à utiliser
consul_dirs
- une carte des répertoires à créer
- par défaut :
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
- fichier de configuration principale
- exemple : voir defaults/example.yml
consul_configs
- carte des fichiers de configuration à créer dans le répertoire
config.d
. Redémarrage sur modifications
consul_services
- carte des fichiers de services à créer dans le répertoire
service.d
. Recharge sur modifications
consul_scripts
- carte des scripts à créer dans le répertoire
scripts.d
consul_user
- propriétaire du processus et des fichiers Consul
- par défaut :
consul
consul_group
- groupe de
consul_user
- par défaut :
consul
consul_download_url
- url pour obtenir l'archive Consul
- par défaut :
https://releases.hashicorp.com
consul_service
- fichier de service openrc
- par défaut : voir defaults/main.yml
consul_unitfile
- fichier d'unité systemd
- par défaut : voir defaults/main.yml
skip_handlers
- sauter le redémarrage/rechargement de consul - utile lors de la création d'images avec packer
- par défaut :
false
Tags
config
- mettre à jour le fichier d'unité/service de Consul et synchroniser les fichiers de configurationservices
- synchroniser les services Consulscripts
- synchroniser les scripts Consul
Auteur
- Anatoly Laskaris - nahsi
À propos du projet
Manage HashiCorp Consul
Installer
ansible-galaxy install nahsi.consul
Licence
mit
Téléchargements
1.8k
Propriétaire