модуль community.general.consul — добавление, изменение и удаление служб в кластере Consul
Примечание
Этот модуль входит в коллекцию community.general (версия 12.6.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.general. Для использования этого модуля необходимы дополнительные зависимости; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.general.consul.
Краткое описание
- Регистрирует службы и проверки агента в кластере Consul. Служба — это процесс, запущенный на узле агента, который должен быть доступен через механизм обнаружения Consul. При необходимости можно указать определение проверки — периодический тест службы, сообщающий кластеру Consul о состоянии службы.
- Проверки также можно регистрировать для каждого узла, например для контроля использования диска или процессора, чтобы сообщать кластеру о состоянии всего узла. Для проверок на уровне службы не требуется указывать имя или идентификатор: Consul формирует их из имени и идентификатора службы соответственно, добавляя
service:. Для проверок на уровне узла необходимо указатьcheck_nameи, при необходимости,check_id. - В настоящее время нет полного способа получить метаданные скрипта, интервала или TTL для зарегистрированной проверки. Без этих метаданных невозможно определить, означают ли данные, переданные с помощью Ansible, изменение проверки. Поэтому модуль не пытается определять изменения и всегда сообщает, что произошло изменение. Планируется добавить в API метод для получения этих метаданных; после этого будет добавлено управление изменениями.
- Дополнительные сведения см. на сайте http://consul.io.
Требования
Следующие требования необходимы на узле, который выполняет этот модуль.
- py-consul
- requests
Параметры
Параметр | Комментарии |
|---|---|
check_host строка | Имя узла. |
check_id строка | Идентификатор проверки службы. Если |
check_name строка | Имя проверки службы. Обязательно для отдельной регистрации; игнорируется, если входит в определение службы. |
check_node строка | Имя узла. |
host строка | Узел, на котором работает агент Consul; по умолчанию используется localhost. По умолчанию: |
http строка | |
interval строка | |
notes строка | Примечания, добавляемые к проверке при ее регистрации. |
port целое число | Порт, на котором работает агент Consul. По умолчанию: |
scheme строка | Схема протокола, по которой работает агент Consul. По умолчанию: |
script строка | |
service_address строка | Адрес, по которому служба принимает запросы и который следует объявить. Это значение передается как параметр |
service_id строка | Идентификатор службы; должен быть уникальным для каждого узла. Если |
service_name строка | Уникальное имя службы на узле; должно быть уникальным для каждого узла. Обязательно при регистрации службы. Можно не указывать при регистрации проверки на уровне узла. |
service_port целое число | Порт, на котором служба принимает запросы. Можно указать при регистрации службы, то есть если задан |
state строка | Зарегистрировать или отменить регистрацию службы Consul; по умолчанию — present. Варианты:
|
tags список / элементы=строка | Теги, добавляемые при регистрации службы. |
tcp строка добавлено в community.general 1.3.0 | |
timeout строка | Пользовательский тайм-аут проверки HTTP. Значение по умолчанию в Consul — 10 секунд. Как и интервал, это число с суффиксом |
token строка | Ключ токена, идентифицирующий набор правил ACL. Может потребоваться для регистрации служб. |
ttl строка | Вместо |
validate_certs логическое значение | Проверять ли TLS-сертификат агента Consul. Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: нет | Может работать в режиме |
diff_mode | Поддержка: нет | В режиме сравнения возвращает сведения об изменениях (или о возможных изменениях в |
Примеры
- name: Register nginx service with the local Consul agent
community.general.consul:
service_name: nginx
service_port: 80
- name: Register nginx service with curl check
community.general.consul:
service_name: nginx
service_port: 80
script: curl http://localhost
interval: 60s
- name: register nginx with a tcp check
community.general.consul:
service_name: nginx
service_port: 80
interval: 60s
tcp: localhost:80
- name: Register nginx with an http check
community.general.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
community.general.consul:
service_name: nginx
service_port: 80
service_address: 10.1.5.23
- name: Register nginx with some service tags
community.general.consul:
service_name: nginx
service_port: 80
tags:
- prod
- webservers
- name: Remove nginx service
community.general.consul:
service_name: nginx
state: absent
- name: Register celery worker service
community.general.consul:
service_name: celery-worker
tags:
- prod
- worker
- name: Create a node level check to test disk usage
community.general.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
community.general.consul:
check_name: nginx-check2
check_id: nginx-check2
service_id: nginx
interval: 60s
http: http://localhost:80/morestatus
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/consul_module.html