Reconfigure cinder service
Change-Id: I8d207d1782acfebf5c07de39df3257fd9bdbbada Partially-implements: bp kolla-reconfig
This commit is contained in:
parent
2e7b6eeac0
commit
e878da0412
79
ansible/roles/cinder/tasks/do_reconfigure.yml
Normal file
79
ansible/roles/cinder/tasks/do_reconfigure.yml
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
---
|
||||||
|
- name: Ensuring the containers up
|
||||||
|
kolla_docker:
|
||||||
|
name: "{{ item.name }}"
|
||||||
|
action: "get_container_state"
|
||||||
|
register: container_state
|
||||||
|
failed_when: container_state.Running == false
|
||||||
|
when: inventory_hostname in groups[item.group]
|
||||||
|
with_items:
|
||||||
|
- { name: cinder_api, group: cinder-api }
|
||||||
|
- { name: cinder_scheduler, group: cinder-scheduler }
|
||||||
|
- { name: cinder_volume, group: cinder-volume }
|
||||||
|
- { name: cinder_backup, group: cinder-backup }
|
||||||
|
|
||||||
|
- include: config.yml
|
||||||
|
|
||||||
|
- name: Check the configs
|
||||||
|
command: docker exec {{ item.name }} /usr/local/bin/kolla_set_configs --check
|
||||||
|
changed_when: false
|
||||||
|
failed_when: false
|
||||||
|
register: check_results
|
||||||
|
when: inventory_hostname in groups[item.group]
|
||||||
|
with_items:
|
||||||
|
- { name: cinder_api, group: cinder-api }
|
||||||
|
- { name: cinder_scheduler, group: cinder-scheduler }
|
||||||
|
- { name: cinder_volume, group: cinder-volume }
|
||||||
|
- { name: cinder_backup, group: cinder-backup }
|
||||||
|
|
||||||
|
# NOTE(jeffrey4l): when config_strategy == 'COPY_ALWAYS'
|
||||||
|
# and container env['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE',
|
||||||
|
# just remove the container and start again
|
||||||
|
- name: Containers config strategy
|
||||||
|
kolla_docker:
|
||||||
|
name: "{{ item.name }}"
|
||||||
|
action: "get_container_env"
|
||||||
|
register: container_envs
|
||||||
|
when: inventory_hostname in groups[item.group]
|
||||||
|
with_items:
|
||||||
|
- { name: cinder_api, group: cinder-api }
|
||||||
|
- { name: cinder_scheduler, group: cinder-scheduler }
|
||||||
|
- { name: cinder_volume, group: cinder-volume }
|
||||||
|
- { name: cinder_backup, group: cinder-backup }
|
||||||
|
|
||||||
|
- name: Remove the containers
|
||||||
|
kolla_docker:
|
||||||
|
name: "{{ item[0]['name'] }}"
|
||||||
|
action: "remove_container"
|
||||||
|
register: remove_containers
|
||||||
|
when:
|
||||||
|
- config_strategy == "COPY_ONCE" or item[1]['KOLLA_CONFIG_STRATEGY'] == 'COPY_ONCE'
|
||||||
|
- item[2]['rc'] == 1
|
||||||
|
- inventory_hostname in groups[item[0]['group']]
|
||||||
|
with_together:
|
||||||
|
- [{ name: cinder_api, group: cinder-api },
|
||||||
|
{ name: cinder_scheduler, group: cinder-scheduler },
|
||||||
|
{ name: cinder_volume, group: cinder-volume },
|
||||||
|
{ name: cinder_backup, group: cinder-backup }]
|
||||||
|
- container_envs.results
|
||||||
|
- check_results.results
|
||||||
|
|
||||||
|
- include: start.yml
|
||||||
|
when: remove_containers.changed
|
||||||
|
|
||||||
|
- name: Restart containers
|
||||||
|
kolla_docker:
|
||||||
|
name: "{{ item[0]['name'] }}"
|
||||||
|
action: "restart_container"
|
||||||
|
when:
|
||||||
|
- config_strategy == 'COPY_ALWAYS'
|
||||||
|
- item[1]['KOLLA_CONFIG_STRATEGY'] != 'COPY_ONCE'
|
||||||
|
- item[2]['rc'] == 1
|
||||||
|
- inventory_hostname in groups[item[0]['group']]
|
||||||
|
with_together:
|
||||||
|
- [{ name: cinder_api, group: cinder-api },
|
||||||
|
{ name: cinder_scheduler, group: cinder-scheduler },
|
||||||
|
{ name: cinder_volume, group: cinder-volume },
|
||||||
|
{ name: cinder_backup, group: cinder-backup }]
|
||||||
|
- container_envs.results
|
||||||
|
- check_results.results
|
@ -1 +1,7 @@
|
|||||||
---
|
---
|
||||||
|
- include: do_reconfigure.yml
|
||||||
|
serial: "30%"
|
||||||
|
when: inventory_hostname in groups['cinder-api']
|
||||||
|
or inventory_hostname in groups['cinder-scheduler']
|
||||||
|
or inventory_hostname in groups['cinder-volume']
|
||||||
|
or inventory_hostname in groups['cinder-backup']
|
||||||
|
@ -282,9 +282,15 @@ def execute_config_check():
|
|||||||
dest = config_file.get('dest')
|
dest = config_file.get('dest')
|
||||||
perm = config_file.get('perm')
|
perm = config_file.get('perm')
|
||||||
owner = config_file.get('owner')
|
owner = config_file.get('owner')
|
||||||
|
optional = config_file.get('optional', False)
|
||||||
if not os.path.exists(dest):
|
if not os.path.exists(dest):
|
||||||
LOG.error('Dest file not exist: %s', dest)
|
if optional:
|
||||||
sys.exit(1)
|
LOG.info('Dest file does not exist, but is optional: %s',
|
||||||
|
dest)
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
LOG.error('Dest file does not exist and is: %s', dest)
|
||||||
|
sys.exit(1)
|
||||||
# check content
|
# check content
|
||||||
with open(source) as fp1, open(dest) as fp2:
|
with open(source) as fp1, open(dest) as fp2:
|
||||||
if fp1.read() != fp2.read():
|
if fp1.read() != fp2.read():
|
||||||
|
Loading…
Reference in New Issue
Block a user