Merge "Optimize reconfigure action for iscsi"
This commit is contained in:
commit
390c4d6454
@ -1,6 +1,47 @@
|
|||||||
---
|
---
|
||||||
project_name: "iscsi"
|
project_name: "iscsi"
|
||||||
|
|
||||||
|
iscsi_services:
|
||||||
|
iscsid:
|
||||||
|
container_name: iscsid
|
||||||
|
group: iscsid
|
||||||
|
enabled: "{{ enable_iscsid_for_cinder or enable_iscsid_for_ironic }}"
|
||||||
|
image: "{{ iscsid_image_full }}"
|
||||||
|
ipc_mode: "host"
|
||||||
|
privileged: True
|
||||||
|
volumes:
|
||||||
|
- "{{ node_config_directory }}/iscsid/:{{ container_config_directory }}/:ro"
|
||||||
|
- "kolla_logs:/var/log/kolla/"
|
||||||
|
- "/etc/localtime:/etc/localtime:ro"
|
||||||
|
- "/dev/:/dev/"
|
||||||
|
- "/run/:/run/:shared"
|
||||||
|
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
||||||
|
- "/lib/modules:/lib/modules:ro"
|
||||||
|
- "/sys/kernel/config:/configfs"
|
||||||
|
- "cinder:/var/lib/cinder"
|
||||||
|
- "iscsi_info:/etc/iscsi"
|
||||||
|
dimensions: "{{ iscsid_dimensions }}"
|
||||||
|
tgtd:
|
||||||
|
container_name: tgtd
|
||||||
|
group: tgtd
|
||||||
|
enabled: "{{ enable_tgtd }}"
|
||||||
|
image: "{{ tgtd_image_full }}"
|
||||||
|
ipc_mode: "host"
|
||||||
|
privileged: True
|
||||||
|
volumes:
|
||||||
|
- "{{ node_config_directory }}/tgtd/:{{ container_config_directory }}/:ro"
|
||||||
|
- "kolla_logs:/var/log/kolla/"
|
||||||
|
- "/etc/localtime:/etc/localtime:ro"
|
||||||
|
- "/dev/:/dev/"
|
||||||
|
- "/run/:/run/:shared"
|
||||||
|
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
||||||
|
- "/lib/modules:/lib/modules:ro"
|
||||||
|
- "/sys/kernel/config:/configfs"
|
||||||
|
- "cinder:/var/lib/cinder"
|
||||||
|
- "iscsi_info:/etc/iscsi"
|
||||||
|
dimensions: "{{ tgtd_dimensions }}"
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Docker
|
# Docker
|
||||||
####################
|
####################
|
||||||
@ -14,3 +55,18 @@ iscsid_image_full: "{{ iscsid_image }}:{{ iscsid_tag }}"
|
|||||||
tgtd_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ iscsi_install_type }}-tgtd"
|
tgtd_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ iscsi_install_type }}-tgtd"
|
||||||
tgtd_tag: "{{ iscsi_tag }}"
|
tgtd_tag: "{{ iscsi_tag }}"
|
||||||
tgtd_image_full: "{{ tgtd_image }}:{{ tgtd_tag }}"
|
tgtd_image_full: "{{ tgtd_image }}:{{ tgtd_tag }}"
|
||||||
|
|
||||||
|
iscsid_dimensions: "{{ default_container_dimensions }}"
|
||||||
|
tgtd_dimensions: "{{ default_container_dimensions }}"
|
||||||
|
|
||||||
|
enable_iscsid_for_cinder: >-
|
||||||
|
{{ (inventory_hostname in groups['compute']
|
||||||
|
or inventory_hostname in groups['cinder-volume'])
|
||||||
|
and enable_cinder | bool
|
||||||
|
and enable_cinder_backend_iscsi | bool }}
|
||||||
|
enable_iscsid_for_ironic: >-
|
||||||
|
{{ inventory_hostname in groups['ironic-conductor'] and enable_ironic | bool }}
|
||||||
|
enable_tgtd: >-
|
||||||
|
{{ enable_cinder | bool and
|
||||||
|
enable_cinder_backend_lvm | bool and
|
||||||
|
cinder_iscsi_helper == "tgtadm" }}
|
||||||
|
34
ansible/roles/iscsi/handlers/main.yml
Normal file
34
ansible/roles/iscsi/handlers/main.yml
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
---
|
||||||
|
- name: Restart iscsid container
|
||||||
|
vars:
|
||||||
|
service_name: "iscsid"
|
||||||
|
service: "{{ iscsi_services[service_name] }}"
|
||||||
|
become: true
|
||||||
|
kolla_docker:
|
||||||
|
action: "recreate_or_restart_container"
|
||||||
|
common_options: "{{ docker_common_options }}"
|
||||||
|
name: "{{ service.container_name }}"
|
||||||
|
image: "{{ service.image }}"
|
||||||
|
ipc_mode: "{{ service.ipc_mode }}"
|
||||||
|
privileged: "{{ service.privileged }}"
|
||||||
|
volumes: "{{ service.volumes|reject('equalto', '')|list }}"
|
||||||
|
dimensions: "{{ service.dimensions }}"
|
||||||
|
when:
|
||||||
|
- kolla_action != "config"
|
||||||
|
|
||||||
|
- name: Restart tgtd container
|
||||||
|
vars:
|
||||||
|
service_name: "tgtd"
|
||||||
|
service: "{{ iscsi_services[service_name] }}"
|
||||||
|
become: true
|
||||||
|
kolla_docker:
|
||||||
|
action: "recreate_or_restart_container"
|
||||||
|
common_options: "{{ docker_common_options }}"
|
||||||
|
name: "{{ service.container_name }}"
|
||||||
|
image: "{{ service.image }}"
|
||||||
|
ipc_mode: "{{ service.ipc_mode }}"
|
||||||
|
privileged: "{{ service.privileged }}"
|
||||||
|
volumes: "{{ service.volumes|reject('equalto', '')|list }}"
|
||||||
|
dimensions: "{{ service.dimensions }}"
|
||||||
|
when:
|
||||||
|
- kolla_action != "config"
|
@ -5,55 +5,50 @@
|
|||||||
vars:
|
vars:
|
||||||
modules:
|
modules:
|
||||||
- name: configfs
|
- name: configfs
|
||||||
when: ( ( inventory_hostname in groups['compute'] or inventory_hostname in groups['cinder-volume'] ) and enable_cinder | bool and enable_cinder_backend_iscsi | bool )
|
when:
|
||||||
or ( inventory_hostname in groups['ironic-conductor'] and enable_ironic | bool )
|
- inventory_hostname in groups[iscsi_services.iscsid.group]
|
||||||
|
- iscsi_services.iscsid.enabled | bool
|
||||||
|
|
||||||
- name: Ensuring config directories exist
|
- name: Ensuring config directories exist
|
||||||
file:
|
file:
|
||||||
path: "{{ node_config_directory }}/{{ item }}"
|
path: "{{ node_config_directory }}/{{ item.key }}"
|
||||||
state: "directory"
|
|
||||||
owner: "{{ config_owner_user }}"
|
|
||||||
group: "{{ config_owner_group }}"
|
|
||||||
mode: "0770"
|
|
||||||
become: true
|
|
||||||
when: ( ( inventory_hostname in groups['compute'] or inventory_hostname in groups['cinder-volume'] ) and enable_cinder | bool and enable_cinder_backend_iscsi | bool )
|
|
||||||
or ( inventory_hostname in groups['ironic-conductor'] and enable_ironic | bool )
|
|
||||||
with_items:
|
|
||||||
- "iscsid"
|
|
||||||
|
|
||||||
- name: Copying over config.json files for services
|
|
||||||
template:
|
|
||||||
src: "{{ item }}.json.j2"
|
|
||||||
dest: "{{ node_config_directory }}/{{ item }}/config.json"
|
|
||||||
mode: "0660"
|
|
||||||
become: true
|
|
||||||
when: ( ( inventory_hostname in groups['compute'] or inventory_hostname in groups['cinder-volume'] ) and enable_cinder | bool and enable_cinder_backend_iscsi | bool )
|
|
||||||
or ( inventory_hostname in groups['ironic-conductor'] and enable_ironic | bool )
|
|
||||||
with_items:
|
|
||||||
- "iscsid"
|
|
||||||
|
|
||||||
- name: Ensuring config directories exist
|
|
||||||
file:
|
|
||||||
path: "{{ node_config_directory }}/{{ item }}"
|
|
||||||
state: "directory"
|
state: "directory"
|
||||||
owner: "{{ config_owner_user }}"
|
owner: "{{ config_owner_user }}"
|
||||||
group: "{{ config_owner_group }}"
|
group: "{{ config_owner_group }}"
|
||||||
mode: "0770"
|
mode: "0770"
|
||||||
become: true
|
become: true
|
||||||
when:
|
when:
|
||||||
- enable_cinder_backend_lvm | bool
|
- inventory_hostname in groups[item.value.group]
|
||||||
- inventory_hostname in groups['tgtd']
|
- item.value.enabled | bool
|
||||||
with_items:
|
with_dict: "{{ iscsi_services }}"
|
||||||
- "tgtd"
|
|
||||||
|
|
||||||
- name: Copying over config.json files for services
|
- name: Copying over config.json files for services
|
||||||
template:
|
template:
|
||||||
src: "{{ item }}.json.j2"
|
src: "{{ item.key }}.json.j2"
|
||||||
dest: "{{ node_config_directory }}/{{ item }}/config.json"
|
dest: "{{ node_config_directory }}/{{ item.key }}/config.json"
|
||||||
mode: "0660"
|
mode: "0660"
|
||||||
become: true
|
become: true
|
||||||
when:
|
when:
|
||||||
- enable_cinder_backend_lvm | bool
|
- inventory_hostname in groups[item.value.group]
|
||||||
- inventory_hostname in groups['tgtd']
|
- item.value.enabled | bool
|
||||||
with_items:
|
with_dict: "{{ iscsi_services }}"
|
||||||
- "tgtd"
|
notify:
|
||||||
|
- "Restart {{ item.key }} container"
|
||||||
|
|
||||||
|
- name: Check iscsi containers
|
||||||
|
kolla_docker:
|
||||||
|
action: "compare_container"
|
||||||
|
common_options: "{{ docker_common_options }}"
|
||||||
|
name: "{{ item.value.container_name }}"
|
||||||
|
image: "{{ item.value.image }}"
|
||||||
|
ipc_mode: "{{ item.value.ipc_mode }}"
|
||||||
|
privileged: "{{ item.value.privileged|default(False) }}"
|
||||||
|
volumes: "{{ item.value.volumes }}"
|
||||||
|
dimensions: "{{ item.value.dimensions }}"
|
||||||
|
when:
|
||||||
|
- kolla_action != "config"
|
||||||
|
- inventory_hostname in groups[item.value.group]
|
||||||
|
- item.value.enabled | bool
|
||||||
|
with_dict: "{{ iscsi_services }}"
|
||||||
|
notify:
|
||||||
|
- "Restart {{ item.key }} container"
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
---
|
---
|
||||||
- include_tasks: config.yml
|
- include_tasks: config.yml
|
||||||
|
|
||||||
- include_tasks: start.yml
|
- name: Flush handlers
|
||||||
|
meta: flush_handlers
|
||||||
|
@ -14,4 +14,5 @@
|
|||||||
state: stopped
|
state: stopped
|
||||||
when:
|
when:
|
||||||
- container_facts['iscsid'] is not defined
|
- container_facts['iscsid'] is not defined
|
||||||
- inventory_hostname in groups['iscsid']
|
- inventory_hostname in groups[iscsi_services.iscsid.group]
|
||||||
|
- iscsi_services.iscsid.enabled | bool
|
||||||
|
@ -1,16 +1,10 @@
|
|||||||
---
|
---
|
||||||
- name: Pulling iscsid image
|
- name: Pulling iscsi images
|
||||||
become: true
|
|
||||||
kolla_docker:
|
kolla_docker:
|
||||||
action: "pull_image"
|
action: "pull_image"
|
||||||
common_options: "{{ docker_common_options }}"
|
common_options: "{{ docker_common_options }}"
|
||||||
image: "{{ iscsid_image_full }}"
|
image: "{{ item.value.image }}"
|
||||||
when: inventory_hostname in groups['iscsid']
|
when:
|
||||||
|
- inventory_hostname in groups[item.value.group]
|
||||||
- name: Pulling tgtd image
|
- item.value.enabled | bool
|
||||||
become: true
|
with_dict: "{{ iscsi_services }}"
|
||||||
kolla_docker:
|
|
||||||
action: "pull_image"
|
|
||||||
common_options: "{{ docker_common_options }}"
|
|
||||||
image: "{{ tgtd_image_full }}"
|
|
||||||
when: inventory_hostname in groups['tgtd']
|
|
||||||
|
@ -1 +1,2 @@
|
|||||||
---
|
---
|
||||||
|
- include_tasks: deploy.yml
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Starting iscsid container
|
|
||||||
become: true
|
|
||||||
kolla_docker:
|
|
||||||
action: "start_container"
|
|
||||||
common_options: "{{ docker_common_options }}"
|
|
||||||
image: "{{ iscsid_image_full }}"
|
|
||||||
name: "iscsid"
|
|
||||||
ipc_mode: "host"
|
|
||||||
privileged: True
|
|
||||||
volumes:
|
|
||||||
- "{{ node_config_directory }}/iscsid/:{{ container_config_directory }}/:ro"
|
|
||||||
- "kolla_logs:/var/log/kolla/"
|
|
||||||
- "/etc/localtime:/etc/localtime:ro"
|
|
||||||
- "/dev/:/dev/"
|
|
||||||
- "/run/:/run/:shared"
|
|
||||||
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
|
||||||
- "/lib/modules:/lib/modules:ro"
|
|
||||||
- "/sys/kernel/config:/configfs"
|
|
||||||
- "cinder:/var/lib/cinder"
|
|
||||||
- "iscsi_info:/etc/iscsi"
|
|
||||||
when: ( ( inventory_hostname in groups['compute'] or inventory_hostname in groups['cinder-volume'] ) and enable_cinder | bool and enable_cinder_backend_iscsi | bool )
|
|
||||||
or ( inventory_hostname in groups['ironic-conductor'] and enable_ironic | bool )
|
|
||||||
|
|
||||||
- name: Starting tgtd container
|
|
||||||
become: true
|
|
||||||
kolla_docker:
|
|
||||||
action: "start_container"
|
|
||||||
common_options: "{{ docker_common_options }}"
|
|
||||||
image: "{{ tgtd_image_full }}"
|
|
||||||
name: "tgtd"
|
|
||||||
ipc_mode: "host"
|
|
||||||
privileged: True
|
|
||||||
volumes:
|
|
||||||
- "{{ node_config_directory }}/tgtd/:{{ container_config_directory }}/:ro"
|
|
||||||
- "kolla_logs:/var/log/kolla/"
|
|
||||||
- "/etc/localtime:/etc/localtime:ro"
|
|
||||||
- "/dev/:/dev/"
|
|
||||||
- "/run/:/run/:shared"
|
|
||||||
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
|
||||||
- "/lib/modules:/lib/modules:ro"
|
|
||||||
- "/sys/kernel/config:/configfs"
|
|
||||||
- "cinder:/var/lib/cinder"
|
|
||||||
- "iscsi_info:/etc/iscsi"
|
|
||||||
when:
|
|
||||||
- inventory_hostname in groups['tgtd']
|
|
||||||
- enable_cinder | bool
|
|
||||||
- enable_cinder_backend_lvm | bool
|
|
||||||
- cinder_iscsi_helper == "tgtadm"
|
|
@ -1,19 +1,6 @@
|
|||||||
---
|
---
|
||||||
- name: Stopping iscsid container
|
- import_role:
|
||||||
kolla_docker:
|
role: service-stop
|
||||||
action: "stop_container"
|
vars:
|
||||||
common_options: "{{ docker_common_options }}"
|
project_services: "{{ iscsi_services }}"
|
||||||
name: "iscsid"
|
service_name: "{{ project_name }}"
|
||||||
when: ( ( inventory_hostname in groups['compute'] or inventory_hostname in groups['cinder-volume'] ) and enable_cinder | bool and enable_cinder_backend_iscsi | bool )
|
|
||||||
or ( inventory_hostname in groups['ironic-conductor'] and enable_ironic | bool and 'iscsid' not in skip_stop_containers)
|
|
||||||
|
|
||||||
- name: Stopping tgtd container
|
|
||||||
kolla_docker:
|
|
||||||
action: "stop_container"
|
|
||||||
common_options: "{{ docker_common_options }}"
|
|
||||||
name: "tgtd"
|
|
||||||
when:
|
|
||||||
- inventory_hostname in groups['tgtd']
|
|
||||||
- enable_cinder | bool
|
|
||||||
- enable_cinder_backend_lvm | bool
|
|
||||||
- "'tgtd' not in skip_stop_containers"
|
|
||||||
|
@ -1,4 +1,2 @@
|
|||||||
---
|
---
|
||||||
- include_tasks: config.yml
|
- include_tasks: deploy.yml
|
||||||
|
|
||||||
- include_tasks: start.yml
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user