Spec-Zone.ru › Ansible

модуль 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

строка

Идентификатор проверки службы. Если state=absent, по умолчанию используется check_name. Игнорируется, если входит в определение службы.

check_name

строка

Имя проверки службы. Обязательно для отдельной регистрации; игнорируется, если входит в определение службы.

check_node

строка

Имя узла.

host

строка

Узел, на котором работает агент Consul; по умолчанию используется localhost.

По умолчанию: "localhost"

http

строка

Проверки можно регистрировать с конечной точкой HTTP. В этом случае Consul проверяет, возвращает ли конечная точка HTTP успешный статус HTTP.

Необходимо указать interval.

Взаимоисключающий параметр с script, ttl и tcp.

interval

строка

Интервал запуска проверки службы. Это число с суффиксом s или m, обозначающим секунды или минуты, например 15s или 1m. Если суффикс не указан, по умолчанию используется s; например, 10 соответствует 10s.

Обязательно, если задан один из параметров script, http или tcp.

notes

строка

Примечания, добавляемые к проверке при ее регистрации.

port

целое число

Порт, на котором работает агент Consul.

По умолчанию: 8500

scheme

строка

Схема протокола, по которой работает агент Consul.

По умолчанию: "http"

script

строка

Скрипт или команда, периодически запускаемые для проверки состояния службы.

Необходимо указать interval.

Взаимоисключающий параметр с ttl, tcp и http.

service_address

строка

Адрес, по которому служба принимает запросы и который следует объявить. Это значение передается как параметр address методу API Consul /v1/agent/service/register; дополнительные сведения см. в документации API Consul.

service_id

строка

Идентификатор службы; должен быть уникальным для каждого узла. Если state=absent, по умолчанию используется имя службы, если оно указано.

service_name

строка

Уникальное имя службы на узле; должно быть уникальным для каждого узла. Обязательно при регистрации службы. Можно не указывать при регистрации проверки на уровне узла.

service_port

целое число

Порт, на котором служба принимает запросы. Можно указать при регистрации службы, то есть если задан service_name или service_id.

state

строка

Зарегистрировать или отменить регистрацию службы Consul; по умолчанию — present.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"

tags

список / элементы=строка

Теги, добавляемые при регистрации службы.

tcp

строка

добавлено в community.general 1.3.0

Проверки можно регистрировать с портом TCP. В этом случае Consul проверяет, успешно ли устанавливается соединение с этим портом (то есть принимает ли порт подключения). Формат: host:port, например localhost:80.

Необходимо указать interval.

Взаимоисключающий параметр с script, ttl и http.

timeout

строка

Пользовательский тайм-аут проверки HTTP. Значение по умолчанию в Consul — 10 секунд. Как и интервал, это число с суффиксом s или m, обозначающим секунды или минуты, например 15s или 1m. Если суффикс не указан, по умолчанию используется s; например, 10 эквивалентно 10s.

token

строка

Ключ токена, идентифицирующий набор правил ACL. Может потребоваться для регистрации служб.

ttl

строка

Вместо script и interval проверки можно регистрировать с TTL. В этом случае служба сообщает агенту о своем состоянии до истечения TTL. В противном случае проверка считается неуспешной. Обязательно при регистрации проверки, если не заданы скрипт и интервал. Как и интервал, это число с суффиксом s или m, обозначающим секунды или минуты, например 15s или 1m. Если суффикс не указан, по умолчанию используется s; например, 10 эквивалентно 10s.

Взаимоисключающий параметр с script, tcp и http.

validate_certs

логическое значение

Проверять ли TLS-сертификат агента Consul.

Варианты:

  • false
  • true ← (по умолчанию)

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: нет

Может работать в режиме check_mode и возвращать прогноз изменения состояния, не изменяя целевой узел.

diff_mode

Поддержка: нет

В режиме сравнения возвращает сведения об изменениях (или о возможных изменениях в check_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

Авторы

  • Steve Gargan (@sgargan)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Запросить помощь
  • Сообщить об ошибке
  • Предложить новую возможность
  • Связь

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API