mirror of
https://opendev.org/openstack/ansible-collections-openstack.git
synced 2026-03-27 05:53:02 +00:00
128 lines
3.2 KiB
YAML
128 lines
3.2 KiB
YAML
---
|
|
- name: Create the first project
|
|
openstack.cloud.project:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: "shared_net_test_1"
|
|
description: "Project that contains the subnet to be shared"
|
|
domain: default
|
|
is_enabled: True
|
|
register: project_1
|
|
|
|
- name: Create the network to be shared
|
|
openstack.cloud.network:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: "my_shared_network"
|
|
project: "shared_net_test_1"
|
|
external: False
|
|
provider_network_type: vxlan
|
|
register: shared_network
|
|
|
|
- name: Create ipv4 subnet
|
|
openstack.cloud.subnet:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
network_name: "{{ shared_network.id }}"
|
|
name: "my_shared_subnet"
|
|
project: "shared_net_test_1"
|
|
ip_version: "4"
|
|
cidr: "10.0.0.0/24"
|
|
gateway_ip: "10.0.0.1"
|
|
register: shared_subnet
|
|
|
|
- name: Create the second project
|
|
openstack.cloud.project:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: "shared_net_test_2"
|
|
description: "Project that contains the subnet to be shared"
|
|
domain: default
|
|
is_enabled: True
|
|
register: project_2
|
|
|
|
- name: Share the network with the second project
|
|
openstack.cloud.neutron_rbac_policy:
|
|
cloud: "{{ cloud }}"
|
|
action: 'access_as_shared'
|
|
object_id: "{{ shared_network.id }}"
|
|
object_type: 'network'
|
|
target_project_id: "{{ project_2.project.id }}"
|
|
project_id: "{{ project_1.project.id }}"
|
|
register: rbac_rule
|
|
|
|
- name: Create router with interface in shared network
|
|
openstack.cloud.router:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: "shared_net_test2_router"
|
|
project: "shared_net_test_2"
|
|
interfaces:
|
|
- net: "{{ shared_network.id }}"
|
|
portip: "10.0.0.42"
|
|
subnet: "{{ shared_subnet.id }}"
|
|
register: router
|
|
|
|
- name: Gather routers info
|
|
openstack.cloud.routers_info:
|
|
cloud: "{{ cloud }}"
|
|
name: "shared_net_test2_router"
|
|
register: routers
|
|
|
|
- name: List ports of first router
|
|
openstack.cloud.port_info:
|
|
cloud: "{{ cloud }}"
|
|
filters:
|
|
device_id: "{{ routers.routers.0.id }}"
|
|
register: ports
|
|
|
|
- name: Verify routers info
|
|
assert:
|
|
that:
|
|
- routers.routers.0.id == router.router.id
|
|
- ports.ports
|
|
|rejectattr('device_owner', 'equalto', 'network:router_gateway')
|
|
|sum(attribute='fixed_ips', start=[])
|
|
|map(attribute='ip_address')
|
|
|sort|list == ["10.0.0.42"]
|
|
|
|
- name: delete router
|
|
openstack.cloud.router:
|
|
cloud: "{{ cloud }}"
|
|
state: absent
|
|
name: "shared_net_test2_router"
|
|
project: "shared_net_test_2"
|
|
|
|
- name: delete rbac rule
|
|
openstack.cloud.neutron_rbac_policy:
|
|
cloud: "{{ cloud }}"
|
|
policy_id: "{{ rbac_rule.policy.id }}"
|
|
state: absent
|
|
|
|
- name: delete subnet
|
|
openstack.cloud.subnet:
|
|
cloud: "{{ cloud }}"
|
|
state: absent
|
|
network_name: "{{ shared_network.id }}"
|
|
name: "my_shared_subnet"
|
|
project: "shared_net_test_1"
|
|
|
|
- name: delete network
|
|
openstack.cloud.network:
|
|
cloud: "{{ cloud }}"
|
|
state: absent
|
|
name: "my_shared_network"
|
|
project: "shared_net_test_1"
|
|
|
|
- name: delete project 2
|
|
openstack.cloud.project:
|
|
cloud: "{{ cloud }}"
|
|
state: absent
|
|
name: "shared_net_test_2"
|
|
|
|
- name: delete project 1
|
|
openstack.cloud.project:
|
|
cloud: "{{ cloud }}"
|
|
state: absent
|
|
name: "shared_net_test_1"
|