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 - | Идентификатор проверки службы, по умолчанию совпадает с именем проверки, игнорируется, если является частью определения службы. | |
| check_name - | Имя проверки службы, по умолчанию совпадает с идентификатором проверки. Требуется, если независимая, игнорируется, если является частью определения службы. | |
| host - | Значение по умолчанию: "localhost" | Хост агента consul, по умолчанию localhost |
| http - добавлено в 2.0 | Проверки могут быть зарегистрированы с помощью конечной точки http. Это означает, что consul проверит, что конечная точка http возвращает успешный HTTP-статус. Также необходимо предоставить интервал. | |
| interval - | Интервал, с которым будет выполняться проверка службы. Это число с суффиксом s или m для обозначения единиц секунд или минут, например 15s или 1m. Если суффикс не указан, по умолчанию используется m, например 1 будет 1m. Требуется, если указан параметр script. | |
| notes - | Примечания для добавления к проверке при ее регистрации. | |
| port - | Значение по умолчанию: 8500 | Порт, на котором работает агент consul |
| scheme - добавлено в 2.1 | Значение по умолчанию: "http" | Схема протокола, на которой работает агент consul |
| script - | Скрипт/команда, которые периодически будут выполняться для проверки состояния службы. Скрипты требуют интервал и наоборот. | |
| service_address - добавлено в 2.1 | Адрес для рекламы, на котором будет слушать служба. Это значение будет передано в качестве параметра Address методу API Consul /v1/agent/service/register, поэтому обратитесь к документации API Consul для получения дополнительных сведений. | |
| service_id - | Значение по умолчанию: "имя_службы, если указано" | Идентификатор службы, должен быть уникальным для каждого узла, по умолчанию совпадает с именем службы, если имя службы указано. |
| service_name - | Уникальное имя службы на узле, должно быть уникальным для каждого узла, необходимо при регистрации службы. Можно опустить, если регистрируется проверка на уровне узла. | |
| service_port - | Порт, на котором слушает служба. Может быть необязательно предоставлен для регистрации службы, т. е. если заданы service_name или service_id. | |
| state - / требуется |
| Регистрация или отключение службы consul, по умолчанию present |
| tags - | Список тегов, которые будут добавлены к регистрации службы. | |
| timeout - добавлено в 2.0 | Пользовательский таймаут проверки HTTP. Значение по умолчанию в consul — 10 секунд. Аналогично интервалу, это число с суффиксом s или m для обозначения единиц секунд или минут, например 15s или 1m. | |
| token - | Ключ маркера, идентифицирующий набор правил ACL. Может потребоваться для регистрации служб. | |
| ttl - | Проверки могут быть зарегистрированы с ttl вместо скрипта и интервала, это означает, что служба будет проверять агент до истечения ttl. Если этого не произойдет, проверка будет считаться не выполненной. Требуется при регистрации проверки, если отсутствуют скрипт и интервал. Аналогично интервалу, это число с суффиксом s или m для обозначения единиц секунд или минут, например 15s или 1m. Если суффикс не указан, по умолчанию используется m, например 1 будет 1m. | |
| validate_certs boolean добавлено в 2.1 |
| Требовать проверку сертификата 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
Статус
- Этот модуль не гарантирует обратную совместимость интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- 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.8/modules/consul_module.html