nahsi.consul
Consul
Instalar, configurar y mantener Consul - una malla de servicios de HashiCorp.
Filosofía del Rol
En lugar de duplicar cada opción de configuración como una variable de Ansible, la configuración de Consul se almacena en el inventario de Ansible en formato 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
Y luego se copia al host usando el filtro no_nice_json
:
- name: copiar configuración de consul
copy:
content: "{{ consul_config | to_nice_json }}"
dest: "/opt/consul/consul.json"
validate: "consul validate -config-format=json %s"
Cuando la variable es un mapa (por ejemplo, consul_services
), cada clave del mapa se copiará como un archivo con el valor como contenido.
El siguiente 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"
generará los archivos consul.json
y telegraf.json
en /opt/consul/service.d/
.
Los archivos que no estén presentes en el mapa serán eliminados, permitiendo mantener un estado con el inventario de Ansible.
Variables del Rol
Consulta defaults/ para detalles y ejemplos.
consul_version
- versión a utilizar
consul_dirs
- un mapa de directorios a crear
- por defecto:
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
- archivo de configuración principal
- ejemplo: por favor consulta defaults/example.yml
consul_configs
- mapa de archivos de configuración a crear en el directorio
config.d
. Se reinicia al realizar cambios
consul_services
- mapa de archivos de servicios a crear en el directorio
service.d
. Se recarga al realizar cambios
consul_scripts
- mapa de scripts a crear en el directorio
scripts.d
consul_user
- propietario del proceso y archivos de Consul
- por defecto:
consul
consul_group
- grupo del
consul_user
- por defecto:
consul
consul_download_url
- url para descargar el archivo de Consul
- por defecto:
https://releases.hashicorp.com
consul_service
- archivo de servicio openrc
- por defecto: consulta defaults/main.yml
consul_unitfile
- archivo de unidad systemd
- por defecto: consulta defaults/main.yml
skip_handlers
- omitir reinicio/carga de consul - útil al construir imágenes con packer
- por defecto:
false
Etiquetas
config
- actualizar el archivo de unidad/servicio de Consul y sincronizar archivos de configuraciónservices
- sincronizar servicios de Consulscripts
- sincronizar scripts de Consul
Autor
- Anatoly Laskaris - nahsi
Acerca del proyecto
Manage HashiCorp Consul
Instalar
ansible-galaxy install nahsi.consul
Licencia
mit
Descargas
1.8k
Propietario