aboutsummaryrefslogtreecommitdiff
path: root/roles/test-ovn-vpnaas/tasks/setup_site.yml
blob: f683dc5967a3531e2f5eae104f49dcb5b3dc51a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
---
- name: VPNaaS | Create network | {{ site_name }}
  ansible.builtin.shell: |
    {{ ovn_vpnaas_activate }}
    openstack network create "net_{{ site_name }}"
  environment: "{{ os_auth_env }}"
  register: net_create
  failed_when:
    - net_create.rc != 0
    - "'already exists' not in net_create.stderr"
  retries: "{{ ovn_vpnaas_consistency_retries }}"
  delay: "{{ ovn_vpnaas_consistency_delay }}"
  until: net_create.rc == 0 or 'already exists' in net_create.stderr
  changed_when: false

- name: VPNaaS | Create subnet | {{ site_name }}
  ansible.builtin.shell: |
    {{ ovn_vpnaas_activate }}
    openstack subnet create --network "net_{{ site_name }}" --subnet-range "{{ site_cidr }}" "subnet_{{ site_name }}"
  environment: "{{ os_auth_env }}"
  register: subnet_create
  failed_when:
    - subnet_create.rc != 0
    - "'already exists' not in subnet_create.stderr"
  retries: "{{ ovn_vpnaas_consistency_retries }}"
  delay: "{{ ovn_vpnaas_consistency_delay }}"
  until: subnet_create.rc == 0 or 'already exists' in subnet_create.stderr
  changed_when: false

- name: VPNaaS | Create router | {{ site_name }}
  ansible.builtin.shell: |
    {{ ovn_vpnaas_activate }}
    openstack router create --external-gateway public1 "router_{{ site_name }}"
  environment: "{{ os_auth_env }}"
  failed_when: false
  changed_when: false

- name: VPNaaS | Debug | List all routers
  ansible.builtin.shell: |
    {{ ovn_vpnaas_activate }}
    openstack router list
  environment: "{{ os_auth_env }}"
  register: all_routers_debug
  changed_when: false

- name: VPNaaS | Debug | Show router list output
  ansible.builtin.debug:
    var: all_routers_debug.stdout_lines

- name: VPNaaS | Get router ID | {{ site_name }}
  ansible.builtin.shell: |
    set -o pipefail
    {{ ovn_vpnaas_activate }}
    openstack router list --name "router_{{ site_name }}" -f value -c ID | head -n 1
  args:
    executable: /bin/bash
  register: current_router_id
  until: current_router_id.stdout != ""
  retries: 5
  delay: 10
  environment: "{{ os_auth_env }}"
  changed_when: false

- name: VPNaaS | Attach subnet to router | {{ site_name }}
  ansible.builtin.shell: |
    {{ ovn_vpnaas_activate }}
    openstack router add subnet "{{ current_router_id.stdout.strip() }}" "subnet_{{ site_name }}"
  environment: "{{ os_auth_env }}"
  register: router_add_result
  failed_when:
    - router_add_result.rc != 0
    - "'already has an interface' not in router_add_result.stderr"
  retries: "{{ ovn_vpnaas_consistency_retries }}"
  delay: "{{ ovn_vpnaas_consistency_delay }}"
  until: router_add_result.rc == 0 or 'already has an interface' in router_add_result.stderr
  changed_when: false