ansible-role-os-networks

ЗАМЕТКА:

Этот репозиторий больше не поддерживается - роль была перенесена в коллекцию Ansible сейчас ➡️ https://github.com/stackhpc/ansible-collection-openstack

Сети OpenStack

Эту роль можно использовать для регистрации сетей, подсетей и маршрутизаторов в Neutron, используя модули os_network, os_subnet и os_router.

Требования

API OpenStack Neutron должен быть доступен с целевого узла.

Переменные роли

os_networks_venv - это путь к каталогу, в котором будет создан виртуальный окружение.

os_networks_auth_type - это тип аутентификации, совместимый с аргументом auth_type модулей Ansible os_*.

os_networks_auth - это словарь, содержащий информацию для аутентификации, совместимую с аргументом auth модулей Ansible os_*.

os_networks_cacert - это необязательный путь к пакету сертификатов CA.

os_networks_cloud - это необязательное имя облака в clouds.yaml.

os_networks_interface - это тип URL конечной точки для получения из каталога услуг. Может быть одним из public, admin или internal.

os_networks - это список сетей для регистрации. Каждый элемент должен быть ссылкой, содержащей следующие элементы:

  • name: Имя сети Neutron.
  • provider_network_type: Тип поставщика сети Neutron.
  • provider_physical_network: Физическая сеть поставщика для сети Neutron.
  • provider_segmentation_id: ID сегментации поставщика для сети Neutron.
  • shared: Является ли сеть Neutron общей.
  • external: Является ли сеть Neutron внешней.
  • project: Необязательное создание этой сети для проекта, отличного от аутентифицирующего проекта.
  • state: Необязательное состояние сети, по умолчанию - present.
  • mtu: Значение максимального размера передачи (MTU) для избежания фрагментации. Сеть будет использовать значения по умолчанию OpenStack, если этот параметр не указан. Требует ansible >= 2.9.
  • port_security_enabled: Включена ли безопасность портов в сети или нет. Сеть будет использовать значения по умолчанию OpenStack, если этот параметр не указан. Логическое значение, true для включения, false в противном случае. Требует ansible >= 2.8.
  • dns_domain: Значение домена DNS для установки. Сеть будет использовать значения по умолчанию OpenStack, если этот параметр не указан. Требует ansible >= 2.9.
  • subnets: Список подсетей для создания в этой сети. Каждый элемент должен быть ссылкой, содержащей следующие элементы:
    • name: Имя подсети Neutron.
    • cidr: Представление подсети Neutron в формате CIDR.
    • dns_nameservers: Список DNS-серверов для подсети.
    • extra_specs: Необязательный словарь с дополнительными парами ключ/значение, переданными в API. Требует ansible >= 2.7.
    • gateway_ip: IP-адрес шлюза подсети Neutron.
    • no_gateway_ip: Необязательное логическое значение, указывающее, следует ли опустить IP-шлюз. Если не установлено, это будет true, если gateway_ip указан, и false в противном случае.
    • enable_dhcp: Включить ли DHCP на подсети.
    • allocation_pool_start: Начало пула распределения IP подсети Neutron.
    • allocation_pool_end: Конец пула распределения IP подсети Neutron.
    • host_routes: Список классов маршрутов для поставки хостам, подключенным к этой подсети. Должен быть представлен список словарей с destination (целевой сеть в кодировке CIDR) и nexthop (IP-адрес маршрутизатора в этой подсети).
    • ip_version: Необязательная версия IP для подсети.
    • ipv6_address_mode: Необязательный режим адресации IPv6 для подсети.
    • ipv6_ra_mode: Необязательный режим объявления маршрутизатора IPv6 для подсети.
    • use_default_subnetpool: Необязательное логическое значение, следует ли использовать пул подсетей по умолчанию для версии IP.
    • project: Необязательное создание этой подсети для проекта, отличного от аутентифицирующего проекта.
    • state: Необязательное состояние подсети, по умолчанию - present.

