openstack.cloud.loadbalancer – Добавление/удаление балансировщика нагрузки из облака OpenStack
Примечание
Этот плагин входит в коллекцию openstack.cloud (версия 1.2.1).
Для его установки используйте: ansible-galaxy collection install openstack.cloud.
Для использования в playbook укажите: openstack.cloud.loadbalancer.
Краткое описание
- Добавить или удалить балансировщик нагрузки из сервиса балансировки нагрузки OpenStack (Octavia). Обновление балансировщика нагрузки пока не поддерживается.
Требования
Ниже приведены требования к хосту, на котором будет выполняться этот модуль.
- openstacksdk
- openstacksdk >= 0.12.0
- python >= 3.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |||
|---|---|---|---|---|---|
| api_timeout целое число | Сколько времени должно ждать сокетовское подключение перед таймаутом API-запросов. Если этот параметр опущен, ничего не будет передано в библиотеку requests. | ||||
| auth словарь | Словарь, содержащий информацию об авторизации, необходимую стратегии подключаемых модулей облака. Для стандартного подключаемого модуля password, он будет содержать auth_url, username, password, project_name и любую информацию о доменах (например, user_domain_name или project_domain_name), если облако их поддерживает. Для других подключаемых модулей этот параметр должен содержать параметры, необходимые для данного подключаемого модуля. Этот параметр не нужен, если задан параметр cloud или установлены переменные окружения OpenStack OS_*. | ||||
| auth_type строка | Имя подключаемого модуля авторизации, который нужно использовать. Если облако использует что-то кроме аутентификации по паролю, имя подключаемого модуля должно быть указано здесь, а содержимое параметра auth должно быть соответствующим образом обновлено. | ||||
| auto_public_ip булево |
| Автоматически выделять общедоступный IP-адрес и ассоциировать его с VIP. | |||
| 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 строка | Тип балансировщика нагрузки. | ||||
| interface строка |
| Тип URL конечной точки для получения из каталога услуг. псевдонимы: endpoint_type | |||
| listeners список / элементы=словарь | Список слушателей, подключенных к балансировщику. | ||||
| allowed_cidrs строка | Значение по умолчанию: [] | Список IPv4, IPv6 или смешанных CIDR, которым разрешен доступ к слушателю. По умолчанию разрешен доступ всем. При указании списка CIDR, по умолчанию доступ всем запрещён. Игнорируется в недопустимых версиях Octavia (меньше 2.12) | |||
| name строка | Имя или ID слушателя. | ||||
| pool строка | Пул, подключённый к слушателю. | ||||
| lb_algorithm строка | Значение по умолчанию: "ROUND_ROBIN" | Алгоритм балансировки нагрузки для пула. | |||
| members строка | Список членов, добавленных в пул. | ||||
| address строка | IP-адрес члена. | ||||
| name строка | Имя или ID члена. | ||||
| protocol_port строка | Значение по умолчанию: 80 | Порт протокола для члена. | |||
| subnet строка | Имя или ID подсети, из которой доступен сервис члена. | ||||
| name строка | Имя или ID пула. | ||||
| protocol строка | Значение по умолчанию: "HTTP" | Протокол для пула. | |||
| protocol строка | Значение по умолчанию: "HTTP" | Протокол для слушателя. | |||
| protocol_port строка | Значение по умолчанию: 80 | Порт протокола для слушателя. | |||
| name строка / обязательный | Имя балансировщика. | ||||
| public_ip_address строка | Общедоступный IP-адрес, связанный с VIP. | ||||
| public_network строка | Имя или ID внешней сети Neutron. | ||||
| region_name строка | Имя региона. | ||||
| state строка |
| Ресурс должен быть присутствующим или отсутствующим. | |||
| timeout целое число | Значение по умолчанию: 180 | Время ожидания модулем. | |||
| validate_certs булево |
| Нужно ли проверять запросы API с использованием SSL. До Ansible 2.3 по умолчанию было yes.псевдонимы: verify | |||
| vip_address строка | IP-адрес виртуального IP-адреса балансировщика. | ||||
| vip_network строка | Имя или ID сети для виртуального IP-адреса балансировщика. Один из параметров vip_network, vip_subnet или vip_port должен быть указан для создания. | ||||
| vip_port строка | Имя или ID порта виртуального IP-адреса балансировщика. Один из параметров vip_network, vip_subnet или vip_port должен быть указан для создания. | ||||
| vip_subnet строка | Имя или ID подсети для виртуального 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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/openstack/cloud/loadbalancer_module.html