openstack.cloud.os_loadbalancer – Добавление/удаление балансировщика нагрузки из OpenStack Cloud
Примечание
Этот плагин входит в коллекцию openstack.cloud (версия 1.2.1).
Для его установки используйте: ansible-galaxy collection install openstack.cloud.
Для использования в книге задач укажите: openstack.cloud.os_loadbalancer.
Обзор
- Добавление или удаление балансировщика нагрузки из службы балансировщиков нагрузки OpenStack (Octavia). Обновление балансировщика нагрузки на данный момент не поддерживается.
Требования
Ниже перечислены требования, необходимые на хосте, на котором будет выполняться этот модуль.
- openstacksdk
- openstacksdk >= 0.12.0
- python >= 3.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |||
|---|---|---|---|---|---|
| api_timeout целое число | Сколько времени должна ждать транспортная сокета перед завершением выполнения запроса к API. Если этот параметр опущен, он не будет передан в библиотеку запросов. | ||||
| auth словарь | Словарь, содержащий информацию об авторизации, необходимую стратегии подключаемого модуля авторизации облака. Для подключаемого модуля password он будет содержать auth_url, username, password, project_name и любую информацию о доменах (например, user_domain_name или project_domain_name), если облако их поддерживает. Для других подключаемых модулей этот параметр должен содержать любые необходимые параметры. Этот параметр не нужен, если указано имя облака или присутствуют переменные окружения OpenStack OS_*. | ||||
| auth_type строка | Имя подключаемого модуля авторизации для использования. Если облако использует что-то помимо аутентификации по паролю, здесь должно быть указано имя подключаемого модуля, и содержимое параметра auth должно быть соответствующим образом обновлено. | ||||
| auto_public_ip логическое значение |
| Автоматически выделять и связывать с VIP адрес общедоступного IP. | |||
| availability_zone строка | Игнорируется. Наличие для обеспечения обратной совместимости | ||||
| ca_cert строка | Путь к пакету CA-сертификатов, который может использоваться для проверки запросов к API SSL. псевдонимы: cacert | ||||
| client_cert строка | Путь к клиенту сертификат для использования в рамках SSL-транзакции. псевдонимы: cert | ||||
| client_key строка | Путь к клиенту ключ для использования в рамках SSL-транзакции. псевдонимы: key | ||||
| cloud сырые данные | Именованное облако или конфигурация облака для работы. Если cloud является строкой, она ссылается на именованную конфигурацию облака, как определено в файле OpenStack clouds.yaml. Предоставляет значения по умолчанию для auth и auth_type. Этот параметр не нужен, если предоставлен auth или присутствуют переменные окружения OpenStack OS_*. Если cloud является словарем, он содержит полную конфигурацию облака, как в разделе clouds.yaml. | ||||
| delete_public_ip логическое значение |
| Когда state=absent, и этот параметр имеет значение TRUE, любой общедоступный адрес IP, связанный с VIP, будет удален вместе с балансировщиком нагрузки. | |||
| flavor строка | Конфигурация (flavor) балансировщика нагрузки. | ||||
| interface строка |
| Тип URL-адреса конечной точки для извлечения из каталога услуг. псевдонимы: endpoint_type | |||
| listeners список / элементы=словарь | Список слушателей, подключённых к балансировщику нагрузки. | ||||
| allowed_cidrs строка | Значение по умолчанию: [] | Список IPv4, IPv6 или смешанных CIDR-адресов, которым разрешён доступ к слушателю. По умолчанию разрешён весь доступ. При указании списка CIDR-адресов, значение по умолчанию меняется на запрет всего доступа. Игнорируется в неподдерживаемых версиях Octavia (менее 2.12) | |||
| name строка | Имя или идентификатор слушателя. | ||||
| pool строка | Пул, подключенный к слушателю. | ||||
| lb_algorithm строка | Значение по умолчанию: "ROUND_ROBIN" | Алгоритм балансировки нагрузки для пула. | |||
| members строка | Список членов, добавленных в пул. | ||||
| address строка | IP-адрес члена. | ||||
| name строка | Имя или идентификатор члена. | ||||
| protocol_port строка | Значение по умолчанию: 80 | Номер порта протокола для члена. | |||
| subnet строка | Имя или идентификатор подсети, из которой доступен член услуги. | ||||
| name строка | Имя или идентификатор пула. | ||||
| protocol строка | Значение по умолчанию: "HTTP" | Протокол для пула. | |||
| protocol строка | Значение по умолчанию: "HTTP" | Протокол для слушателя. | |||
| protocol_port строка | Значение по умолчанию: 80 | Номер порта протокола для слушателя. | |||
| name строка / обязательно | Имя балансировщика нагрузки. | ||||
| public_ip_address строка | Адрес общедоступного IP, связанный с VIP. | ||||
| public_network строка | Имя или идентификатор внешней сети Neutron. | ||||
| region_name строка | Имя региона. | ||||
| state строка |
| Ресурс должен быть present или absent. | |||
| timeout целое число | Значение по умолчанию: 180 | Время ожидания модулем. | |||
| validate_certs логическое значение |
| Требовать проверку SSL API-запросов. До Ansible 2.3, по умолчанию было yes.псевдонимы: verify | |||
| vip_address строка | IP-адрес виртуального IP балансировщика нагрузки. | ||||
| vip_network строка | Имя или идентификатор сети для виртуального IP балансировщика нагрузки. Один из параметров vip_network, vip_subnet или vip_port должен быть указан для создания. | ||||
| vip_port строка | Имя или идентификатор порта виртуального IP балансировщика нагрузки. Один из параметров vip_network, vip_subnet или vip_port должен быть указан для создания. | ||||
| vip_subnet строка | Имя или идентификатор подсети для виртуального IP балансировщика нагрузки. Один из параметров vip_network, vip_subnet или vip_port должен быть указан для создания. | ||||
| wait логическое значение |
| Должен ли модуль ожидать создания или удаления балансировщика нагрузки. | |||
Примечания
Примечание
- Вместо явных значений можно использовать стандартные переменные окружения OpenStack, такие как
OS_USERNAME. - Информация об авторизации управляется openstacksdk, что означает, что значения могут поступать из файла конфигурации yaml в /etc/ansible/openstack.yaml, /etc/openstack/clouds.yaml или ~/.config/openstack/clouds.yaml, а затем из стандартных переменных окружения, а затем, наконец, из явных параметров в задачах. Более подробную информацию можно найти по адресу https://docs.openstack.org/openstacksdk/
Примеры
# Create a load balancer by specifying the VIP subnet.
- openstack.cloud.loadbalancer:
auth:
auth_url: https://identity.example.com
username: admin
password: passme
project_name: admin
state: present
name: my_lb
vip_subnet: my_subnet
timeout: 150
# Create a load balancer by specifying the VIP network and the IP address.
- openstack.cloud.loadbalancer:
auth:
auth_url: https://identity.example.com
username: admin
password: passme
project_name: admin
state: present
name: my_lb
vip_network: my_network
vip_address: 192.168.0.11
# Create a load balancer together with its sub-resources in the 'all in one'
# way. A public IP address is also allocated to the load balancer VIP.
- openstack.cloud.loadbalancer:
auth:
auth_url: https://identity.example.com
username: admin
password: passme
project_name: admin
name: lingxian_test
state: present
vip_subnet: kong_subnet
auto_public_ip: yes
public_network: public
listeners:
- name: lingxian_80
protocol: TCP
protocol_port: 80
pool:
name: lingxian_80_pool
protocol: TCP
members:
- name: mywebserver1
address: 192.168.2.81
protocol_port: 80
subnet: webserver_subnet
- name: lingxian_8080
protocol: TCP
protocol_port: 8080
pool:
name: lingxian_8080-pool
protocol: TCP
members:
- name: mywebserver2
address: 192.168.2.82
protocol_port: 8080
wait: yes
timeout: 600
# Delete a load balancer(and all its related resources)
- openstack.cloud.loadbalancer:
auth:
auth_url: https://identity.example.com
username: admin
password: passme
project_name: admin
state: absent
name: my_lb
# Delete a load balancer(and all its related resources) together with the
# public IP address(if any) attached to it.
- openstack.cloud.loadbalancer:
auth:
auth_url: https://identity.example.com
username: admin
password: passme
project_name: admin
state: absent
name: my_lb
delete_public_ip: yes
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание | |
|---|---|---|---|
| id строка | При успехе, когда state=present
| UUID балансировщика нагрузки. Пример: 39007a7e-ee4f-4d13-8283-b4da2e037c69 | |
| loadbalancer сложное | При успехе, когда state=present
| Словарь, описывающий балансировщик нагрузки. | |
| id строка | успех | Уникальный UUID. Пример: 39007a7e-ee4f-4d13-8283-b4da2e037c69 | |
| is_admin_state_up булево | успех | Административное состояние балансировщика нагрузки. Пример: True | |
| listeners список / элементы=строка | успех | Идентификаторы связанных слушателей, если таковые имеются. Пример: [{'id': '7aa1b380-beec-459c-a8a7-3a4fb6d30645'}, {'id': '692d06b8-c4f8-4bdb-b2a3-5a263cc23ba6'}] | |
| name строка | успех | Имя, присвоенное балансировщику нагрузки. Пример: lingxian_test | |
| operating_status строка | успех | Рабочее состояние балансировщика нагрузки. Пример: ONLINE | |
| pools список / элементы=строка | успех | Идентификаторы связанных пулов, если таковые имеются. Пример: [{'id': '27b78d92-cee1-4646-b831-e3b90a7fa714'}, {'id': 'befc1fb5-1992-4697-bdb9-eee330989344'}] | |
| provisioning_status строка | успех | Статус подготовки балансировщика нагрузки. Пример: ACTIVE | |
| public_vip_address строка | успех | Общедоступный адрес балансировщика нагрузки. Пример: 10.17.8.254 | |
| vip_address строка | успех | Виртуальный IP-адрес балансировщика нагрузки. Пример: 192.168.2.88 | |
| vip_network_id строка | успех | Идентификатор сети, к которой относится виртуальный порт IP-адреса балансировщика. Пример: f171db43-56fd-41cf-82d7-4e91d741762e | |
| vip_port_id строка | успех | Идентификатор виртуального порта IP-адреса балансировщика. Пример: 2061395c-1c01-47ab-b925-c91b93df9c1d | |
| vip_subnet_id строка | успех | Идентификатор подсети, к которой относится виртуальный порт IP-адреса балансировщика. Пример: c53e3c70-9d62-409a-9f71-db148e7aa853 | |
Авторы
- OpenStack Ansible SIG
© 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/openstack/cloud/os_loadbalancer_module.html