Spec-Zone.ru › Ansible 2.9

consul – Добавление, изменение и удаление служб в кластере consul

  • Описание
  • Требования
  • Параметры
  • Примеры
  • Статус

Описание

  • Регистрирует службы и проверяет наличие агента в кластере consul. Служба — это процесс, выполняемый на узле агента, который должен быть объявлен механизмом обнаружения consul. Она может (по желанию) предоставить определение проверки — периодическое тестирование службы для уведомления кластера consul о состоянии службы.
  • Проверки также могут регистрироваться на уровне узла, например, использование дискового пространства или процессорной мощности, и уведомлять кластер о состоянии всего узла. Проверки на уровне службы не требуют имени или идентификатора проверки, поскольку они выводятся Consul из имени и идентификатора службы, соответственно, добавлением «service:». Проверки на уровне узла требуют check_name и необязательно check_id.
  • В настоящее время нет полного способа получения метаданных сценария, интервала или ttl для зарегистрированной проверки. Без этих метаданных невозможно определить, представляют ли данные, предоставленные ansible, изменение проверки. В результате это не пытается определить изменения и всегда сообщает об изменениях. Планируется API-метод для предоставления этих метаданных, и на этом этапе будет добавлено управление изменениями.
  • Для получения дополнительной информации см. http://consul.io.

Требования

Ниже перечислены требования, необходимые на хосте, который выполняет этот модуль.

  • python-consul
  • requests

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
check_id
строка
Идентификатор проверки службы. Если state=absent, по умолчанию используется check_name. Игнорируется, если это часть определения службы.
check_name
строка
Имя проверки службы. Требуется, если это автономная проверка, игнорируется, если это часть определения службы.
host
строка
Значение по умолчанию:
"localhost"
Хост агента consul, по умолчанию — localhost
http
строка
Проверки могут быть зарегистрированы с помощью HTTP-подключения. Это означает, что consul будет проверять, возвращает ли HTTP-подключение успешный HTTP-статус. Также необходимо указать interval.
interval
строка
Интервал, с которым будет выполняться проверка службы. Это число с суффиксом s или m, обозначающим единицы секунд или минут, например 15s или 1m. Если суффикс не указан, по умолчанию используется m, например, 1 будет 1m. Требуется, если указан параметр script.
notes
строка
Примечания, которые нужно добавить к проверке при её регистрации.
port
целое число
Значение по умолчанию:
8500
Порт, на котором работает агент consul
scheme
строка
Значение по умолчанию:
"http"
Схема протокола, по которому работает агент consul
script
строка
Скрипт/команда, которые будут выполняться периодически для проверки состояния службы. Для скриптов требуется interval и наоборот.
service_address
строка
Адрес для объявления того, на каком адресе будет прослушиваться служба. Это значение будет передано как параметр address в API-метод Consul /v1/agent/service/register, поэтому обратитесь к документации API Consul для получения дополнительной информации.
service_id
строка
Идентификатор службы, должен быть уникальным для каждого узла. Если state=absent, по умолчанию используется имя службы, если оно указано.
service_name
строка
Уникальное имя службы на узле, должно быть уникальным для каждого узла, требуется при регистрации службы. Может быть опущено при регистрации проверки на уровне узла.
service_port
целое число
Порт, на котором прослушивается служба. Может быть необязательно указан для регистрации службы, т.е. если заданы service_name или service_id
state
-
    Варианты:
  • present ←
  • absent
Регистрация или отмена регистрации службы consul, по умолчанию — present
tags
список
Теги, которые будут прикреплены к регистрации службы.
timeout
строка
Настройка таймаута проверки HTTP. Значение по умолчанию в consul — 10 секунд. Аналогично интервалу, это число с суффиксом s или m, обозначающим единицы секунд или минут, например 15s или 1m.
token
строка
Ключ маркера, определяющий набор правил ACL. Может потребоваться для регистрации служб.
ttl
строка
Проверки могут быть зарегистрированы с ttl вместо script и interval. Это означает, что служба будет проверять соединение с агентом до истечения ttl. Если этого не происходит, проверка считается неудачной. Требуется при регистрации проверки, если скрипт и интервал отсутствуют. Аналогично интервалу, это число с суффиксом s или m, обозначающим единицы секунд или минут, например 15s или 1m. Если суффикс не указан, по умолчанию используется m, например, 1 будет 1m.
validate_certs
логическое значение
    Варианты:
  • no
  • 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

Статус

  • Гарантия обратной совместимости этого модуля не предоставляется. [preview]
  • Этот модуль поддерживается сообществом Ansible. [community]

Авторы

  • 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.9/modules/consul_module.html

Spec-Zone.ru

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