os_networks_routers - это список маршрутизаторов для создания. Каждый элемент должен быть ссылкой, содержащей следующие элементы:

  • name: Имя маршрутизатора Neutron.
  • interfaces: Список имен подсетей для подключения к внутреннему интерфейсу маршрутизатора.
  • network: Уникальное имя или ID внешней шлюзовой сети.
  • external_fixed_ips: Необязательный список параметров IP-адреса для внешней шлюзовой сети. Каждый элемент - это словарь с именем подсети или ID подсети и IP-адресом, который необходимо назначить на подсети.
  • project: Необязательное создание этого маршрутизатора для проекта, отличного от аутентифицирующего проекта.
  • state: Необязательное состояние маршрутизатора, по умолчанию - present.

os_networks_security_groups: Список групп безопасности для создания. Каждый элемент должен быть ссылкой, содержащей следующие элементы:

  • name: Имя группы безопасности.
  • description: Необязательное описание группы безопасности.
  • project: Необязательный проект, в котором нужно зарегистрировать группу безопасности.
  • state: Необязательное состояние группы безопасности, по умолчанию - present.
  • rules: Необязательный список правил для добавления в группу безопасности. Каждый элемент должен быть ссылкой, содержащей следующие элементы:
    • direction: Необязательное направление правила, по умолчанию - ingress.
    • ethertype: Необязательный тип Ethertype правила, по умолчанию - IPv4.
    • port_range_min: Необязательный начальный порт.
    • port_range_max: Необязательный конечный порт.
    • protocol: Необязательный IP-протокол правила.
    • remote_group: Необязательное имя или ID группы безопасности для ссылки.
    • remote_ip_prefix: Необязательный префикс IP-адреса источника в записи CIDR.
    • state: Необязательное состояние правила, по умолчанию - present.

os_networks_rbac - это список ограничений доступа на основе ролей для сетей и проектов с именами. Смотрите административное руководство по RBAC Neutron для деталей. Каждая запись в списке - это словарь с следующими элементами:

  • network: Имя сети для совместного использования. Эта сеть обычно принадлежит проекту admin и не является shared или external.
  • access: Режим совместного использования с целевыми проектами. Допустимые варианты: access_as_external и access_as_shared.
  • projects: Список имен проектов для совместного использования названной сети заданным способом.

ПРИМЕЧАНИЕ: Назначения RBAC нельзя изменить после их создания.

Зависимости

Эта роль зависит от роли stackhpc.os_openstacksdk.

Пример плейбука

Следующий плейбук регистрирует сеть Neutron, подсеть и маршрутизатор. Определен классный статический маршрут для доступа к другой подсети через другой шлюз.

---
- name: Убедиться, что сети, подсети и маршрутизаторы зарегистрированы
  hosts: neutron-api
  roles:
    - role: os-networks
      os_networks_venv: "~/os-networks-venv"
      os_networks_auth_type: "password"
      os_networks_auth:
        project_name: <keystone project>
        username: <keystone user>
        password: <keystone password>
        auth_url: <keystone auth URL>
      os_networks:
        - name: net1
          provider_network_type: vlan
          provider_physical_network: physnet1
          provider_segmentation_id: 1234
          shared: true
          external: false
          subnets:
            - name: subnet1
              cidr: 10.0.0.0/24
              gateway_ip: 10.0.0.1
              allocation_pool_start: 10.0.0.2
              allocation_pool_end: 10.0.0.254
              host_routes:
                - destination: 10.0.1.0/24
                  nexthop: 10.0.0.254
      os_networks_routers:
        - name: router1
          interfaces:
            - subnet1
          network: net1
      os_networks_security_groups:
        - name: secgroup1
          rules:
            - protocol: icmp

Информация об авторе

О проекте

Role to register networks, subnets and routers in OpenStack

Установить
ansible-galaxy install stackhpc/ansible-role-os-networks
Лицензия
apache-2.0
Загрузки
157474
Владелец
StackHPC develops OpenStack capabilities for research computing use cases. Through extensive experience, we understand HPC and cloud.