Spec-Zone.ru › Ansible 2.10

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

Примечание

Этот плагин входит в коллекцию community.general (версия 1.3.2).

Для его установки используйте: ansible-galaxy collection install community.general.

Чтобы использовать его в книге задач, укажите: community.general.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
список / элементы=строка
Теги, которые будут добавлены к регистрации службы.
tcp
строка
добавлен в 1.3.0 community.general
Проверки могут быть зарегистрированы с TCP-портом. Это означает, что consul проверит, является ли попытка подключения к этому порту успешной (т. е. порт в настоящее время принимает подключения). Формат host:port, например localhost:80. *interval* также должен быть указан с этим параметром.
timeout
строка
Настройка времени ожидания проверки HTTP. Значение по умолчанию consul — 10 секунд. Аналогично интервалу, это число с суффиксом s или m для обозначения единиц секунд или минут, например 15s или 1m.
token
строка
Ключ токена, определяющий набор правил ACL. Может потребоваться для регистрации служб.
ttl
строка
Проверки могут быть зарегистрированы с ttl вместо *script* и *interval*. Это означает, что служба будет проверять соединение с агентом до истечения ttl. Если этого не происходит, проверка считается неудачной. Требуется при регистрации проверки и отсутствии *script* и *interval*. Аналогично интервалу, это число с суффиксом s или m для обозначения единиц секунд или минут, например 15s или 1m. Если суффикс не указан, m будет использоваться по умолчанию, например, 1 будет 1m.
validate_certs
логическое значение
    Варианты:
  • no
  • yes ←
Требуется ли проверка TLS-сертификата агента consul

Примеры

- 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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/general/consul_module.html

Spec-Zone.ru

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