consul - Добавление, изменение и удаление служб в кластере consul.
Новая версия 2.0.
Обзор
- Регистрирует службы и проверяет агента в кластере consul. Служба — это какой-либо процесс, выполняющийся на узле агента, который должен быть объявлен механизмом обнаружения consul. Она может дополнительно предоставить определение проверки — периодический тест службы для уведомления кластера consul о состоянии службы.
- Проверки также могут быть зарегистрированы на узел, например, использование дискового пространства или ЦП, и уведомлять о состоянии всего узла в кластер. Проверки на уровне службы не требуют имени или идентификатора проверки, так как они выводятся Consul из имени и идентификатора службы, добавляя «service:». Проверки на уровне узла требуют check_name и необязательно check_id.
- В настоящее время нет полного способа извлечения метаданных скрипта, интервала или ttl для зарегистрированной проверки. Без этих метаданных невозможно определить, представляют ли данные, предоставленные ansible, изменения в проверке. В результате это не пытается определить изменения и всегда будет сообщать о произошедших изменениях. Планируется метод API для предоставления этих метаданных, так что на этом этапе будет добавлено управление изменениями.
- Для получения более подробной информации см. http://consul.io.
Требования
Ниже приведены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- python-consul
- requests
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| check_id | Значение по умолчанию: None | Идентификатор проверки службы, по умолчанию совпадает с именем проверки, игнорируется, если он является частью определения службы. |
| check_name | Значение по умолчанию: None | Имя проверки службы, по умолчанию совпадает с идентификатором проверки. Требуется, если автономная, игнорируется, если является частью определения службы. |
| host | Значение по умолчанию: localhost | Хост агента consul, по умолчанию localhost |
| http (добавлено в 2.0) | Значение по умолчанию: None | Проверки могут быть зарегистрированы с помощью http-окончания. Это означает, что consul проверит, что http-окончание возвращает успешный http-статус. Также необходимо указать интервал. |
| interval | Значение по умолчанию: None | Интервал, с которым будет выполняться проверка службы. Это число с суффиксом s или m для обозначения единиц секунд или минут, например 15s или 1m. Если суффикс не указан, по умолчанию используется m, например 1 будет 1m. Требуется, если указан параметр скрипта. |
| notes | Значение по умолчанию: None | Примечания, которые нужно добавить к проверке при ее регистрации. |
| port | Значение по умолчанию: 8500 | Порт, на котором работает агент consul |
| scheme (добавлено в 2.1) | Значение по умолчанию: http | Схем протокола, на котором работает агент consul |
| script | Значение по умолчанию: None | Скрипт/команда, которые будут выполняться периодически для проверки состояния службы. Скрипты требуют интервал и наоборот. |
| service_address (добавлено в 2.1) | Значение по умолчанию: None | Адрес, который будет объявлен, что служба будет прослушивать. Это значение будет передано как параметр Address методу API Consul /v1/agent/service/register, поэтому для получения дополнительной информации обратитесь к документации API Consul. |
| service_id | Значение по умолчанию: service_name if supplied | Идентификатор службы, должен быть уникальным для каждого узла, по умолчанию совпадает с именем службы, если имя службы указано |
| service_name | Уникальное имя службы на узле, должно быть уникальным для каждого узла, требуется при регистрации службы. Может быть опущено, если регистрируется проверка на уровне узла | |
| service_port | Значение по умолчанию: None | Порт, на котором служба прослушивает. Может быть дополнительно указан для регистрации службы, т. е. если установлен service_name или service_id |
| state требуется |
| регистрация или отмена регистрации службы consul, по умолчанию present |
| tags | Значение по умолчанию: None | Список тегов, которые будут добавлены к регистрации службы. |
| timeout (добавлено в 2.0) | Значение по умолчанию: None | Настройка таймаута проверки HTTP. Значение по умолчанию в consul — 10 секунд. Аналогично интервалу, это число с суффиксом s или m для обозначения единиц секунд или минут, например 15s или 1m. |
| token | Значение по умолчанию: None | Ключ токена, определяющий набор правил ACL. Может потребоваться для регистрации служб. |
| ttl | Значение по умолчанию: None | Проверки могут быть зарегистрированы с ttl вместо скрипта и интервала, что означает, что служба будет проверять связь с агентом до истечения ttl. Если этого не происходит, проверка считается не пройденной. Требуется при регистрации проверки, если отсутствуют скрипт и интервал. Аналогично интервалу, это число с суффиксом s или m для обозначения единиц секунд или минут, например 15s или 1m. Если суффикс не указан, по умолчанию используется m, например 1 будет 1m |
| validate_certs (добавлено в 2.1) | Значение по умолчанию: yes | Выполнять ли проверку сертификата tls агента consul |
Примеры
- name: register nginx service with the local consul agent
consul:
service_name: nginx
service_port: 80
- name: register nginx service with curl check
consul:
service_name: nginx
service_port: 80
script: curl http://localhost
interval: 60s
- name: register nginx with an http check
consul:
service_name: nginx
service_port: 80
interval: 60s
http: http://localhost:80/status
- name: register external service nginx available at 10.1.5.23
consul:
service_name: nginx
service_port: 80
service_address: 10.1.5.23
- name: register nginx with some service tags
consul:
service_name: nginx
service_port: 80
tags:
- prod
- webservers
- name: remove nginx service
consul:
service_name: nginx
state: absent
- name: register celery worker service
consul:
service_name: celery-worker
tags:
- prod
- worker
- name: create a node level check to test disk usage
consul:
check_name: Disk usage
check_id: disk_usage
script: /opt/disk_usage.py
interval: 5m
- name: register an http check against a service that's already registered
consul:
check_name: nginx-check2
check_id: nginx-check2
service_id: nginx
interval: 60s
http: http://localhost:80/morestatus
Статус
Этот модуль помечен как превью, что означает, что его интерфейс не гарантирует обратной совместимости.
Автор
- Steve Gargan (@sgargan)
Подсказка
Если вы заметите какие-либо проблемы в этом документе, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.5/modules/consul_module.html