Skip to content

Commit f6745fe

Browse files
authored
Merge pull request #8 from merizrizal/refactoring
refactor: Now configure_service is converted to roles in common
2 parents c3292ed + 7f309b2 commit f6745fe

File tree

18 files changed

+176
-376
lines changed

18 files changed

+176
-376
lines changed

ansible/deploy_openstack/inventories/local/group_vars/controller/secret.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ os_glance_password: vagrant
66
placement_password: vagrant
77
nova_password: vagrant
88
neutron_password: vagrant
9+
octavia_password: vagrant
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
- name: Deploy and setup OpenStack Octavia on controller node
3+
hosts: controller
4+
become: true
5+
vars_files:
6+
- "{{ root_dir ~ '/inventories/' ~ target_env ~ '/nodes.yml' }}"
7+
roles:
8+
- role: octavia

ansible/deploy_openstack/roles/cinder_controller/tasks/configure_service.yml

Lines changed: 0 additions & 75 deletions
This file was deleted.

ansible/deploy_openstack/roles/cinder_controller/tasks/main.yml

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,20 @@
1515
- cinder-scheduler
1616
state: present
1717

18-
- name: Configure service
19-
ansible.builtin.include_tasks:
20-
file: configure_service.yml
18+
- name: Configure Cinder service
19+
ansible.builtin.include_role:
20+
name: common
21+
tasks_from: configure_service
22+
vars:
23+
component: cinder
24+
os_component_password: "{{ os_cinder_password }}"
25+
user_roles:
26+
- admin
27+
- service
28+
service_name: volumev3
29+
service_description: OpenStack Block Storage
30+
endpoint_url: http://{{ controller01_host_addr }}:8776/v3
31+
endpoint_url_suffix: /%\(project_id\)s
2132

2233
- name: Set facts
2334
ansible.builtin.set_fact:
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
---
2+
- name: Create user and its roles
3+
ansible.builtin.include_tasks:
4+
file: create_user_and_roles.yml
5+
vars:
6+
os_component:
7+
name: "{{ component }}"
8+
password: "{{ os_component_password }}"
9+
user_role_list: "{{ user_roles }}"
10+
11+
- name: Create service
12+
ansible.builtin.include_tasks:
13+
file: create_service.yml
14+
vars:
15+
os_component_name: "{{ component }}"
16+
service:
17+
name: "{{ service_name }}"
18+
description: "{{ service_description }}"
19+
20+
- name: Check endpoint_url_suffix and append to endpoint_url when defined
21+
ansible.builtin.set_fact:
22+
service_endpoint_url: "{{ endpoint_url ~ (endpoint_url_suffix | default('')) }}"
23+
24+
- name: Check public component service API endpoints
25+
ansible.builtin.shell:
26+
cmd: |
27+
set -o pipefail #
28+
openstack endpoint list | grep -E 'RegionOne.*.{{ component }}.*.{{ service_name }}.*.public.*.{{ endpoint_url }}' || true
29+
executable: /bin/bash
30+
register: public_endpoint
31+
changed_when: false
32+
33+
- name: Create public component service API endpoints
34+
ansible.builtin.command:
35+
cmd: openstack endpoint create --region RegionOne {{ service_name }} public {{ service_endpoint_url }}
36+
when: public_endpoint.stdout is defined and public_endpoint.stdout == ""
37+
changed_when: true
38+
39+
- name: Check internal component service API endpoints
40+
ansible.builtin.shell:
41+
cmd: |
42+
set -o pipefail #
43+
openstack endpoint list | grep -E 'RegionOne.*.{{ component }}.*.{{ service_name }}.*.internal.*.{{ endpoint_url }}' || true
44+
executable: /bin/bash
45+
register: internal_endpoint
46+
changed_when: false
47+
48+
- name: Create internal component service API endpoints
49+
ansible.builtin.command:
50+
cmd: openstack endpoint create --region RegionOne {{ service_name }} internal {{ service_endpoint_url }}
51+
when: internal_endpoint.stdout is defined and internal_endpoint.stdout == ""
52+
changed_when: true
53+
54+
- name: Check admin component service API endpoints
55+
ansible.builtin.shell:
56+
cmd: |
57+
set -o pipefail #
58+
openstack endpoint list | grep -E 'RegionOne.*.{{ component }}.*.{{ service_name }}.*.admin.*.{{ endpoint_url }}' || true
59+
executable: /bin/bash
60+
register: admin_endpoint
61+
changed_when: false
62+
63+
- name: Create admin component service API endpoints
64+
ansible.builtin.command:
65+
cmd: openstack endpoint create --region RegionOne {{ service_name }} admin {{ service_endpoint_url }}
66+
when: admin_endpoint.stdout is defined and admin_endpoint.stdout == ""
67+
changed_when: true
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
- name: Check service entity for the component
3+
ansible.builtin.shell:
4+
cmd: openstack service show {{ service.name }} || true
5+
executable: /bin/bash
6+
register: service_component
7+
changed_when: false
8+
9+
- name: Create the component service entity
10+
ansible.builtin.command:
11+
cmd: openstack service create --name {{ os_component_name }} --description "{{ service.description }}" {{ service.name }}
12+
when: service_component.stderr is defined and "No service with a type, name or ID" in service_component.stderr
13+
changed_when: true
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
- name: Create the component user
3+
ansible.builtin.command:
4+
cmd: openstack user create --domain default --password '{{ os_component.password }}' {{ os_component.name }}
5+
register: create_component_user
6+
changed_when: create_component_user.stdout is defined and "password_expires_at" in create_component_user.stdout
7+
failed_when: create_component_user.rc != 0 and "ConflictException" not in create_component_user.stderr
8+
9+
- name: Add the certain role to the component user and service project
10+
ansible.builtin.command:
11+
cmd: openstack role add --project service --user {{ os_component.name }} {{ item }}
12+
changed_when: false
13+
loop: "{{ user_role_list }}"

ansible/deploy_openstack/roles/glance/tasks/configure_service.yml

Lines changed: 0 additions & 70 deletions
This file was deleted.

ansible/deploy_openstack/roles/glance/tasks/main.yml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,18 @@
88
db_user: glance
99
db_password: "{{ glance_password }}"
1010

11-
- name: Configure service
12-
ansible.builtin.include_tasks:
13-
file: configure_service.yml
11+
- name: Configure Glance service
12+
ansible.builtin.include_role:
13+
name: common
14+
tasks_from: configure_service
15+
vars:
16+
component: glance
17+
os_component_password: "{{ os_glance_password }}"
18+
user_roles:
19+
- admin
20+
service_name: image
21+
service_description: OpenStack Image
22+
endpoint_url: http://{{ controller01_host_addr }}:9292
1423

1524
- name: Install Glance package
1625
ansible.builtin.package:

ansible/deploy_openstack/roles/neutron_controller/tasks/configure_service.yml

Lines changed: 0 additions & 70 deletions
This file was deleted.

0 commit comments

Comments
 (0)