Add ansible support for Cinder
Change-Id: I0694e5ad95aa7f924ebd3a29dff1f85e6307b7ae Partially-implements: blueprint ansible-cinder Partially-Implements: blueprint remove-abstraction-ansible Co-Authored-By: Ryan Hallisey <rhallise@redhat.com>
This commit is contained in:
parent
485e1b2539
commit
18f0e536f6
@ -9,6 +9,8 @@ localhost ansible_connection=local
|
|||||||
[compute]
|
[compute]
|
||||||
localhost ansible_connection=local
|
localhost ansible_connection=local
|
||||||
|
|
||||||
|
[storage]
|
||||||
|
localhost ansible_connection=local
|
||||||
|
|
||||||
# You can explicitly specify which hosts run each project by updating the
|
# You can explicitly specify which hosts run each project by updating the
|
||||||
# groups in the sections below. Common services are grouped together.
|
# groups in the sections below. Common services are grouped together.
|
||||||
@ -33,6 +35,9 @@ support
|
|||||||
[neutron:children]
|
[neutron:children]
|
||||||
network
|
network
|
||||||
|
|
||||||
|
[cinder:children]
|
||||||
|
support
|
||||||
|
|
||||||
|
|
||||||
# Additional control implemented here. These groups allow you to control which
|
# Additional control implemented here. These groups allow you to control which
|
||||||
# services run on which hosts at a per-service level.
|
# services run on which hosts at a per-service level.
|
||||||
@ -70,3 +75,16 @@ neutron
|
|||||||
|
|
||||||
[neutron-agents:children]
|
[neutron-agents:children]
|
||||||
neutron
|
neutron
|
||||||
|
|
||||||
|
#Cinder
|
||||||
|
[cinder-api:children]
|
||||||
|
cinder
|
||||||
|
|
||||||
|
[cinder-backup:children]
|
||||||
|
storage
|
||||||
|
|
||||||
|
[cinder-scheduler:children]
|
||||||
|
cinder
|
||||||
|
|
||||||
|
[cinder-volume:children]
|
||||||
|
storage
|
||||||
|
@ -15,6 +15,8 @@ network01
|
|||||||
[compute]
|
[compute]
|
||||||
compute01
|
compute01
|
||||||
|
|
||||||
|
[storage]
|
||||||
|
storage01
|
||||||
|
|
||||||
# You can explicitly specify which hosts run each project by updating the
|
# You can explicitly specify which hosts run each project by updating the
|
||||||
# groups in the sections below. Common services are grouped together.
|
# groups in the sections below. Common services are grouped together.
|
||||||
@ -39,6 +41,9 @@ support
|
|||||||
[neutron:children]
|
[neutron:children]
|
||||||
network
|
network
|
||||||
|
|
||||||
|
[cinder:children]
|
||||||
|
support
|
||||||
|
|
||||||
|
|
||||||
# Additional control implemented here. These groups allow you to control which
|
# Additional control implemented here. These groups allow you to control which
|
||||||
# services run on which hosts at a per-service level.
|
# services run on which hosts at a per-service level.
|
||||||
@ -76,3 +81,16 @@ neutron
|
|||||||
|
|
||||||
[neutron-agents:children]
|
[neutron-agents:children]
|
||||||
neutron
|
neutron
|
||||||
|
|
||||||
|
#Cinder
|
||||||
|
[cinder-api:children]
|
||||||
|
cinder
|
||||||
|
|
||||||
|
[cinder-backup:children]
|
||||||
|
storage
|
||||||
|
|
||||||
|
[cinder-scheduler:children]
|
||||||
|
cinder
|
||||||
|
|
||||||
|
[cinder-volume:children]
|
||||||
|
storage
|
||||||
|
44
ansible/roles/cinder/defaults/main.yml
Normal file
44
ansible/roles/cinder/defaults/main.yml
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
---
|
||||||
|
project_name: "cinder"
|
||||||
|
|
||||||
|
####################
|
||||||
|
# Database
|
||||||
|
####################
|
||||||
|
cinder_database_name: "cinder"
|
||||||
|
cinder_database_user: "cinder"
|
||||||
|
cinder_database_address: "{{ kolla_internal_address }}"
|
||||||
|
|
||||||
|
|
||||||
|
####################
|
||||||
|
# Docker
|
||||||
|
####################
|
||||||
|
cinder_volume_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-cinder-volume"
|
||||||
|
cinder_volume_tag: "{{ openstack_release }}"
|
||||||
|
cinder_volume_image_full: "{{ cinder_volume_image }}:{{ cinder_volume_tag }}"
|
||||||
|
|
||||||
|
cinder_scheduler_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-cinder-scheduler"
|
||||||
|
cinder_scheduler_tag: "{{ openstack_release }}"
|
||||||
|
cinder_scheduler_image_full: "{{ cinder_scheduler_image }}:{{ cinder_scheduler_tag }}"
|
||||||
|
|
||||||
|
cinder_backup_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-cinder-backup"
|
||||||
|
cinder_backup_tag: "{{ openstack_release }}"
|
||||||
|
cinder_backup_image_full: "{{ cinder_backup_image }}:{{ cinder_backup_tag }}"
|
||||||
|
|
||||||
|
cinder_api_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-cinder-api"
|
||||||
|
cinder_api_tag: "{{ openstack_release }}"
|
||||||
|
cinder_api_image_full: "{{ cinder_api_image }}:{{ cinder_api_tag }}"
|
||||||
|
|
||||||
|
|
||||||
|
####################
|
||||||
|
# Openstack
|
||||||
|
####################
|
||||||
|
cinder_public_address: "{{ kolla_external_address }}"
|
||||||
|
cinder_admin_address: "{{ kolla_internal_address }}"
|
||||||
|
cinder_internal_address: "{{ kolla_internal_address }}"
|
||||||
|
|
||||||
|
cinder_logging_verbose: "{{ openstack_logging_verbose }}"
|
||||||
|
cinder_logging_debug: "{{ openstack_logging_debug }}"
|
||||||
|
|
||||||
|
cinder_keystone_user: "cinder"
|
||||||
|
|
||||||
|
openstack_cinder_auth: "{'auth_url':'{{ openstack_auth_v2.auth_url }}','username':'{{ openstack_auth_v2.username }}','password':'{{ openstack_auth_v2.password }}','project_name':'{{ openstack_auth_v2.project_name }}'}"
|
80
ansible/roles/cinder/tasks/bootstrap.yml
Normal file
80
ansible/roles/cinder/tasks/bootstrap.yml
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
---
|
||||||
|
- name: Creating Cinder database
|
||||||
|
command: docker exec -t kolla_ansible /usr/bin/ansible localhost
|
||||||
|
-m mysql_db
|
||||||
|
-a "login_host='{{ database_address }}'
|
||||||
|
login_user='{{ database_user }}'
|
||||||
|
login_password='{{ database_password }}'
|
||||||
|
name='{{ cinder_database_name }}'"
|
||||||
|
register: database
|
||||||
|
changed_when: "{{ database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
|
||||||
|
failed_when: database.stdout.split()[2] != 'SUCCESS'
|
||||||
|
run_once: True
|
||||||
|
|
||||||
|
- name: Creating Cinder database user and setting permissions
|
||||||
|
command: docker exec -t kolla_ansible /usr/bin/ansible localhost
|
||||||
|
-m mysql_user
|
||||||
|
-a "login_host='{{ database_address }}'
|
||||||
|
login_user='{{ database_user }}'
|
||||||
|
login_password='{{ database_password }}'
|
||||||
|
name='{{ cinder_database_name }}'
|
||||||
|
password='{{ cinder_database_password }}'
|
||||||
|
host='%'
|
||||||
|
priv='{{ cinder_database_name }}.*:ALL'
|
||||||
|
append_privs='yes'"
|
||||||
|
register: database_user
|
||||||
|
changed_when: "{{ database.stdout.find('localhost | SUCCESS => ') != -1 and (database_user.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
|
||||||
|
failed_when: database_user.stdout.split()[2] != 'SUCCESS'
|
||||||
|
run_once: True
|
||||||
|
|
||||||
|
- name: Starting Cinder data container
|
||||||
|
docker:
|
||||||
|
docker_api_version: "{{ docker_api_version }}"
|
||||||
|
net: host
|
||||||
|
pull: "{{ docker_pull_policy }}"
|
||||||
|
restart_policy: "{{ docker_restart_policy }}"
|
||||||
|
restart_policy_retry: "{{ docker_restart_policy_retry }}"
|
||||||
|
state: reloaded
|
||||||
|
registry: "{{ docker_registry }}"
|
||||||
|
username: "{{ docker_registry_username }}"
|
||||||
|
password: "{{ docker_registry_password }}"
|
||||||
|
insecure_registry: "{{ docker_insecure_registry }}"
|
||||||
|
name: cinder_data
|
||||||
|
image: "{{ cinder_api_image_full }}"
|
||||||
|
command: "/bin/sleep infinity"
|
||||||
|
volumes: "/var/lib/cinder/"
|
||||||
|
|
||||||
|
- name: Starting Cinder bootstrap container
|
||||||
|
docker:
|
||||||
|
detach: False
|
||||||
|
docker_api_version: "{{ docker_api_version }}"
|
||||||
|
net: host
|
||||||
|
pull: "{{ docker_pull_policy }}"
|
||||||
|
restart_policy: "no"
|
||||||
|
state: reloaded
|
||||||
|
registry: "{{ docker_registry }}"
|
||||||
|
username: "{{ docker_registry_username }}"
|
||||||
|
password: "{{ docker_registry_password }}"
|
||||||
|
insecure_registry: "{{ docker_insecure_registry }}"
|
||||||
|
name: bootstrap_cinder
|
||||||
|
image: "{{ cinder_api_image_full }}"
|
||||||
|
volumes: "{{ node_config_directory }}/cinder/:/opt/kolla/cinder/:ro"
|
||||||
|
volumes_from: cinder_data
|
||||||
|
env:
|
||||||
|
KOLLA_BOOSTRAP:
|
||||||
|
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
||||||
|
run_once: True
|
||||||
|
when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
|
||||||
|
|
||||||
|
# https://github.com/ansible/ansible-modules-core/pull/1031
|
||||||
|
|
||||||
|
- name: Waiting for bootstrap container to exit
|
||||||
|
command: docker wait bootstrap_cinder
|
||||||
|
when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
|
||||||
|
|
||||||
|
- name: Cleaning up Cinder boostrap container
|
||||||
|
docker:
|
||||||
|
name: bootstrap_cinder
|
||||||
|
image: "{{ cinder_api_image_full }}"
|
||||||
|
state: absent
|
||||||
|
when: database.stdout.find('localhost | SUCCESS => ') != -1 and (database.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed
|
80
ansible/roles/cinder/tasks/config.yml
Normal file
80
ansible/roles/cinder/tasks/config.yml
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
---
|
||||||
|
- include: ../../config.yml
|
||||||
|
vars:
|
||||||
|
service_name: "cinder-api"
|
||||||
|
config_source:
|
||||||
|
- "roles/{{ project_name }}/templates/cinder.conf.j2"
|
||||||
|
- "/etc/kolla/config/global.conf"
|
||||||
|
- "/etc/kolla/config/database.conf"
|
||||||
|
- "/etc/kolla/config/messaging.conf"
|
||||||
|
- "/etc/kolla/config/{{ project_name }}.conf"
|
||||||
|
- "/etc/kolla/config/{{ project_name }}/{{ service_name }}.conf"
|
||||||
|
config_template_dest:
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_minimal"
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_global"
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_database"
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_messaging"
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_augment"
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ service_name }}.conf_augment"
|
||||||
|
config_dest: "{{ node_config_directory }}/{{ service_name }}/cinder.conf"
|
||||||
|
when: inventory_hostname in groups['cinder-api']
|
||||||
|
|
||||||
|
- include: ../../config.yml
|
||||||
|
vars:
|
||||||
|
service_name: "cinder-backup"
|
||||||
|
config_source:
|
||||||
|
- "roles/{{ project_name }}/templates/cinder.conf.j2"
|
||||||
|
- "/etc/kolla/config/global.conf"
|
||||||
|
- "/etc/kolla/config/database.conf"
|
||||||
|
- "/etc/kolla/config/messaging.conf"
|
||||||
|
- "/etc/kolla/config/{{ project_name }}.conf"
|
||||||
|
- "/etc/kolla/config/{{ project_name }}/{{ service_name }}.conf"
|
||||||
|
config_template_dest:
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_minimal"
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_global"
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_database"
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_messaging"
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_augment"
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ service_name }}.conf_augment"
|
||||||
|
config_dest: "{{ node_config_directory }}/{{ service_name }}/cinder.conf"
|
||||||
|
when: inventory_hostname in groups['cinder-backup']
|
||||||
|
|
||||||
|
- include: ../../config.yml
|
||||||
|
vars:
|
||||||
|
service_name: "cinder-scheduler"
|
||||||
|
config_source:
|
||||||
|
- "roles/{{ project_name }}/templates/cinder.conf.j2"
|
||||||
|
- "/etc/kolla/config/global.conf"
|
||||||
|
- "/etc/kolla/config/database.conf"
|
||||||
|
- "/etc/kolla/config/messaging.conf"
|
||||||
|
- "/etc/kolla/config/{{ project_name }}.conf"
|
||||||
|
- "/etc/kolla/config/{{ project_name }}/{{ service_name }}.conf"
|
||||||
|
config_template_dest:
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_minimal"
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_global"
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_database"
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_messaging"
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_augment"
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ service_name }}.conf_augment"
|
||||||
|
config_dest: "{{ node_config_directory }}/{{ service_name }}/cinder.conf"
|
||||||
|
when: inventory_hostname in groups['cinder-scheduler']
|
||||||
|
|
||||||
|
- include: ../../config.yml
|
||||||
|
vars:
|
||||||
|
service_name: "cinder-volume"
|
||||||
|
config_source:
|
||||||
|
- "roles/{{ project_name }}/templates/cinder.conf.j2"
|
||||||
|
- "/etc/kolla/config/global.conf"
|
||||||
|
- "/etc/kolla/config/database.conf"
|
||||||
|
- "/etc/kolla/config/messaging.conf"
|
||||||
|
- "/etc/kolla/config/{{ project_name }}.conf"
|
||||||
|
- "/etc/kolla/config/{{ project_name }}/{{ service_name }}.conf"
|
||||||
|
config_template_dest:
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_minimal"
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_global"
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_database"
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_messaging"
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_augment"
|
||||||
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ service_name }}.conf_augment"
|
||||||
|
config_dest: "{{ node_config_directory }}/{{ service_name }}/cinder.conf"
|
||||||
|
when: inventory_hostname in groups['cinder-volume']
|
8
ansible/roles/cinder/tasks/main.yml
Normal file
8
ansible/roles/cinder/tasks/main.yml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
- include: register.yml
|
||||||
|
|
||||||
|
- include: config.yml
|
||||||
|
|
||||||
|
- include: bootstrap.yml
|
||||||
|
|
||||||
|
- include: start.yml
|
37
ansible/roles/cinder/tasks/register.yml
Normal file
37
ansible/roles/cinder/tasks/register.yml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
- name: Creating the Cinder service and endpoint
|
||||||
|
command: docker exec -t kolla_ansible /usr/bin/ansible localhost
|
||||||
|
-m kolla_keystone_service
|
||||||
|
-a "service_name=cinder
|
||||||
|
service_type='Block Storage'
|
||||||
|
description='Openstack Block Storage'
|
||||||
|
endpoint_region={{ openstack_region_name }}
|
||||||
|
admin_url='http://{{ kolla_internal_address }}:{{ cinder_api_port }}'
|
||||||
|
internal_url='http://{{ kolla_internal_address }}:{{ cinder_api_port }}'
|
||||||
|
public_url='http://{{ kolla_external_address }}:{{ cinder_api_port }}'
|
||||||
|
region_name={{ openstack_region_name }}
|
||||||
|
auth={{ '{{ openstack_cinder_auth }}' }}"
|
||||||
|
-e "{'openstack_cinder_auth':{{ openstack_cinder_auth }}}"
|
||||||
|
register: cinder_endpoint
|
||||||
|
changed_when: "{{ cinder_endpoint.stdout.find('localhost | SUCCESS => ') != -1 and (cinder_endpoint.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
|
||||||
|
until: cinder_endpoint.stdout.split()[2] == 'SUCCESS'
|
||||||
|
retries: 10
|
||||||
|
delay: 5
|
||||||
|
run_once: True
|
||||||
|
|
||||||
|
- name: Creating the Cinder project, user, and role
|
||||||
|
command: docker exec -t kolla_ansible /usr/bin/ansible localhost
|
||||||
|
-m kolla_keystone_user
|
||||||
|
-a "project=service
|
||||||
|
user=cinder
|
||||||
|
password={{ cinder_keystone_password }}
|
||||||
|
role=admin
|
||||||
|
region_name={{ openstack_region_name }}
|
||||||
|
auth={{ '{{ openstack_cinder_auth }}' }}"
|
||||||
|
-e "{'openstack_cinder_auth':{{ openstack_cinder_auth }}}"
|
||||||
|
register: cinder_user
|
||||||
|
changed_when: "{{ cinder_user.stdout.find('localhost | SUCCESS => ') != -1 and (cinder_user.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
|
||||||
|
until: cinder_user.stdout.split()[2] == 'SUCCESS'
|
||||||
|
retries: 10
|
||||||
|
delay: 5
|
||||||
|
run_once: True
|
75
ansible/roles/cinder/tasks/start.yml
Normal file
75
ansible/roles/cinder/tasks/start.yml
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
- name: Starting Cinder-api container
|
||||||
|
docker:
|
||||||
|
docker_api_version: "{{ docker_api_version }}"
|
||||||
|
net: host
|
||||||
|
pull: "{{ docker_pull_policy }}"
|
||||||
|
restart_policy: "{{ docker_restart_policy }}"
|
||||||
|
restart_policy_retry: "{{ docker_restart_policy_retry }}"
|
||||||
|
state: reloaded
|
||||||
|
registry: "{{ docker_registry }}"
|
||||||
|
username: "{{ docker_registry_username }}"
|
||||||
|
password: "{{ docker_registry_password }}"
|
||||||
|
insecure_registry: "{{ docker_insecure_registry }}"
|
||||||
|
name: cinder_api
|
||||||
|
image: "{{ cinder_api_image_full }}"
|
||||||
|
volumes: "{{ node_config_directory }}/cinder-api/:/opt/kolla/cinder/:ro"
|
||||||
|
env:
|
||||||
|
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
||||||
|
when: inventory_hostname in groups['cinder-api']
|
||||||
|
|
||||||
|
- name: Starting Cinder-backup container
|
||||||
|
docker:
|
||||||
|
docker_api_version: "{{ docker_api_version }}"
|
||||||
|
net: host
|
||||||
|
pull: "{{ docker_pull_policy }}"
|
||||||
|
restart_policy: "{{ docker_restart_policy }}"
|
||||||
|
restart_policy_retry: "{{ docker_restart_policy_retry }}"
|
||||||
|
state: reloaded
|
||||||
|
registry: "{{ docker_registry }}"
|
||||||
|
username: "{{ docker_registry_username }}"
|
||||||
|
password: "{{ docker_registry_password }}"
|
||||||
|
insecure_registry: "{{ docker_insecure_registry }}"
|
||||||
|
name: cinder_backup
|
||||||
|
image: "{{ cinder_backup_image_full }}"
|
||||||
|
volumes: "{{ node_config_directory }}/cinder-backup/:/opt/kolla/cinder-backup/:ro"
|
||||||
|
env:
|
||||||
|
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
||||||
|
when: inventory_hostname in groups['cinder-backup']
|
||||||
|
|
||||||
|
- name: Starting Cinder-scheduler container
|
||||||
|
docker:
|
||||||
|
docker_api_version: "{{ docker_api_version }}"
|
||||||
|
net: host
|
||||||
|
pull: "{{ docker_pull_policy }}"
|
||||||
|
restart_policy: "{{ docker_restart_policy }}"
|
||||||
|
restart_policy_retry: "{{ docker_restart_policy_retry }}"
|
||||||
|
state: reloaded
|
||||||
|
registry: "{{ docker_registry }}"
|
||||||
|
username: "{{ docker_registry_username }}"
|
||||||
|
password: "{{ docker_registry_password }}"
|
||||||
|
insecure_registry: "{{ docker_insecure_registry }}"
|
||||||
|
name: cinder_scheduler
|
||||||
|
image: "{{ cinder_scheduler_image_full }}"
|
||||||
|
volumes: "{{ node_config_directory }}/cinder-scheduler/:/opt/kolla/cinder-scheduler/:ro"
|
||||||
|
env:
|
||||||
|
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
||||||
|
when: inventory_hostname in groups['cinder-scheduler']
|
||||||
|
|
||||||
|
- name: Starting Cinder-volume container
|
||||||
|
docker:
|
||||||
|
docker_api_version: "{{ docker_api_version }}"
|
||||||
|
net: host
|
||||||
|
pull: "{{ docker_pull_policy }}"
|
||||||
|
restart_policy: "{{ docker_restart_policy }}"
|
||||||
|
restart_policy_retry: "{{ docker_restart_policy_retry }}"
|
||||||
|
state: reloaded
|
||||||
|
registry: "{{ docker_registry }}"
|
||||||
|
username: "{{ docker_registry_username }}"
|
||||||
|
password: "{{ docker_registry_password }}"
|
||||||
|
insecure_registry: "{{ docker_insecure_registry }}"
|
||||||
|
name: cinder_volume
|
||||||
|
image: "{{ cinder_volume_image_full }}"
|
||||||
|
volumes: "{{ node_config_directory }}/cinder-volume/:/opt/kolla/cinder-volume/:ro"
|
||||||
|
env:
|
||||||
|
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
||||||
|
when: inventory_hostname in groups['cinder-volume']
|
55
ansible/roles/cinder/templates/cinder.conf.j2
Normal file
55
ansible/roles/cinder/templates/cinder.conf.j2
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
[DEFAULT]
|
||||||
|
verbose = true
|
||||||
|
debug = true
|
||||||
|
enable_v1_api=false
|
||||||
|
volume_name_template = %s
|
||||||
|
glance_api_servers = http://{{ kolla_internal_address }}:{{ glance_api_port }}
|
||||||
|
os_region_name = {{ openstack_region_name }}
|
||||||
|
{% if cinder_volume_driver == "lvm" %}
|
||||||
|
default_volume_type = lvmdriver-1
|
||||||
|
enabled_backends = lvmdriver-1
|
||||||
|
{% elif cinder_volume_driver == "ceph" %}
|
||||||
|
default_volume_type = rbd-1
|
||||||
|
enabled_backends = rbd-1
|
||||||
|
{% endif %}
|
||||||
|
osapi_volume_listen = {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}
|
||||||
|
osapi_volume_listen_port = {{ cinder_api_port }}
|
||||||
|
api_paste_config = /etc/cinder/api-paste.ini
|
||||||
|
nova_catalog_info = compute:nova:internalURL
|
||||||
|
|
||||||
|
[database]
|
||||||
|
connection = mysql://{{ cinder_database_user }}:{{ cinder_database_password }}@{{ cinder_database_address }}/{{ cinder_database_name }}
|
||||||
|
|
||||||
|
[keystone_authtoken]
|
||||||
|
auth_uri = http://{{ kolla_internal_address }}:{{ keystone_public_port }}
|
||||||
|
auth_url = http://{{ kolla_internal_address }}:{{ keystone_admin_port }}
|
||||||
|
auth_plugin = password
|
||||||
|
project_domain_id = default
|
||||||
|
user_domain_id = default
|
||||||
|
project_name = service
|
||||||
|
username = {{ cinder_keystone_user }}
|
||||||
|
password = {{ cinder_keystone_password }}
|
||||||
|
|
||||||
|
[oslo_concurrency]
|
||||||
|
lock_path = /var/lib/cinder/tmp
|
||||||
|
|
||||||
|
[oslo_messaging_rabbit]
|
||||||
|
rabbit_userid = {{ rabbitmq_user }}
|
||||||
|
rabbit_password = {{ rabbitmq_password }}
|
||||||
|
rabbit_host = {{ kolla_internal_address }}
|
||||||
|
rabbit_ha_queues = true
|
||||||
|
|
||||||
|
{% if cinder_volume_driver == "lvm" %}
|
||||||
|
[lvmdriver-1]
|
||||||
|
lvm_type = default
|
||||||
|
volume_group = stack-volumes-lvmdriver-1
|
||||||
|
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
|
||||||
|
volume_backend_name = lvmdriver-1
|
||||||
|
{% elif cinder_volume_driver == "ceph" %}
|
||||||
|
[rbd-1]
|
||||||
|
volume_driver = cinder.volume.drivers.rbd.RBDDriver
|
||||||
|
rbd_pool = volumes
|
||||||
|
rbd_user = cinder
|
||||||
|
rbd_secret_uuid = {{ metadata_secret }}
|
||||||
|
{% endif %}
|
||||||
|
|
@ -78,3 +78,9 @@ listen neutron_server
|
|||||||
{% for host in groups['neutron-server'] %}
|
{% for host in groups['neutron-server'] %}
|
||||||
server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + api_interface]['ipv4']['address'] }}:{{ neutron_server_port }} check inter 2000 rise 2 fall 5
|
server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + api_interface]['ipv4']['address'] }}:{{ neutron_server_port }} check inter 2000 rise 2 fall 5
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
listen cinder_api
|
||||||
|
bind {{ kolla_internal_address }}:{{ cinder_api_port }}
|
||||||
|
{% for host in groups['cinder-api'] %}
|
||||||
|
server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + api_interface]['ipv4']['address'] }}:{{ cinder_api_port }} check inter 2000 rise 2 fall 5
|
||||||
|
{% endfor %}
|
||||||
|
@ -26,3 +26,7 @@
|
|||||||
- hosts: [neutron-server, neutron-agents, compute]
|
- hosts: [neutron-server, neutron-agents, compute]
|
||||||
roles:
|
roles:
|
||||||
- { role: neutron, tags: neutron, when: enable_neutron | bool }
|
- { role: neutron, tags: neutron, when: enable_neutron | bool }
|
||||||
|
|
||||||
|
- hosts: [cinder-api, cinder-backup, cinder-scheduler, cinder-volume]
|
||||||
|
roles:
|
||||||
|
- { role: cinder, tags: cinder, when: enable_cinder | bool }
|
||||||
|
0
etc/kolla/config/cinder.conf
Normal file
0
etc/kolla/config/cinder.conf
Normal file
0
etc/kolla/config/cinder/cinder-api.conf
Normal file
0
etc/kolla/config/cinder/cinder-api.conf
Normal file
0
etc/kolla/config/cinder/cinder-backup.conf
Normal file
0
etc/kolla/config/cinder/cinder-backup.conf
Normal file
0
etc/kolla/config/cinder/cinder-scheduler.conf
Normal file
0
etc/kolla/config/cinder/cinder-scheduler.conf
Normal file
0
etc/kolla/config/cinder/cinder-volume.conf
Normal file
0
etc/kolla/config/cinder/cinder-volume.conf
Normal file
@ -33,6 +33,7 @@ nova_api_port: "8774"
|
|||||||
|
|
||||||
neutron_server_port: "9696"
|
neutron_server_port: "9696"
|
||||||
|
|
||||||
|
cinder_api_port: "8776"
|
||||||
|
|
||||||
# These roles are required for Kolla to be operation, however a savvy deployer
|
# These roles are required for Kolla to be operation, however a savvy deployer
|
||||||
# could disable some of these required roles and run thier own services.
|
# could disable some of these required roles and run thier own services.
|
||||||
|
@ -93,3 +93,10 @@ openstack_auth_v2:
|
|||||||
# RabbitMQ options
|
# RabbitMQ options
|
||||||
####################
|
####################
|
||||||
rabbitmq_user: "openstack"
|
rabbitmq_user: "openstack"
|
||||||
|
|
||||||
|
|
||||||
|
#################################
|
||||||
|
## Cinder - Block Storage options
|
||||||
|
#################################
|
||||||
|
enable_cinder: "no"
|
||||||
|
cinder_volume_driver: "lvm"
|
||||||
|
@ -33,6 +33,9 @@ neutron_keystone_password: "password"
|
|||||||
|
|
||||||
metadata_secret: "password"
|
metadata_secret: "password"
|
||||||
|
|
||||||
|
cinder_database_password: "password"
|
||||||
|
cinder_keystone_password: "password"
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# RabbitMQ options
|
# RabbitMQ options
|
||||||
####################
|
####################
|
||||||
|
Loading…
Reference in New Issue
Block a user