Spec-Zone.ru › Ansible 2.6

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

Новое в версии 2.0.

  • Обзор
    • Требования
  • Параметры
  • Примеры
  • Состояние
  • Техническое обслуживание
    • Автор

Обзор

  • Регистрирует сервисы и проверяет наличие агента в кластере consul. Сервис — это некоторый процесс, выполняющийся на узле-агенте, который должен быть рекламируемым механизмом обнаружения consul. Он может по желанию предоставить определение проверки, периодический тест сервиса для уведомления кластера consul о состоянии сервиса.
  • Проверки также могут быть зарегистрированы на узел, например, использование дискового пространства или ЦП, и уведомлять о состоянии всего узла в кластер. Проверки уровня сервиса не требуют имени или идентификатора проверки, так как они выводятся Consul из имени и идентификатора сервиса, соответственно, добавив «service:». Проверки уровня узла требуют имени проверки и необязательно идентификатора проверки.
  • В настоящее время нет полного способа получения метаданных сценария, интервала или 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
Порт, на котором работает сервис. Можно дополнительно указать для регистрации сервиса, т.е. если указано имя или идентификатор сервиса
state
обязательно
    Варианты:
  • present
  • absent
регистрация или отмена регистрации сервиса 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
bool

(добавлено в 2.1)
    Варианты:
  • no
  • да ←
Указывает, нужно ли проверять 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, что означает, что его интерфейс не гарантирует обратной совместимости.

Техническое обслуживание

Этот модуль помечен как community, что означает, что он поддерживается сообществом Ansible. Дополнительную информацию см. на странице Техническое обслуживание и поддержка модулей.

Список других модулей, поддерживаемых сообществом 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.6/modules/consul_module.html

Spec-Zone.ru

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