Merge "Add the manila service to OSA"
This commit is contained in:
commit
895337ce81
@ -133,6 +133,10 @@
|
|||||||
src: https://git.openstack.org/openstack/openstack-ansible-os_magnum
|
src: https://git.openstack.org/openstack/openstack-ansible-os_magnum
|
||||||
version: master
|
version: master
|
||||||
trackbranch: master
|
trackbranch: master
|
||||||
|
- name: os_manila
|
||||||
|
scm: git
|
||||||
|
src: https://git.openstack.org/openstack/openstack-ansible-os_manila
|
||||||
|
version: master
|
||||||
- name: os_masakari
|
- name: os_masakari
|
||||||
scm: git
|
scm: git
|
||||||
src: https://git.openstack.org/openstack/openstack-ansible-os_masakari
|
src: https://git.openstack.org/openstack/openstack-ansible-os_masakari
|
||||||
|
@ -150,6 +150,8 @@ OpenStack service roles
|
|||||||
|
|
||||||
- :role_docs:`os_magnum`
|
- :role_docs:`os_magnum`
|
||||||
|
|
||||||
|
- :role_docs:`os_manila`
|
||||||
|
|
||||||
- :role_docs:`os_masakari`
|
- :role_docs:`os_masakari`
|
||||||
|
|
||||||
- :role_docs:`os_neutron`
|
- :role_docs:`os_neutron`
|
||||||
|
@ -232,6 +232,13 @@ The following table lists the commands to restart an OpenStack service.
|
|||||||
# service cinder-backup restart
|
# service cinder-backup restart
|
||||||
# service cinder-scheduler restart
|
# service cinder-scheduler restart
|
||||||
# service cinder-volume restart
|
# service cinder-volume restart
|
||||||
|
* - Block Storage service
|
||||||
|
- .. code-block:: console
|
||||||
|
|
||||||
|
# service manila-api restart
|
||||||
|
# service manila-data restart
|
||||||
|
# service manila-share restart
|
||||||
|
# service manila-scheduler restart
|
||||||
* - Object Storage service
|
* - Object Storage service
|
||||||
- .. code-block:: console
|
- .. code-block:: console
|
||||||
|
|
||||||
|
@ -243,6 +243,15 @@
|
|||||||
<td>✔</td>
|
<td>✔</td>
|
||||||
<td>✔</td>
|
<td>✔</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr class="warning">
|
||||||
|
<td>os_manila</td>
|
||||||
|
<td>Stein</td>
|
||||||
|
<td>Incubated</td>
|
||||||
|
<td>✔</td>
|
||||||
|
<td>✘</td>
|
||||||
|
<td>✘</td>
|
||||||
|
<td>✘</td>
|
||||||
|
</tr>
|
||||||
<tr class="warning">
|
<tr class="warning">
|
||||||
<td>os_masakari</td>
|
<td>os_masakari</td>
|
||||||
<td>Stein</td>
|
<td>Stein</td>
|
||||||
|
@ -7,6 +7,7 @@ OpenStack has multiple storage realms to consider:
|
|||||||
* Object Storage (swift)
|
* Object Storage (swift)
|
||||||
* Image storage (glance)
|
* Image storage (glance)
|
||||||
* Ephemeral storage (nova)
|
* Ephemeral storage (nova)
|
||||||
|
* Filesystem storage (manila)
|
||||||
|
|
||||||
Block Storage (cinder)
|
Block Storage (cinder)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@ -163,3 +164,17 @@ the storage device, the Compute host, the hypervisor, and the instance.
|
|||||||
+----+---------------------------------------------------------------------+
|
+----+---------------------------------------------------------------------+
|
||||||
| 3 | The hypervisor presents the disk as a device to the instance. |
|
| 3 | The hypervisor presents the disk as a device to the instance. |
|
||||||
+----+---------------------------------------------------------------------+
|
+----+---------------------------------------------------------------------+
|
||||||
|
|
||||||
|
Filesystem storage (manila)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The shared filesystem service (manila) can be configured to provide file
|
||||||
|
systems on a variety of storage back ends as supported by the
|
||||||
|
`manila_store drivers`_.
|
||||||
|
|
||||||
|
.. figure:: ../figures/manila-overview.png
|
||||||
|
:width: 600px
|
||||||
|
|
||||||
|
The diagram shows a basic overview of the manila service.
|
||||||
|
|
||||||
|
.. _manila_store drivers: https://docs.openstack.org/manila/latest/configuration/shared-file-systems/drivers.html
|
||||||
|
BIN
doc/source/reference/figures/manila-overview.png
Normal file
BIN
doc/source/reference/figures/manila-overview.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 75 KiB |
7
etc/openstack_deploy/conf.d/manila.yml.aio
Normal file
7
etc/openstack_deploy/conf.d/manila.yml.aio
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
manila-infra_hosts:
|
||||||
|
aio1:
|
||||||
|
ip: 172.29.236.100
|
||||||
|
|
||||||
|
manila-data_hosts:
|
||||||
|
aio1:
|
||||||
|
ip: 172.29.236.100
|
16
etc/openstack_deploy/conf.d/manila.yml.example
Normal file
16
etc/openstack_deploy/conf.d/manila.yml.example
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# The infra nodes that will be running the manila services
|
||||||
|
manila-infra_hosts:
|
||||||
|
infra1:
|
||||||
|
ip: 172.20.236.111
|
||||||
|
infra2:
|
||||||
|
ip: 172.20.236.112
|
||||||
|
infra3:
|
||||||
|
ip: 172.20.236.113
|
||||||
|
|
||||||
|
manila-data_hosts:
|
||||||
|
data1:
|
||||||
|
ip: 172.20.236.121
|
||||||
|
data2:
|
||||||
|
ip: 172.20.236.122
|
||||||
|
data3:
|
||||||
|
ip: 172.20.236.123
|
@ -69,6 +69,12 @@ container_skel:
|
|||||||
magnum_container:
|
magnum_container:
|
||||||
properties:
|
properties:
|
||||||
is_metal: true
|
is_metal: true
|
||||||
|
manila_container:
|
||||||
|
properties:
|
||||||
|
is_metal: true
|
||||||
|
manila_data_container:
|
||||||
|
properties:
|
||||||
|
is_metal: true
|
||||||
masakari_monitors_container:
|
masakari_monitors_container:
|
||||||
properties:
|
properties:
|
||||||
is_metal: true
|
is_metal: true
|
||||||
|
@ -716,6 +716,79 @@
|
|||||||
# rbd_secret_uuid: "{{ cinder_ceph_client_uuid }}"
|
# rbd_secret_uuid: "{{ cinder_ceph_client_uuid }}"
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
# Example:
|
||||||
|
#
|
||||||
|
# Use the cephfs (NATIVE) backend with manila:
|
||||||
|
#
|
||||||
|
# container_vars:
|
||||||
|
# manila_default_share_type: cephfs1
|
||||||
|
# manila_backends:
|
||||||
|
# cephfs1:
|
||||||
|
# driver_handles_share_servers: False
|
||||||
|
# share_backend_name: CEPHFS1
|
||||||
|
# share_driver: manila.share.drivers.cephfs.driver.CephFSDriver
|
||||||
|
# cephfs_conf_path: /etc/ceph/ceph.conf
|
||||||
|
# cephfs_auth_id: manila
|
||||||
|
# cephfs_cluster_name: ceph
|
||||||
|
# cephfs_enable_snapshots: False
|
||||||
|
# filter_function: "share.size >= 0"
|
||||||
|
# goodness_function: "share.size >= 0"
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Use the cephfs + NFS backend with manila:
|
||||||
|
#
|
||||||
|
# container_vars:
|
||||||
|
# manila_default_share_type: cephfsnfs1
|
||||||
|
# manila_backends:
|
||||||
|
# cephfsnfs1:
|
||||||
|
# driver_handles_share_servers: False
|
||||||
|
# share_backend_name: CEPHFSNFS1
|
||||||
|
# share_driver: manila.share.drivers.cephfs.driver.CephFSDriver
|
||||||
|
# cephfs_ganesha_server_ip: 172.16.24.200
|
||||||
|
# cephfs_protocol_helper_type: NFS
|
||||||
|
# cephfs_conf_path: /etc/ceph/ceph.conf
|
||||||
|
# cephfs_auth_id: manila
|
||||||
|
# filter_function: "share.size >= 0"
|
||||||
|
# goodness_function: "share.size >= 0"
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
#
|
||||||
|
# Use the lvm backend with manila:
|
||||||
|
#
|
||||||
|
# container_vars:
|
||||||
|
# manila_default_share_type: nfs-share1
|
||||||
|
# manila_backends:
|
||||||
|
# nfs-share1:
|
||||||
|
# share_backend_name: NFS_SHARE1
|
||||||
|
# share_driver: manila.share.drivers.lvm.LVMShareDriver
|
||||||
|
# driver_handles_share_servers: False
|
||||||
|
# lvm_share_volume_group: manila-shares
|
||||||
|
# lvm_share_export_ip: "10.1.1.1"
|
||||||
|
# filter_function: "share.size >= 0"
|
||||||
|
# goodness_function: "share.size >= 0"
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
#
|
||||||
|
# Use the generic backend with manila:
|
||||||
|
#
|
||||||
|
# container_vars:
|
||||||
|
# manila_default_share_type: generic
|
||||||
|
# manila_backends:
|
||||||
|
# generic:
|
||||||
|
# share_backend_name: GENERIC
|
||||||
|
# share_driver: manila.share.drivers.generic.GenericShareDriver
|
||||||
|
# driver_handles_share_servers: True
|
||||||
|
# service_instance_flavor_id: 100
|
||||||
|
# service_image_name: manila-service-image
|
||||||
|
# service_instance_user: manila
|
||||||
|
# service_instance_password: manila
|
||||||
|
# interface_driver: manila.network.linux.interface.BridgeInterfaceDriver
|
||||||
|
# filter_function: "share.size >= 0"
|
||||||
|
# goodness_function: "share.size >= 0"
|
||||||
|
#
|
||||||
# --------
|
# --------
|
||||||
#
|
#
|
||||||
# Level: log_hosts (optional)
|
# Level: log_hosts (optional)
|
||||||
|
@ -274,3 +274,14 @@ congress_service_password:
|
|||||||
## panko passwords
|
## panko passwords
|
||||||
panko_container_db_password:
|
panko_container_db_password:
|
||||||
panko_service_password:
|
panko_service_password:
|
||||||
|
|
||||||
|
## manila passwords
|
||||||
|
manila_container_mysql_password:
|
||||||
|
manila_oslomsg_rpc_password:
|
||||||
|
manila_profiler_hmac_key:
|
||||||
|
#NOTE: Please uncomment those
|
||||||
|
# if you want to split rpc and notify users
|
||||||
|
# Please also wire the appropriate userid in
|
||||||
|
# your user variables.
|
||||||
|
#manila_oslomsg_notify_password:
|
||||||
|
manila_service_password:
|
||||||
|
57
inventory/env.d/manila.yml
Normal file
57
inventory/env.d/manila.yml
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
# Copyright 2019, Rackspace US, Inc.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
component_skel:
|
||||||
|
manila_api:
|
||||||
|
belongs_to:
|
||||||
|
- manila_all
|
||||||
|
manila_scheduler:
|
||||||
|
belongs_to:
|
||||||
|
- manila_all
|
||||||
|
manila_data:
|
||||||
|
belongs_to:
|
||||||
|
- manila_all
|
||||||
|
manila_share:
|
||||||
|
belongs_to:
|
||||||
|
- manila_all
|
||||||
|
|
||||||
|
container_skel:
|
||||||
|
manila_container:
|
||||||
|
belongs_to:
|
||||||
|
- manila-infra_containers
|
||||||
|
contains:
|
||||||
|
- manila_api
|
||||||
|
- manila_scheduler
|
||||||
|
manila_data_container:
|
||||||
|
belongs_to:
|
||||||
|
- manila-data_containers
|
||||||
|
contains:
|
||||||
|
- manila_data
|
||||||
|
- manila_share
|
||||||
|
properties:
|
||||||
|
is_metal: true
|
||||||
|
|
||||||
|
physical_skel:
|
||||||
|
manila-data_containers:
|
||||||
|
belongs_to:
|
||||||
|
- all_containers
|
||||||
|
manila-data_hosts:
|
||||||
|
belongs_to:
|
||||||
|
- hosts
|
||||||
|
manila-infra_containers:
|
||||||
|
belongs_to:
|
||||||
|
- all_containers
|
||||||
|
manila-infra_hosts:
|
||||||
|
belongs_to:
|
||||||
|
- hosts
|
@ -266,6 +266,15 @@ haproxy_default_services:
|
|||||||
haproxy_backend_options:
|
haproxy_backend_options:
|
||||||
- "httpchk GET / HTTP/1.0\\r\\nUser-agent:\\ osa-haproxy-healthcheck"
|
- "httpchk GET / HTTP/1.0\\r\\nUser-agent:\\ osa-haproxy-healthcheck"
|
||||||
haproxy_service_enabled: "{{ groups['magnum_all'] is defined and groups['magnum_all'] | length > 0 }}"
|
haproxy_service_enabled: "{{ groups['magnum_all'] is defined and groups['magnum_all'] | length > 0 }}"
|
||||||
|
- service:
|
||||||
|
haproxy_service_name: manila
|
||||||
|
haproxy_backend_nodes: "{{ groups['manila_all'] | default([]) }}"
|
||||||
|
haproxy_ssl: "{{ haproxy_ssl }}"
|
||||||
|
haproxy_port: 8786
|
||||||
|
haproxy_balance_type: http
|
||||||
|
haproxy_backend_options:
|
||||||
|
- "httpchk HEAD / HTTP/1.0\\r\\nUser-agent:\\ osa-haproxy-healthcheck"
|
||||||
|
haproxy_service_enabled: "{{ groups['manila_all'] is defined and groups['manila_all'] | length > 0 }}"
|
||||||
- service:
|
- service:
|
||||||
haproxy_service_name: masakari_api
|
haproxy_service_name: masakari_api
|
||||||
haproxy_backend_nodes: "{{ groups['masakari_api'] | default([]) }}"
|
haproxy_backend_nodes: "{{ groups['masakari_api'] | default([]) }}"
|
||||||
|
@ -19,6 +19,7 @@ horizon_enable_cinder_backup: "{{ hostvars['localhost']['cinder_service_backup_p
|
|||||||
horizon_enable_heat_ui: "{{ (groups['heat_all'] is defined) and (groups['heat_all'] | length > 0) }}"
|
horizon_enable_heat_ui: "{{ (groups['heat_all'] is defined) and (groups['heat_all'] | length > 0) }}"
|
||||||
horizon_enable_ironic_ui: "{{ (groups['ironic_all'] is defined) and (groups['ironic_all'] | length > 0) }}"
|
horizon_enable_ironic_ui: "{{ (groups['ironic_all'] is defined) and (groups['ironic_all'] | length > 0) }}"
|
||||||
horizon_enable_magnum_ui: "{{ (groups['magnum_all'] is defined) and (groups['magnum_all'] | length > 0) }}"
|
horizon_enable_magnum_ui: "{{ (groups['magnum_all'] is defined) and (groups['magnum_all'] | length > 0) }}"
|
||||||
|
horizon_enable_manila_ui: "{{ (groups['manila_all'] is defined) and (groups['manila_all'] | length > 0) }}"
|
||||||
horizon_enable_masakari_ui: "{{ (groups['masakari_all'] is defined) and (groups['masakari_all'] | length > 0) }}"
|
horizon_enable_masakari_ui: "{{ (groups['masakari_all'] is defined) and (groups['masakari_all'] | length > 0) }}"
|
||||||
horizon_enable_designate_ui: "{{ (groups['designate_all'] is defined) and (groups['designate_all'] | length > 0) }}"
|
horizon_enable_designate_ui: "{{ (groups['designate_all'] is defined) and (groups['designate_all'] | length > 0) }}"
|
||||||
horizon_enable_octavia_ui: "{{ (groups['octavia-infra_all'] is defined) and (groups['octavia-infra_all'] | length > 0) }}"
|
horizon_enable_octavia_ui: "{{ (groups['octavia-infra_all'] is defined) and (groups['octavia-infra_all'] | length > 0) }}"
|
||||||
|
33
inventory/group_vars/manila_all.yml
Normal file
33
inventory/group_vars/manila_all.yml
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
---
|
||||||
|
# Copyright 2019, Rackspace US, Inc.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
# Set the available protocol list
|
||||||
|
manila_enabled_share_protocols:
|
||||||
|
- NFS
|
||||||
|
- CIFS
|
||||||
|
- CEPHFS
|
||||||
|
|
||||||
|
_manila_default_share_type: "{{ (manila_backends | default({})).keys() }}"
|
||||||
|
manila_default_share_type: "{{ ((_manila_default_share_type | length) > 0) | ternary(_manila_default_share_type[0], null) }}"
|
||||||
|
|
||||||
|
# V1 api config
|
||||||
|
manila_service_publicuri: "{{ openstack_service_publicuri_proto|default(manila_service_proto) }}://{{ external_lb_vip_address }}:{{ manila_service_port }}"
|
||||||
|
manila_service_internaluri: "{{ openstack_service_internaluri_proto|default(manila_service_proto) }}://{{ internal_lb_vip_address }}:{{ manila_service_port }}"
|
||||||
|
manila_service_adminuri: "{{ openstack_service_adminuri_proto|default(manila_service_proto) }}://{{ internal_lb_vip_address }}:{{ manila_service_port }}"
|
||||||
|
|
||||||
|
# V2 api config
|
||||||
|
manila_service_v2_publicuri: "{{ openstack_service_publicuri_proto|default(manila_service_proto) }}://{{ external_lb_vip_address }}:{{ manila_service_v2_port }}"
|
||||||
|
manila_service_v2_internaluri: "{{ openstack_service_internaluri_proto|default(manila_service_proto) }}://{{ internal_lb_vip_address }}:{{ manila_service_v2_port }}"
|
||||||
|
manila_service_v2_adminuri: "{{ openstack_service_adminuri_proto|default(manila_service_proto) }}://{{ internal_lb_vip_address }}:{{ manila_service_v2_port }}"
|
@ -135,6 +135,12 @@ ironic_server
|
|||||||
|
|
||||||
[magnum_all]
|
[magnum_all]
|
||||||
|
|
||||||
|
[manila_all:children]
|
||||||
|
manila_api
|
||||||
|
manila_scheduler
|
||||||
|
manila_data
|
||||||
|
manila_share
|
||||||
|
|
||||||
[masakari_all:children]
|
[masakari_all:children]
|
||||||
masakari_api
|
masakari_api
|
||||||
masakari_engine
|
masakari_engine
|
||||||
|
@ -147,6 +147,13 @@ keystone_git_project_group: keystone_all
|
|||||||
keystone_git_track_branch: stable/stein
|
keystone_git_track_branch: stable/stein
|
||||||
|
|
||||||
|
|
||||||
|
## Manila service
|
||||||
|
manila_git_repo: https://git.openstack.org/openstack/manila
|
||||||
|
manila_git_install_branch: 54bce0a9ca07952cd97cd2bc8641f81ab2c49af5 # HEAD as of 22.03.2019
|
||||||
|
manila_git_project_group: manila_all
|
||||||
|
manila_git_track_branch: master
|
||||||
|
|
||||||
|
|
||||||
## Neutron service
|
## Neutron service
|
||||||
neutron_git_repo: https://git.openstack.org/openstack/neutron
|
neutron_git_repo: https://git.openstack.org/openstack/neutron
|
||||||
neutron_git_install_branch: 4da4d5e0f0c2eb49b8929119776d16504229a4c3 # HEAD as of 29.03.2019
|
neutron_git_install_branch: 4da4d5e0f0c2eb49b8929119776d16504229a4c3 # HEAD as of 29.03.2019
|
||||||
|
89
playbooks/os-manila-install.yml
Normal file
89
playbooks/os-manila-install.yml
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
---
|
||||||
|
# Copyright 2018, Rackspace US, Inc.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
- name: Install manila services
|
||||||
|
hosts: "manila_all"
|
||||||
|
gather_facts: "{{ osa_gather_facts | default(True) }}"
|
||||||
|
user: root
|
||||||
|
environment: "{{ deployment_environment_variables | default({}) }}"
|
||||||
|
vars_files:
|
||||||
|
- "defaults/repo_packages/openstack_services.yml"
|
||||||
|
- "defaults/{{ install_method }}_install.yml"
|
||||||
|
tags:
|
||||||
|
- manila
|
||||||
|
pre_tasks:
|
||||||
|
# In order to ensure that any container, software or
|
||||||
|
# config file changes which causes a container/service
|
||||||
|
# restart do not cause an unexpected outage, we drain
|
||||||
|
# the load balancer back end for this container.
|
||||||
|
- include_tasks: common-tasks/haproxy-endpoint-manage.yml
|
||||||
|
vars:
|
||||||
|
haproxy_backend: manila_api-back
|
||||||
|
haproxy_state: disabled
|
||||||
|
when:
|
||||||
|
- "'manila_api' in group_names"
|
||||||
|
- "groups['manila_api'] | length > 1"
|
||||||
|
|
||||||
|
- name: Configure container (non-nfs)
|
||||||
|
include_tasks: "common-tasks/os-{{ container_tech | default('lxc') }}-container-setup.yml"
|
||||||
|
vars:
|
||||||
|
list_of_bind_mounts: "{{ manila_container_bind_mounts }}"
|
||||||
|
when:
|
||||||
|
- not is_metal
|
||||||
|
- manila_default_store == "file"
|
||||||
|
- (manila_nfs_client is not defined) or (manila_nfs_client | length == 0)
|
||||||
|
|
||||||
|
- name: Configure container (nfs)
|
||||||
|
include_tasks: "common-tasks/os-{{ container_tech | default('lxc') }}-container-setup.yml"
|
||||||
|
when:
|
||||||
|
- not is_metal
|
||||||
|
- (manila_default_store != "file") or (manila_nfs_client is defined)
|
||||||
|
|
||||||
|
- name: Configure log directories (on metal)
|
||||||
|
include_tasks: common-tasks/os-log-dir-setup.yml
|
||||||
|
vars:
|
||||||
|
log_dirs:
|
||||||
|
- src: "/openstack/log/{{ inventory_hostname }}-manila"
|
||||||
|
dest: "/var/log/manila"
|
||||||
|
|
||||||
|
- include_tasks: common-tasks/unbound-clients.yml
|
||||||
|
when:
|
||||||
|
- hostvars['localhost']['resolvconf_enabled'] | bool
|
||||||
|
|
||||||
|
roles:
|
||||||
|
- role: "os_manila"
|
||||||
|
when:
|
||||||
|
- inventory_hostname in groups['manila_api']
|
||||||
|
- role: "os_manila"
|
||||||
|
when:
|
||||||
|
- not inventory_hostname in groups['manila_api']
|
||||||
|
|
||||||
|
post_tasks:
|
||||||
|
- include_tasks: "common-tasks/rsyslog-client.yml"
|
||||||
|
vars:
|
||||||
|
rsyslog_client_log_rotate_file: manila_log_rotate
|
||||||
|
rsyslog_client_log_dir: "/var/log/manila"
|
||||||
|
rsyslog_client_config_name: "99-manila-rsyslog-client.conf"
|
||||||
|
|
||||||
|
# Now that container changes are done, we can set
|
||||||
|
# the load balancer back end for this container
|
||||||
|
# to available again.
|
||||||
|
- include_tasks: common-tasks/haproxy-endpoint-manage.yml
|
||||||
|
vars:
|
||||||
|
haproxy_backend: manila_api-back
|
||||||
|
haproxy_state: enabled
|
||||||
|
when:
|
||||||
|
- "'manila_api' in group_names"
|
||||||
|
- "groups['manila_api'] | length > 1"
|
@ -35,6 +35,7 @@
|
|||||||
- import_playbook: os-tacker-install.yml
|
- import_playbook: os-tacker-install.yml
|
||||||
- import_playbook: os-blazar-install.yml
|
- import_playbook: os-blazar-install.yml
|
||||||
- import_playbook: os-masakari-install.yml
|
- import_playbook: os-masakari-install.yml
|
||||||
|
- import_playbook: os-manila-install.yml
|
||||||
|
|
||||||
# This is not an OpenStack service, but integrates with Keystone and must be
|
# This is not an OpenStack service, but integrates with Keystone and must be
|
||||||
# deployed afterward.
|
# deployed afterward.
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- The os_horizon role now has support for the horizon manila-ui dashboard. The
|
||||||
|
dashboard may be enabled by setting ``horizon_enable_manila_ui`` to ``True``
|
||||||
|
in ``/etc/openstack_deploy/user_variables.yml``.
|
@ -66,6 +66,11 @@ bootstrap_host_loopback_nova: yes
|
|||||||
# Size of the Nova loopback disk in gigabytes (GB).
|
# Size of the Nova loopback disk in gigabytes (GB).
|
||||||
bootstrap_host_loopback_nova_size: 1024
|
bootstrap_host_loopback_nova_size: 1024
|
||||||
#
|
#
|
||||||
|
# Boolean option to deploy the loopback disk for Manila
|
||||||
|
bootstrap_host_loopback_manila: yes
|
||||||
|
# Size of the Manila loopback disk in gigabytes (GB).
|
||||||
|
bootstrap_host_loopback_manila_size: 1024
|
||||||
|
#
|
||||||
# Boolean option to deploy the loopback disk for machines
|
# Boolean option to deploy the loopback disk for machines
|
||||||
bootstrap_host_loopback_machines: yes
|
bootstrap_host_loopback_machines: yes
|
||||||
# Size of the machines loopback disk in gigabytes (GB).
|
# Size of the machines loopback disk in gigabytes (GB).
|
||||||
|
@ -110,6 +110,13 @@
|
|||||||
tags:
|
tags:
|
||||||
- prepare-loopback
|
- prepare-loopback
|
||||||
|
|
||||||
|
# Prepare the Manila data storage loopback disks
|
||||||
|
- include: prepare_loopback_manila.yml
|
||||||
|
when:
|
||||||
|
- bootstrap_host_loopback_manila | bool
|
||||||
|
tags:
|
||||||
|
- prepare-loopback
|
||||||
|
|
||||||
# Prepare the Ceph cluster UUID and loopback disks
|
# Prepare the Ceph cluster UUID and loopback disks
|
||||||
- include: prepare_ceph.yml
|
- include: prepare_ceph.yml
|
||||||
when:
|
when:
|
||||||
|
@ -166,6 +166,9 @@
|
|||||||
- src: user_variables_barbican.yml.j2
|
- src: user_variables_barbican.yml.j2
|
||||||
dest: user_variables_barbican.yml
|
dest: user_variables_barbican.yml
|
||||||
condition: "{{ 'barbican' in bootstrap_host_services }}"
|
condition: "{{ 'barbican' in bootstrap_host_services }}"
|
||||||
|
- src: user_variables_manila.yml.j2
|
||||||
|
dest: user_variables_manila.yml
|
||||||
|
condition: "{{ 'manila' in bootstrap_host_services }}"
|
||||||
|
|
||||||
- name: Copy modified cinder-volume env.d file for ceph scenario
|
- name: Copy modified cinder-volume env.d file for ceph scenario
|
||||||
copy:
|
copy:
|
||||||
|
77
tests/roles/bootstrap-host/tasks/prepare_loopback_manila.yml
Normal file
77
tests/roles/bootstrap-host/tasks/prepare_loopback_manila.yml
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
---
|
||||||
|
# Copyright 2015, Rackspace US, Inc.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
- name: Create sparse manila file
|
||||||
|
command: "truncate -s {{ bootstrap_host_loopback_manila_size }}G /openstack/manila.img"
|
||||||
|
args:
|
||||||
|
creates: /openstack/manila.img
|
||||||
|
register: manila_create
|
||||||
|
tags:
|
||||||
|
- manila-file-create
|
||||||
|
|
||||||
|
- name: Run the systemd service role
|
||||||
|
include_role:
|
||||||
|
name: systemd_service
|
||||||
|
private: true
|
||||||
|
vars:
|
||||||
|
systemd_services:
|
||||||
|
- service_name: "loop-manila"
|
||||||
|
config_overrides:
|
||||||
|
Unit:
|
||||||
|
Description: no
|
||||||
|
After: systemd-udev-settle.service
|
||||||
|
Before: lvm2-activation-early.service
|
||||||
|
Wants: systemd-udev-settle.service
|
||||||
|
Service:
|
||||||
|
RemainAfterExit: yes
|
||||||
|
service_type: oneshot
|
||||||
|
execstarts:
|
||||||
|
- /bin/bash -c "/sbin/losetup $(/sbin/losetup -f) /openstack/manila.img"
|
||||||
|
- /sbin/pvscan
|
||||||
|
execstops:
|
||||||
|
- /bin/bash -c "losetup -d $(losetup -l | awk '/manila.img/ {print $1}')"
|
||||||
|
enabled: yes
|
||||||
|
state: started
|
||||||
|
systemd_tempd_prefix: openstack
|
||||||
|
tags:
|
||||||
|
- manila-config
|
||||||
|
|
||||||
|
- name: Get loopback device
|
||||||
|
shell: "losetup -l | awk '/manila.img/ {print $1}'"
|
||||||
|
changed_when: false
|
||||||
|
register: manila_losetup
|
||||||
|
tags:
|
||||||
|
- skip_ansible_lint
|
||||||
|
|
||||||
|
- name: Make LVM physical volume on the manila device
|
||||||
|
shell: "pvcreate {{ manila_losetup.stdout }} && touch /openstack/manila.pvcreate"
|
||||||
|
args:
|
||||||
|
creates: "/openstack/manila.pvcreate"
|
||||||
|
tags:
|
||||||
|
- skip_ansible_lint
|
||||||
|
- manila-lvm-pv
|
||||||
|
|
||||||
|
- name: Run pvscan
|
||||||
|
command: "pvscan"
|
||||||
|
changed_when: false
|
||||||
|
tags:
|
||||||
|
- manila-lvm-pv
|
||||||
|
|
||||||
|
- name: Add manila-shares volume group
|
||||||
|
lvg:
|
||||||
|
vg: manila-shares
|
||||||
|
pvs: "{{ manila_losetup.stdout }}"
|
||||||
|
tags:
|
||||||
|
- manila-lvm-vg
|
@ -0,0 +1,47 @@
|
|||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
tempest_plugins:
|
||||||
|
- name: manila-tempest-plugin
|
||||||
|
repo: https://git.openstack.org/openstack/manila-tempest-plugin
|
||||||
|
branch: master
|
||||||
|
|
||||||
|
tempest_test_whitelist:
|
||||||
|
- manila_tempest_tests.tests.scenario.test_share_basic_ops
|
||||||
|
|
||||||
|
tempest_tempest_conf_overrides:
|
||||||
|
share:
|
||||||
|
image_with_share_tools: manila-service-image
|
||||||
|
image_password: manila
|
||||||
|
enable_protocols: nfs
|
||||||
|
enable_ip_rules_for_protocols: nfs
|
||||||
|
enable_ro_access_level_for_protocols: nfs
|
||||||
|
suppress_errors_in_cleanup: true
|
||||||
|
share_creation_retry_number: 3
|
||||||
|
run_ipv6_tests: False
|
||||||
|
|
||||||
|
manila_backends:
|
||||||
|
nfs-share1:
|
||||||
|
share_backend_name: NFS_SHARE1
|
||||||
|
share_driver: manila.share.drivers.lvm.LVMShareDriver
|
||||||
|
driver_handles_share_servers: False
|
||||||
|
lvm_share_volume_group: manila-shares
|
||||||
|
lvm_share_export_ip: "172.29.244.100"
|
||||||
|
generic:
|
||||||
|
share_backend_name: GENERIC
|
||||||
|
share_driver: manila.share.drivers.generic.GenericShareDriver
|
||||||
|
driver_handles_share_servers: True
|
||||||
|
service_instance_flavor_id: 100
|
||||||
|
service_image_name: manila-service-image
|
||||||
|
service_instance_user: manila
|
||||||
|
service_instance_password: manila
|
||||||
|
interface_driver: manila.network.linux.interface.BridgeInterfaceDriver
|
@ -278,6 +278,19 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
|
|||||||
'magnum-infra_hosts',
|
'magnum-infra_hosts',
|
||||||
'magnum_all',
|
'magnum_all',
|
||||||
'magnum_container',
|
'magnum_container',
|
||||||
|
'manila_all',
|
||||||
|
'manila_api',
|
||||||
|
'manila_container',
|
||||||
|
'manila_data',
|
||||||
|
'manila-data_all',
|
||||||
|
'manila_data_container',
|
||||||
|
'manila-data_containers',
|
||||||
|
'manila-data_hosts',
|
||||||
|
'manila-infra_all',
|
||||||
|
'manila-infra_containers',
|
||||||
|
'manila-infra_hosts',
|
||||||
|
'manila_scheduler',
|
||||||
|
'manila_share',
|
||||||
'masakari_all',
|
'masakari_all',
|
||||||
'masakari_api',
|
'masakari_api',
|
||||||
'masakari_api_container',
|
'masakari_api_container',
|
||||||
|
Loading…
Reference in New Issue
Block a user