Skip to content

Commit 9500dfa

Browse files
committed
tests form changine engine from local to remote db added, some fixes
- 2 new containers added in containers-deploy, that are used for migration - new engine added to engine-cleanup - engine-deploy-local-db added - test of ovirt-engine-local-to-remote-db added to test-* - get ip of engine and database from proper variables in ovirt-engine-local-to-remote-db - reset added to ovirt-engine-local-to-remote-db
1 parent 556109f commit 9500dfa

File tree

12 files changed

+165
-10
lines changed

12 files changed

+165
-10
lines changed

roles/ovirt-engine-local-to-remote-db/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ Role Variables
2424
---
2525
ovirt_engine_to_remote_db: [True, False] Change from local to remote engine database (default: True)
2626
ovirt_engine_dwh_to_remote_db: [True, False] Change from local to remote DWH database (default: False)
27+
28+
ovirt_engine_reset: [True, False] True - set back engine to local db (default: False)
29+
ovirt_engine_drop_local_db: [True, False] Drop local databases after engine is set to remote db, dump will be stored (default: True)
2730
```
2831
2932
Dependencies

roles/ovirt-engine-local-to-remote-db/tasks/main.yml

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,19 @@
11
---
22
- name: set engine variables
33
set_fact:
4-
engine_ip: "{% if hostvars[groups['engine'][0]]['ansible_default_ipv4']['address'] is defined %}{{ hostvars[groups['engine'][0]]['ansible_default_ipv4']['address'] }}{% else %}{{ groups['engine'][0] }}{% endif %}"
4+
engine_ip: "{% if hostvars[inventory_hostname]['ansible_default_ipv4']['address'] is defined %}{{ hostvars[inventory_hostname]['ansible_default_ipv4']['address'] }}{% else %}{{ inventory_hostname }}{% endif %}"
5+
delegate_to: "{{ item }}"
6+
delegate_facts: True
7+
with_items: "{{ groups['all'] }}"
8+
when: ovirt_type == "engine"
9+
10+
- name: set db variables
11+
set_fact:
12+
remote_db_ip: "{% if hostvars[inventory_hostname]['ansible_default_ipv4']['address'] is defined %}{{ hostvars[inventory_hostname]['ansible_default_ipv4']['address'] }}{% else %}{{ inventory_hostname }}{% endif %}"
13+
delegate_to: "{{ item }}"
14+
delegate_facts: True
15+
with_items: "{{ groups['all'] }}"
16+
when: ovirt_type == "remote_db"
517

618
# first dump databases on engine and get connection variables
719
- name: dump databases
@@ -11,19 +23,25 @@
1123
ovirt_engine_db_dump_dwh: "{{ ovirt_engine_dwh_to_remote_db }}"
1224
ovirt_engine_db_dump_start_services: False
1325
ovirt_engine_db_dump_local_dir: "{{ playbook_dir }}/engine_dump"
14-
when: ovirt_type == "engine"
26+
when:
27+
- ovirt_type == "engine"
28+
- ovirt_engine_reset == False
1529

1630
- name: get engine variables from file
1731
include_vars:
1832
file: "{{ playbook_dir }}/engine_dump/engine_variables.json"
1933
name: ovirt_engine_db_dump_engine_db
20-
when: ovirt_engine_to_remote_db == True
34+
when:
35+
- ovirt_engine_to_remote_db == True
36+
- ovirt_engine_reset == False
2137

2238
- name: get DWH variables from file
2339
include_vars:
2440
file: "{{ playbook_dir }}/engine_dump/dwh_variables.json"
2541
name: ovirt_engine_db_dump_dwh_db
26-
when: ovirt_engine_dwh_to_remote_db == True
42+
when:
43+
- ovirt_engine_dwh_to_remote_db == True
44+
- ovirt_engine_reset == False
2745

2846
# create databases on remote server and import data
2947
- name: create databases and import data
@@ -47,13 +65,25 @@
4765
type: host
4866
address: "{{ engine_ip }}/32"
4967
method: md5
50-
when: ovirt_type == "remote_db"
68+
when:
69+
- ovirt_type == "remote_db"
70+
- ovirt_engine_reset == False
5171

5272
# set engine from local to remote db
5373
- include: set-engine.yml
54-
when: ovirt_type == "engine"
74+
when:
75+
- ovirt_type == "engine"
76+
- ovirt_engine_reset == False
77+
78+
# reset engine back to local db
79+
- include: reset-engine.yml
80+
when:
81+
- ovirt_type == "engine"
82+
- ovirt_engine_reset == True
5583

5684
# clean
5785
- name: remove dump files from local
5886
local_action:
5987
file path={{ playbook_dir }}/engine_dump state=absent
88+
when:
89+
- ovirt_engine_reset == False
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
# to be sure services are stopped
3+
- name: stop necessary service
4+
service:
5+
name: "{{ item }}"
6+
state: stopped
7+
with_items:
8+
- ovirt-engine-dwhd
9+
- ovirt-engine
10+
11+
# change in engine configuration localhost to remote server
12+
- name: update engine settings
13+
replace:
14+
path: "{{ item }}"
15+
regexp: '^(ENGINE.*){{ remote_db_ip }}'
16+
replace: '\g<1>localhost'
17+
with_items: "{{ ovirt_engine_etc_conf_files }}"
18+
when: ovirt_engine_to_remote_db == True
19+
20+
- name: update aaa settings
21+
replace:
22+
path: "{{ item }}"
23+
regexp: "{{ remote_db_ip }}"
24+
replace: "localhost"
25+
with_items: "{{ ovirt_engine_etc_conf_files_aaa }}"
26+
when: ovirt_engine_to_remote_db == True
27+
28+
- name: update dwh settings
29+
replace:
30+
path: "{{ item }}"
31+
regexp: '^(DWH.*){{ remote_db_ip }}'
32+
replace: '\g<1>localhost'
33+
with_items: "{{ ovirt_engine_etc_conf_files }}"
34+
when: ovirt_engine_dwh_to_remote_db == True
35+
36+
# restart needed services
37+
- name: start engine and dwh service
38+
service:
39+
name: "{{ item }}"
40+
state: restarted
41+
with_items:
42+
- ovirt-engine
43+
- ovirt-engine-dwhd

roles/ovirt-engine-local-to-remote-db/tasks/set-engine.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,23 @@
1313
replace:
1414
path: "{{ item }}"
1515
regexp: '^(ENGINE.*)localhost'
16-
replace: '\g<1>{{ groups["database"][0] }}'
16+
replace: '\g<1>{{ remote_db_ip }}'
1717
with_items: "{{ ovirt_engine_etc_conf_files }}"
1818
when: ovirt_engine_to_remote_db == True
1919

2020
- name: update aaa settings
2121
replace:
2222
path: "{{ item }}"
2323
regexp: "localhost"
24-
replace: "{{ groups['database'][0] }}"
24+
replace: "{{ remote_db_ip }}"
2525
with_items: "{{ ovirt_engine_etc_conf_files_aaa }}"
2626
when: ovirt_engine_to_remote_db == True
2727

2828
- name: update dwh settings
2929
replace:
3030
path: "{{ item }}"
3131
regexp: '^(DWH.*)localhost'
32-
replace: '\g<1>{{ groups["database"][0] }}'
32+
replace: '\g<1>{{ remote_db_ip }}'
3333
with_items: "{{ ovirt_engine_etc_conf_files }}"
3434
when: ovirt_engine_dwh_to_remote_db == True
3535

tests/containers-deploy.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,13 @@
77
provision_docker_inventory_group: "{{ groups['remote-db'] }}"
88
- role: provision_docker
99
provision_docker_inventory_group: "{{ groups['engine'] }}"
10+
- role: provision_docker
11+
provision_docker_inventory_group: "{{ groups['engine-local-db'] }}"
12+
- role: provision_docker
13+
provision_docker_inventory_group: "{{ groups['remote-db-migrate'] }}"
1014

1115
- name: "Update python because of ovirt-imageio-proxy"
12-
hosts: engine
16+
hosts: engine engine-local-db
1317
tasks:
1418
- name: Update python
1519
yum:

tests/engine-cleanup.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,14 @@
1010
ovirt_engine_dwh_db_host: "{{ hostvars['remote_db_centos7']['ansible_default_ipv4']['address'] }}"
1111
roles:
1212
- role: ovirt-engine-cleanup # This role must be last
13+
- name: Run ovirt-engine-cleanup on engine with local db
14+
hosts: engine-local-db
15+
vars:
16+
ovirt_engine_type: "ovirt-engine"
17+
ovirt_engine_version: "{{ ovirt_engine_version }}"
18+
ovirt_engine_hostname: "localhost"
19+
ovirt_engine_db_host: "localhost"
20+
ovirt_engine_dwh: true
21+
ovirt_engine_dwh_db_host: "localhost"
22+
roles:
23+
- role: ovirt-engine-cleanup # This role must be last

tests/engine-deploy-local-db.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
- name: Run ovirt-ansible roles on containerized environments
3+
hosts: engine-local-db
4+
vars:
5+
ovirt_engine_type: "ovirt-engine"
6+
ovirt_engine_version: "{{ ovirt_engine_version }}"
7+
ovirt_rpm_repo: "{{ ovirt_rpm_repo }}"
8+
ovirt_engine_hostname: "localhost"
9+
ovirt_engine_organization: "example.com"
10+
ovirt_engine_admin_password: "123456"
11+
ovirt_engine_db_host: "localhost"
12+
ovirt_engine_dwh: true
13+
ovirt_engine_dwh_db_host: "localhost"
14+
ovirt_engine_configure_iso_domain: true
15+
ovirt_engine_firewall_manager: null
16+
ovirt_engine_config:
17+
-
18+
key: "VmPoolMonitorIntervalInMinutes"
19+
value: "1"
20+
version: "general"
21+
-
22+
key: "UserDefinedNetworkCustomProperties"
23+
value: "ethtool_opts=.*"
24+
version: "{{ ovirt_engine_version }}"
25+
ovirt_collect_logs_from_system: "engine"
26+
roles:
27+
- role: ovirt-common
28+
- role: ovirt-engine-install-packages
29+
- role: ovirt-engine-setup
30+
- role: ovirt-engine-config
31+
- role: ovirt-iso-uploader-conf
32+
# - role: ovirt-collect-logs # Issue #102
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
- name: Change engines local to remote db
3+
hosts: engine-local-db remote-db-migrate
4+
roles:
5+
- role: ovirt-engine-local-to-remote-db

tests/inventory

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,15 @@ engine_centos7 image="chrismeyers/centos7"
55

66
[remote-db]
77
remote_db_centos7 image="chrismeyers/centos7"
8+
9+
[engine-local-db]
10+
engine_centos7 image="chrismeyers/centos7"
11+
12+
[engine-local-db:vars]
13+
ovirt_type=engine
14+
15+
[remote-db-migrate]
16+
remote_db_centos7 image="chrismeyers/centos7"
17+
18+
[remote-db-migrate:vars]
19+
ovirt_type=remote_db

tests/test-4.0.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88
ovirt_engine_version: "4.0"
99
ovirt_rpm_repo: "http://plain.resources.ovirt.org/pub/yum-repo/ovirt-release40.rpm"
1010
- include: engine-rename.yml
11+
- include: engine-deploy-local-db.yml
12+
vars:
13+
ovirt_engine_version: "4.0"
14+
ovirt_rpm_repo: "http://plain.resources.ovirt.org/pub/yum-repo/ovirt-release40.rpm"
15+
- include: engine-local-to-remote-db.yml
1116
- include: engine-cleanup.yml
1217
vars:
1318
ovirt_engine_version: "4.0"

0 commit comments

Comments
 (0)