consul
Consul
Установите, настройте и обслуживайте Consul - сервисную сетку от HashiCorp.
Философия Роли
Вместо того чтобы дублировать каждую опцию конфигурации как переменную Ansible, конфигурация Consul хранится в инвентаре Ansible в формате 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
Затем это копируется на хост с помощью фильтра no_nice_json
:
- name: копировать конфигурацию consul
copy:
content: "{{ consul_config | to_nice_json }}"
dest: "/opt/consul/consul.json"
validate: "consul validate -config-format=json %s"
Когда переменная является картой (например, consul_services
), каждый ключ карты будет скопирован как файл, а значение станет содержимым.
Следующая карта:
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"
создаст файлы consul.json
и telegraf.json
в
/opt/consul/service.d/
.
Файлы, которые отсутствуют в карте, будут удалены, что позволит поддерживать состояние с инвентарем Ansible.
Переменные Роли
Смотрите defaults/ для подробностей и примеров.
consul_version
- версия для использования
consul_dirs
- карта директорий для создания
- по умолчанию:
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
- основной файл конфигурации
- пример: смотрите defaults/example.yml
consul_configs
- карта конфигурационных файлов для создания в каталоге
config.d
. Перезапускается при изменениях.
consul_services
- карта файлов сервисов для создания в каталоге
service.d
. Перезагружается при изменениях.
consul_scripts
- карта скриптов для создания в каталоге
scripts.d
consul_user
- владелец процесса и файлов Consul
- по умолчанию:
consul
consul_group
- группа
consul_user
- по умолчанию:
consul
consul_download_url
- URL для получения архива Consul
- по умолчанию:
https://releases.hashicorp.com
consul_service
- файл службы openrc
- по умолчанию: смотрите defaults/main.yml
consul_unitfile
- файл единицы systemd
- по умолчанию: смотрите defaults/main.yml
skip_handlers
- пропустить перезапуск/перезагрузку consul - полезно при создании образов с помощью packer
- по умолчанию:
false
Теги
config
- обновить единицу/файл службы Consul и синхронизировать конфигурационные файлыservices
- синхронизировать сервисы Consulscripts
- синхронизировать скрипты Consul
Автор
- Анатолий Ласкарис - nahsi
О проекте
Manage HashiCorp Consul
Установить
ansible-galaxy install nahsi/ansible-consul
Лицензия
mit
Загрузки
1779
Владелец