Adds ansible code for iscsid and tgtd containers
This partially implements iscsi and lvm2 support for cinder in Kolla. Adds ansible code for iscsid and tgtd containers. Change-Id: I2a4cfcf104397396ea61a09637d9ef3fc77b515f Partially-Implements: blueprint iscsi-lvm2-docker
This commit is contained in:
parent
184f01a0d6
commit
6c2d7c7944
@ -37,3 +37,17 @@
|
|||||||
|
|
||||||
- include: bootstrap_service.yml
|
- include: bootstrap_service.yml
|
||||||
when: database_created
|
when: database_created
|
||||||
|
|
||||||
|
- name: Creating cinder targets volume
|
||||||
|
kolla_docker:
|
||||||
|
action: "create_volume"
|
||||||
|
common_options: "{{ docker_common_options }}"
|
||||||
|
name: "cinder"
|
||||||
|
when: "{{ enable_iscsi | bool }}"
|
||||||
|
|
||||||
|
- name: Creating iscsi info volume
|
||||||
|
kolla_docker:
|
||||||
|
action: "create_volume"
|
||||||
|
common_options: "{{ docker_common_options }}"
|
||||||
|
name: "iscsi_info"
|
||||||
|
when: "{{ enable_iscsi | bool }}"
|
||||||
|
@ -21,6 +21,16 @@
|
|||||||
- "kolla_logs:/var/log/kolla/"
|
- "kolla_logs:/var/log/kolla/"
|
||||||
when: inventory_hostname in groups['cinder-scheduler']
|
when: inventory_hostname in groups['cinder-scheduler']
|
||||||
|
|
||||||
|
- name: Prepare volumes list
|
||||||
|
set_fact:
|
||||||
|
mounts:
|
||||||
|
- "{{ node_config_directory }}/cinder-volume/:{{ container_config_directory }}/:ro"
|
||||||
|
- "/dev/:/dev/"
|
||||||
|
- "/run/:/run/"
|
||||||
|
- "{% if enable_iscsi | bool %}cinder:/var/lib/cinder{% endif %}"
|
||||||
|
- "{% if enable_iscsi | bool %}iscsi_info:/etc/iscsi{% endif %}"
|
||||||
|
- "kolla_logs:/var/log/kolla/"
|
||||||
|
|
||||||
- name: Starting cinder-volume container
|
- name: Starting cinder-volume container
|
||||||
kolla_docker:
|
kolla_docker:
|
||||||
action: "start_container"
|
action: "start_container"
|
||||||
@ -28,11 +38,8 @@
|
|||||||
name: "cinder_volume"
|
name: "cinder_volume"
|
||||||
image: "{{ cinder_volume_image_full }}"
|
image: "{{ cinder_volume_image_full }}"
|
||||||
privileged: True
|
privileged: True
|
||||||
volumes:
|
ipc_mode: "host"
|
||||||
- "{{ node_config_directory }}/cinder-volume/:{{ container_config_directory }}/:ro"
|
volumes: '{{ mounts | reject("equalto", "") | list}}'
|
||||||
- "/dev/:/dev/"
|
|
||||||
- "/run/:/run/"
|
|
||||||
- "kolla_logs:/var/log/kolla/"
|
|
||||||
when: inventory_hostname in groups['cinder-volume']
|
when: inventory_hostname in groups['cinder-volume']
|
||||||
|
|
||||||
- name: Starting cinder-backup container
|
- name: Starting cinder-backup container
|
||||||
|
13
ansible/roles/iscsi/defaults/main.yml
Normal file
13
ansible/roles/iscsi/defaults/main.yml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
project_name: "iscsi"
|
||||||
|
|
||||||
|
####################
|
||||||
|
# Docker
|
||||||
|
####################
|
||||||
|
iscsid_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-iscsid"
|
||||||
|
iscsid_tag: "{{ openstack_release }}"
|
||||||
|
iscsid_image_full: "{{ iscsid_image }}:{{ iscsid_tag }}"
|
||||||
|
|
||||||
|
tgtd_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-tgtd"
|
||||||
|
tgtd_tag: "{{ openstack_release }}"
|
||||||
|
tgtd_image_full: "{{ tgtd_image }}:{{ tgtd_tag }}"
|
34
ansible/roles/iscsi/tasks/config.yml
Normal file
34
ansible/roles/iscsi/tasks/config.yml
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
---
|
||||||
|
- name: Ensuring config directories exist
|
||||||
|
file:
|
||||||
|
path: "{{ node_config_directory }}/{{ item }}"
|
||||||
|
state: "directory"
|
||||||
|
recurse: yes
|
||||||
|
when: inventory_hostname in groups['compute']
|
||||||
|
with_items:
|
||||||
|
- "iscsid"
|
||||||
|
|
||||||
|
- name: Copying over config.json files for services
|
||||||
|
template:
|
||||||
|
src: "{{ item }}.json.j2"
|
||||||
|
dest: "{{ node_config_directory }}/{{ item }}/config.json"
|
||||||
|
when: inventory_hostname in groups['compute']
|
||||||
|
with_items:
|
||||||
|
- "iscsid"
|
||||||
|
|
||||||
|
- name: Ensuring config directories exist
|
||||||
|
file:
|
||||||
|
path: "{{ node_config_directory }}/{{ item }}"
|
||||||
|
state: "directory"
|
||||||
|
recurse: yes
|
||||||
|
when: inventory_hostname in groups['tgtd']
|
||||||
|
with_items:
|
||||||
|
- "tgtd"
|
||||||
|
|
||||||
|
- name: Copying over config.json files for services
|
||||||
|
template:
|
||||||
|
src: "{{ item }}.json.j2"
|
||||||
|
dest: "{{ node_config_directory }}/{{ item }}/config.json"
|
||||||
|
when: inventory_hostname in groups['tgtd']
|
||||||
|
with_items:
|
||||||
|
- "tgtd"
|
4
ansible/roles/iscsi/tasks/deploy.yml
Normal file
4
ansible/roles/iscsi/tasks/deploy.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
- include: config.yml
|
||||||
|
|
||||||
|
- include: start.yml
|
2
ansible/roles/iscsi/tasks/main.yml
Normal file
2
ansible/roles/iscsi/tasks/main.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
---
|
||||||
|
- include: "{{ action }}.yml"
|
7
ansible/roles/iscsi/tasks/pull.yml
Normal file
7
ansible/roles/iscsi/tasks/pull.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
- name: Pulling iscsi image
|
||||||
|
kolla_docker:
|
||||||
|
action: "pull_image"
|
||||||
|
common_options: "{{ docker_common_options }}"
|
||||||
|
image: "{{ iscsi_image_full }}"
|
||||||
|
when: inventory_hostname in groups['iscsi']
|
1
ansible/roles/iscsi/tasks/reconfigure.yml
Normal file
1
ansible/roles/iscsi/tasks/reconfigure.yml
Normal file
@ -0,0 +1 @@
|
|||||||
|
---
|
40
ansible/roles/iscsi/tasks/start.yml
Normal file
40
ansible/roles/iscsi/tasks/start.yml
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
---
|
||||||
|
- name: Starting iscsid container
|
||||||
|
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/"
|
||||||
|
- "/dev/:/dev/"
|
||||||
|
- "/run/:/run/"
|
||||||
|
- "/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']
|
||||||
|
|
||||||
|
- name: Starting tgtd container
|
||||||
|
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/"
|
||||||
|
- "/dev/:/dev/"
|
||||||
|
- "/run/:/run/"
|
||||||
|
- "/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']
|
1
ansible/roles/iscsi/tasks/upgrade.yml
Normal file
1
ansible/roles/iscsi/tasks/upgrade.yml
Normal file
@ -0,0 +1 @@
|
|||||||
|
---
|
4
ansible/roles/iscsi/templates/iscsid.json.j2
Normal file
4
ansible/roles/iscsi/templates/iscsid.json.j2
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"command": "iscsid -d 8 -f --pid=/run/iscsid.pid",
|
||||||
|
"config_files": []
|
||||||
|
}
|
4
ansible/roles/iscsi/templates/tgtd.json.j2
Normal file
4
ansible/roles/iscsi/templates/tgtd.json.j2
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"command": "tgtd -d 1 -f --iscsi portal={{ hostvars[inventory_hostname]['ansible_' + network_interface]['ipv4']['address'] }}:{{ iscsi_port }}",
|
||||||
|
"config_files": []
|
||||||
|
}
|
@ -11,12 +11,25 @@
|
|||||||
- "{{ node_config_directory }}/nova-libvirt/:{{ container_config_directory }}/:ro"
|
- "{{ node_config_directory }}/nova-libvirt/:{{ container_config_directory }}/:ro"
|
||||||
- "/lib/modules:/lib/modules:ro"
|
- "/lib/modules:/lib/modules:ro"
|
||||||
- "/run/:/run/"
|
- "/run/:/run/"
|
||||||
|
- "/dev:/dev"
|
||||||
- "/sys/fs/cgroup:/sys/fs/cgroup"
|
- "/sys/fs/cgroup:/sys/fs/cgroup"
|
||||||
- "kolla_logs:/var/log/kolla/"
|
- "kolla_logs:/var/log/kolla/"
|
||||||
- "libvirtd:/var/lib/libvirt"
|
- "libvirtd:/var/lib/libvirt"
|
||||||
- "nova_compute:/var/lib/nova/"
|
- "nova_compute:/var/lib/nova/"
|
||||||
when: inventory_hostname in groups['compute']
|
when: inventory_hostname in groups['compute']
|
||||||
|
|
||||||
|
- name: Prepare volumes list
|
||||||
|
set_fact:
|
||||||
|
mounts:
|
||||||
|
- "{{ node_config_directory }}/nova-compute/:{{ container_config_directory }}/:ro"
|
||||||
|
- "/lib/modules:/lib/modules:ro"
|
||||||
|
- "/run:/run"
|
||||||
|
- "/dev:/dev"
|
||||||
|
- "kolla_logs:/var/log/kolla/"
|
||||||
|
- "{% if enable_iscsi | bool %}iscsi_info:/etc/iscsi{% endif %}"
|
||||||
|
- "libvirtd:/var/lib/libvirt"
|
||||||
|
- "nova_compute:/var/lib/nova/"
|
||||||
|
|
||||||
- name: Starting nova-compute container
|
- name: Starting nova-compute container
|
||||||
kolla_docker:
|
kolla_docker:
|
||||||
action: "start_container"
|
action: "start_container"
|
||||||
@ -24,13 +37,7 @@
|
|||||||
image: "{{ nova_compute_image_full }}"
|
image: "{{ nova_compute_image_full }}"
|
||||||
name: "nova_compute"
|
name: "nova_compute"
|
||||||
privileged: True
|
privileged: True
|
||||||
volumes:
|
volumes: '{{ mounts | reject("equalto", "") | list}}'
|
||||||
- "{{ node_config_directory }}/nova-compute/:{{ container_config_directory }}/:ro"
|
|
||||||
- "/lib/modules:/lib/modules:ro"
|
|
||||||
- "/run:/run"
|
|
||||||
- "kolla_logs:/var/log/kolla/"
|
|
||||||
- "libvirtd:/var/lib/libvirt"
|
|
||||||
- "nova_compute:/var/lib/nova/"
|
|
||||||
when:
|
when:
|
||||||
- inventory_hostname in groups['compute']
|
- inventory_hostname in groups['compute']
|
||||||
- not enable_nova_fake | bool
|
- not enable_nova_fake | bool
|
||||||
|
Loading…
Reference in New Issue
Block a user