Update manila so that it works with cephfs
This change updates manila so that it can function with cephfs. While cephfs was assumed to work these changes solidify support and tune up the role. Change-Id: I4d95bfc15d09b7b7c0b997d7eab91509b0c63885 Signed-off-by: cloudnull <kevin@cloudnull.com>
This commit is contained in:
parent
f9bfb7f0bc
commit
b9809ef89d
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2014, Rackspace US, Inc.
|
||||
# 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.
|
||||
@ -28,30 +28,17 @@ manila_install_method: "source"
|
||||
|
||||
manila_git_repo: https://git.openstack.org/openstack/manila
|
||||
manila_git_install_branch: master
|
||||
manila_developer_mode: false
|
||||
manila_developer_constraints:
|
||||
manila_upper_constraints_url: "{{ requirements_git_url | default('https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=' ~ requirements_git_install_branch | default('master')) }}"
|
||||
manila_git_constraints:
|
||||
- "git+{{ manila_git_repo }}@{{ manila_git_install_branch }}#egg=manila"
|
||||
- "--constraint {{ barbican_upper_constraints_url }}"
|
||||
|
||||
# TODO(odyssey4me):
|
||||
# This can be simplified once all the roles are using
|
||||
# python_venv_build. We can then switch to using a
|
||||
# set of constraints in pip.conf inside the venv,
|
||||
# perhaps prepared by giving a giving a list of
|
||||
# constraints to the role.
|
||||
manila_pip_install_args: >-
|
||||
{{ manila_developer_mode | ternary(pip_install_developer_constraints | default('--constraint /opt/developer-pip-constraints.txt'), '') }}
|
||||
{{ (pip_install_upper_constraints is defined) | ternary('--constraint ' + pip_install_upper_constraints | default(''), '') }}
|
||||
{{ pip_install_options | default('') }}
|
||||
manila_pip_install_args: "{{ pip_install_options | default('') }}"
|
||||
|
||||
# Name of the virtual env to deploy into
|
||||
manila_venv_tag: "{{ venv_tag | default('untagged') }}"
|
||||
manila_bin: "{{ _manila_bin }}"
|
||||
|
||||
# venv_download, even when true, will use the fallback method of building the
|
||||
# venv from scratch if the venv download fails.
|
||||
manila_venv_download: "{{ not manila_developer_mode | bool }}"
|
||||
manila_venv_download_url: http://127.0.0.1/venvs/untagged/ubuntu/manila.tgz
|
||||
|
||||
# Enable/Disable Ceilometer
|
||||
manila_ceilometer_enabled: False
|
||||
|
||||
@ -180,8 +167,6 @@ manila_osapi_share_workers: "{{ [[ansible_processor_vcpus|default(2) // 2, 1] |
|
||||
manila_rpc_executor_thread_pool_size: 64
|
||||
manila_rpc_response_timeout: 60
|
||||
|
||||
manila_share_name_template: share-%s
|
||||
|
||||
# osprofiler
|
||||
manila_profiler_enabled: false
|
||||
# manila_profiler_hmac_key is set in user_secrets.yml
|
||||
@ -202,13 +187,13 @@ manila_quota_share_networks: 10
|
||||
# share_backend_name: LVM
|
||||
# share_driver: manila.share.drivers.lvm.LVMShareDriver
|
||||
# driver_handles_share_servers: False
|
||||
# lvm_share_volume_group: manila-shares
|
||||
# lvm_share_volume_group: manila_shares
|
||||
# lvm_share_export_ip: <server-ip>
|
||||
|
||||
# manila_backend_lvm_inuse: True if current host has an lvm backend
|
||||
manila_backend_lvm_inuse: '{{ (manila_backends|default("")|to_json).find("lvm") != -1 }}'
|
||||
manila_backend_lvm_inuse: "{{ (manila_backends | default('') | to_json).find('lvm') != -1 }}"
|
||||
# manila_backend_rbd_inuse: True if the current host has an rbd backend
|
||||
manila_backend_rbd_inuse: '{{ (manila_backends|default("")|to_json).find("manila.share.drivers.cephfs") != -1 }}'
|
||||
manila_backend_rbd_inuse: "{{ (manila_backends | default('')|to_json).find('manila.share.drivers.cephfs') != -1 }}"
|
||||
|
||||
## Policy vars
|
||||
# Provide a list of access controls to update the default policy.json with. These changes will be merged
|
||||
@ -234,6 +219,8 @@ manila_pip_packages:
|
||||
- systemd-python
|
||||
- uwsgi
|
||||
|
||||
manila_user_pip_packages: []
|
||||
|
||||
manila_optional_oslomsg_amqp1_pip_packages:
|
||||
- oslo.messaging[amqp1]
|
||||
|
||||
@ -244,35 +231,34 @@ manila_data_init_overrides: {}
|
||||
|
||||
## Service Name-Group Mapping
|
||||
manila_services:
|
||||
manila-scheduler:
|
||||
manila_scheduler:
|
||||
group: manila_scheduler
|
||||
service_name: manila-scheduler
|
||||
init_config_overrides: "{{ manila_scheduler_init_overrides }}"
|
||||
start_order: 1
|
||||
execstarts: "{{ manila_bin }}/manila-scheduler"
|
||||
execreloads: "/bin/kill -HUP $MAINPID"
|
||||
manila-share:
|
||||
manila_share:
|
||||
group: manila_share
|
||||
service_name: manila-share
|
||||
init_config_overrides: "{{ manila_share_init_overrides }}"
|
||||
start_order: 2
|
||||
execstarts: "{{ manila_bin }}/manila-share"
|
||||
execreloads: "/bin/kill -HUP $MAINPID"
|
||||
manila-data:
|
||||
group: manila_data
|
||||
manila_data:
|
||||
group: manila_share
|
||||
service_name: manila-data
|
||||
init_config_overrides: "{{ manila_data_init_overrides }}"
|
||||
start_order: 3
|
||||
condition: False
|
||||
execstarts: "{{ manila_bin }}/manila-data"
|
||||
execreloads: "/bin/kill -HUP $MAINPID"
|
||||
manila-api:
|
||||
manila_api:
|
||||
group: manila_api
|
||||
service_name: manila-api
|
||||
init_config_overrides: "{{ manila_api_init_overrides }}"
|
||||
start_order: 4
|
||||
execstarts: "{{ manila_uwsgi_bin }}/uwsgi --autoload --ini /etc/uwsgi/manila-api.ini"
|
||||
execreloads: "{{ manila_uwsgi_bin }}/uwsgi --reload /var/run/manila-api/manila-api.pid"
|
||||
execreloads: "{{ manila_uwsgi_bin }}/uwsgi --reload /var/run/manila_api/manila-api.pid"
|
||||
wsgi_overrides: "{{ manila_api_uwsgi_ini_overrides }}"
|
||||
wsgi_app: True
|
||||
wsgi_name: manila-wsgi
|
||||
@ -307,5 +293,3 @@ manila_api_uwsgi_ini_overrides: {}
|
||||
manila_environment_overrides:
|
||||
Service:
|
||||
Environment: "PATH={{ manila_bin }}:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
|
||||
_UUID_regex: "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}"
|
||||
|
@ -5,10 +5,10 @@ Manila role for OpenStack-Ansible
|
||||
This Ansible role installs and configures OpenStack manila.
|
||||
|
||||
The following manila services are managed by the role:
|
||||
* manila-api
|
||||
* manila-scheduler
|
||||
* manila-share
|
||||
* manila-data (untested)
|
||||
* manila_api
|
||||
* manila_scheduler
|
||||
* manila_share
|
||||
* manila_data (untested)
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2014, Rackspace US, Inc.
|
||||
# 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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2018, Rackspace US, Inc.
|
||||
# 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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2017, Rackspace US, Inc.
|
||||
# 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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright 2015, Rackspace US, Inc.
|
||||
# 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.
|
||||
|
106
tasks/main.yml
106
tasks/main.yml
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2014, Rackspace US, Inc.
|
||||
# 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.
|
||||
@ -30,28 +30,49 @@
|
||||
msg: "Switching installation methods for OpenStack services is not supported"
|
||||
when:
|
||||
- ansible_local is defined
|
||||
- ansible_local.openstack_ansible is defined
|
||||
- ansible_local.openstack_ansible.manila is defined
|
||||
- ansible_local.openstack_ansible.manila.install_method is defined
|
||||
- ansible_local.openstack_ansible.manila.install_method != manila_install_method
|
||||
- ansible_local['openstack_ansible'] is defined
|
||||
- ansible_local['openstack_ansible']['manila'] is defined
|
||||
- ansible_local['openstack_ansible']['manila']['install_method'] is defined
|
||||
- ansible_local['openstack_ansible']['manila']['install_method'] != manila_install_method
|
||||
|
||||
- name: Check for rpc password
|
||||
fail:
|
||||
msg: >-
|
||||
The optiton "manila_oslomsg_rpc_password" is not defined
|
||||
when:
|
||||
- manila_oslomsg_rpc_password is undefined
|
||||
|
||||
- name: Check for mysql password
|
||||
fail:
|
||||
msg: >-
|
||||
The optiton "manila_container_mysql_password" is not defined
|
||||
when:
|
||||
- manila_container_mysql_password is undefined
|
||||
|
||||
- name: Check for service password
|
||||
fail:
|
||||
msg: >-
|
||||
The optiton "manila_service_password" is not defined
|
||||
when:
|
||||
- manila_service_password is undefined
|
||||
|
||||
- name: Gather variables for installation method
|
||||
include_vars: "{{ manila_install_method }}_install.yml"
|
||||
tags:
|
||||
- always
|
||||
|
||||
- include: manila_lvm_config.yml
|
||||
- import_tasks: manila_lvm_config.yml
|
||||
when:
|
||||
- "manila_services['manila-share']['group'] in group_names"
|
||||
- "manila_backend_lvm_inuse | bool"
|
||||
- manila_services['manila_share']['group'] in group_names
|
||||
- manila_backend_lvm_inuse | bool
|
||||
tags:
|
||||
- manila-config
|
||||
|
||||
- include: manila_pre_install.yml
|
||||
- import_tasks: manila_pre_install.yml
|
||||
tags:
|
||||
- manila-install
|
||||
|
||||
- include: manila_install.yml
|
||||
- import_tasks: manila_install.yml
|
||||
tags:
|
||||
- manila-install
|
||||
|
||||
@ -62,20 +83,18 @@
|
||||
tags:
|
||||
- manila-config
|
||||
|
||||
- include: manila_cleanup_old_facts.yml
|
||||
when:
|
||||
- "'need_db_sync' in ansible_local['openstack_ansible']['manila']"
|
||||
- import_tasks: manila_cleanup_old_facts.yml
|
||||
tags:
|
||||
- manila-config
|
||||
|
||||
- include: manila_post_install.yml
|
||||
- import_tasks: manila_post_install.yml
|
||||
tags:
|
||||
- manila-config
|
||||
|
||||
- import_tasks: mq_setup.yml
|
||||
- include_tasks: mq_setup.yml
|
||||
when:
|
||||
- "manila_services['manila-api']['group'] in group_names"
|
||||
- "inventory_hostname == ((groups[manila_services['manila-api']['group']]| intersect(ansible_play_hosts)) | list)[0]"
|
||||
- "manila_services['manila_api']['group'] in group_names"
|
||||
- "inventory_hostname == ((groups[manila_services['manila_api']['group']]| intersect(ansible_play_hosts)) | list)[0]"
|
||||
vars:
|
||||
_oslomsg_rpc_setup_host: "{{ manila_oslomsg_rpc_setup_host }}"
|
||||
_oslomsg_rpc_userid: "{{ manila_oslomsg_rpc_userid }}"
|
||||
@ -91,48 +110,53 @@
|
||||
- common-mq
|
||||
- manila-config
|
||||
|
||||
- include: manila_db_setup.yml
|
||||
static: no
|
||||
- include_tasks: manila_db_setup.yml
|
||||
when:
|
||||
- "groups['manila_api'] | length > 0"
|
||||
- "manila_services['manila-api']['group'] in group_names"
|
||||
- "inventory_hostname == ((groups['manila_api'] | intersect(ansible_play_hosts)) | list)[0]"
|
||||
- groups['manila_api'] | length > 0
|
||||
- manila_services['manila_api']['group'] in group_names
|
||||
- inventory_hostname == ((groups['manila_api'] | intersect(ansible_play_hosts)) | list)[0]
|
||||
tags:
|
||||
- manila-config
|
||||
|
||||
- include: manila_uwsgi.yml
|
||||
- import_tasks: manila_uwsgi.yml
|
||||
tags:
|
||||
- manila-config
|
||||
|
||||
- include: manila_service_setup.yml
|
||||
static: no
|
||||
when:
|
||||
- "groups['manila_api'] | length > 0"
|
||||
- "manila_services['manila-api']['group'] in group_names"
|
||||
- "inventory_hostname == ((groups['manila_api'] | intersect(ansible_play_hosts)) | list)[0]"
|
||||
tags:
|
||||
- manila-config
|
||||
|
||||
- name: Include ceph_client role
|
||||
- name: import_tasks ceph_client role
|
||||
include_role:
|
||||
name: ceph_client
|
||||
vars:
|
||||
openstack_service_system_user: "{{ manila_system_user_name }}"
|
||||
openstack_service_venv_bin: "{{ (manila_install_method == 'source') | ternary(manila_bin,'/usr/local/bin') }}"
|
||||
openstack_service_venv_bin: "{{ manila_bin }}"
|
||||
when:
|
||||
- "manila_services['manila-share']['group'] in group_names"
|
||||
- "manila_backend_rbd_inuse | bool"
|
||||
- manila_services['manila_share']['group'] in group_names
|
||||
- manila_backend_rbd_inuse | bool
|
||||
tags:
|
||||
- ceph
|
||||
|
||||
- include_tasks: manila_backend_cephfs.yml
|
||||
when:
|
||||
- (manila_enabled_share_protocols | join('\n')) | regex_search('^ceph.*', multiline=True, ignorecase=True)
|
||||
- manila_services['manila_share']['group'] in group_names
|
||||
with_dict: "{{ _manila_backends | default({}) }}"
|
||||
tags:
|
||||
- manila-config
|
||||
|
||||
- include_tasks: manila_service_setup.yml
|
||||
when:
|
||||
- groups['manila_api'] | length > 0
|
||||
- manila_services['manila_api']['group'] in group_names
|
||||
- inventory_hostname == ((groups['manila_api'] | intersect(ansible_play_hosts)) | list)[0]
|
||||
tags:
|
||||
- manila-config
|
||||
|
||||
- name: Flush handlers
|
||||
meta: flush_handlers
|
||||
|
||||
- include: manila_backends.yml
|
||||
static: no
|
||||
- include_tasks: manila_backends.yml
|
||||
when:
|
||||
- "groups[manila_services['manila-share']['group']] | length > 0"
|
||||
- "manila_services['manila-api']['group'] in group_names"
|
||||
- "inventory_hostname == ((groups[manila_services['manila-api']['group']] | intersect(ansible_play_hosts)) | list)[-1]"
|
||||
- groups[manila_services['manila_share']['group']] | length > 0
|
||||
- manila_services['manila_api']['group'] in group_names
|
||||
- inventory_hostname == ((groups[manila_services['manila_api']['group']] | intersect(ansible_play_hosts)) | list)[-1]
|
||||
tags:
|
||||
- manila-config
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2018, Rackspace US, Inc.
|
||||
# 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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2014, Rackspace US, Inc.
|
||||
# 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.
|
||||
@ -34,7 +34,7 @@
|
||||
- name: Create singular manila_backends variable for all hosts
|
||||
set_fact:
|
||||
_manila_backends: "{{ (_manila_backends | default(manila_backends | default({}))) | combine(hostvars[item]['manila_backends'] | default({})) }}"
|
||||
with_items: "{{ groups[manila_services['manila-share']['group']] }}"
|
||||
with_items: "{{ groups[manila_services['manila_share']['group']] }}"
|
||||
|
||||
- name: Add in manila devices types
|
||||
shell: |
|
||||
@ -42,17 +42,9 @@
|
||||
CLI_OPTIONS="--endpoint-type internalURL {{ ((keystone_service_adminuri_insecure | bool) or (manila_service_internaluri_insecure | bool)) | ternary('--insecure','') }}"
|
||||
if ! {{ manila_bin }}/manila ${CLI_OPTIONS} type-list | grep -q "{{ item.key }}"; then
|
||||
{{ manila_bin }}/manila ${CLI_OPTIONS} type-create "{{ item.key }}" "{{ item.value.driver_handles_share_servers }}"
|
||||
{{ manila_bin }}/manila ${CLI_OPTIONS} type-key "{{ item.key }}" set "share_backend_name={{ item.value.share_backend_name }}"
|
||||
fi
|
||||
args:
|
||||
executable: /bin/bash
|
||||
with_dict: "{{ _manila_backends|default({}) }}"
|
||||
with_dict: "{{ _manila_backends | default({}) }}"
|
||||
changed_when: false
|
||||
|
||||
- include: manila_backend_cephfs.yml
|
||||
static: no
|
||||
when:
|
||||
- (item|default("")|to_json).find("manila.share.drivers.cephfs") != -1
|
||||
- "manila_services['manila-share']['group'] in group_names"
|
||||
with_dict: "{{ _manila_backends|default({}) }}"
|
||||
tags:
|
||||
- manila-config
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2017, Rackspace US, Inc.
|
||||
# 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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2014, Rackspace US, Inc.
|
||||
# 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.
|
||||
@ -21,7 +21,7 @@
|
||||
name: "{{ manila_galera_database }}"
|
||||
state: "present"
|
||||
delegate_to: "{{ manila_db_setup_host }}"
|
||||
no_log: True
|
||||
no_log: true
|
||||
|
||||
- name: Grant access to the DB for the service
|
||||
mysql_user:
|
||||
@ -37,7 +37,7 @@
|
||||
with_items:
|
||||
- "localhost"
|
||||
- "%"
|
||||
no_log: True
|
||||
no_log: true
|
||||
|
||||
- name: Perform a manila DB sync
|
||||
command: "{{ manila_bin }}/manila-manage db sync"
|
||||
@ -50,8 +50,8 @@
|
||||
become: yes
|
||||
become_user: "{{ manila_system_user_name }}"
|
||||
when:
|
||||
- "(manila_all_software_updated | default('no')) | bool"
|
||||
- "ansible_local['openstack_ansible']['manila']['need_online_data_migrations'] | bool"
|
||||
- (manila_all_software_updated | default(false)) | bool
|
||||
- ansible_local['openstack_ansible']['manila']['need_online_data_migrations'] | bool
|
||||
changed_when: false
|
||||
register: data_migrations
|
||||
|
||||
@ -60,7 +60,7 @@
|
||||
dest: "/etc/ansible/facts.d/openstack_ansible.fact"
|
||||
section: manila
|
||||
option: need_online_data_migrations
|
||||
value: False
|
||||
value: false
|
||||
when:
|
||||
- not data_migrations | skipped
|
||||
- data_migrations is succeeded
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2014, Rackspace US, Inc.
|
||||
# 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.
|
||||
@ -36,9 +36,27 @@
|
||||
retries: 5
|
||||
delay: 2
|
||||
|
||||
- name: Install the python venv
|
||||
include_role:
|
||||
name: "python_venv_build"
|
||||
vars:
|
||||
venv_build_distro_package_list: "{{ manila_devel_distro_packages }}"
|
||||
venv_install_destination_path: "{{ manila_bin | dirname }}"
|
||||
venv_pip_install_args: "{{ manila_pip_install_args }}"
|
||||
venv_pip_packages: >-
|
||||
{{ manila_pip_packages |
|
||||
union(manila_user_pip_packages) |
|
||||
union(((manila_oslomsg_amqp1_enabled | bool) | ternary(manila_optional_oslomsg_amqp1_pip_packages, []))) }}
|
||||
venv_facts_when_changed:
|
||||
- section: "manila"
|
||||
option: "venv_tag"
|
||||
value: "{{ manila_venv_tag }}"
|
||||
when: manila_install_method == 'source'
|
||||
|
||||
- name: Install manila packages from PIP
|
||||
include_tasks: manila_install_source.yml
|
||||
when: manila_install_method == 'source'
|
||||
when:
|
||||
- manila_install_method == 'source'
|
||||
|
||||
- name: Run the systemd service role
|
||||
include_role:
|
||||
@ -54,16 +72,22 @@
|
||||
systemd_BlockIOAccounting: true
|
||||
systemd_MemoryAccounting: true
|
||||
systemd_TasksAccounting: true
|
||||
systemd_services:
|
||||
- service_name: "{{ service_var.service_name }}"
|
||||
enabled: yes
|
||||
state: started
|
||||
execstarts: "{{ service_var.execstarts }}"
|
||||
execreloads: "{{ service_var.execreloads | default([]) }}"
|
||||
config_overrides: "{{ manila_environment_overrides | combine(service_var.init_config_overrides) }}"
|
||||
with_items: "{{ filtered_manila_services }}"
|
||||
loop_control:
|
||||
loop_var: service_var
|
||||
systemd_services: |-
|
||||
{% set services = [] %}
|
||||
{% for service in filtered_manila_services %}
|
||||
{%
|
||||
set _ = service.update(
|
||||
{
|
||||
'enabled': 'yes',
|
||||
'state': 'started',
|
||||
'config_overrides': service.init_config_overrides
|
||||
}
|
||||
)
|
||||
%}
|
||||
{% set _ = service.pop('init_config_overrides') -%}
|
||||
{% set _ = services.append(service) -%}
|
||||
{% endfor %}
|
||||
{{ services }}
|
||||
tags:
|
||||
- manila-config
|
||||
- systemd-service
|
||||
@ -78,6 +102,6 @@
|
||||
- "need_online_data_migrations"
|
||||
- "need_service_restart"
|
||||
when:
|
||||
(install_packages | changed) or
|
||||
('need_online_data_migrations' not in ansible_local['openstack_ansible']['manila']) or
|
||||
('need_service_restart' not in ansible_local['openstack_ansible']['manila'])
|
||||
- (install_packages is changed) or
|
||||
('need_online_data_migrations' not in ansible_local['openstack_ansible']['manila']) or
|
||||
('need_service_restart' not in ansible_local['openstack_ansible']['manila'])
|
||||
|
@ -1,71 +0,0 @@
|
||||
---
|
||||
# Copyright 2014, 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.
|
||||
|
||||
# TODO(odyssey4me):
|
||||
# This can be simplified once all the roles are using
|
||||
# python_venv_build. We can then switch to using a
|
||||
# set of constraints in pip.conf inside the venv,
|
||||
# perhaps prepared by giving a giving a list of
|
||||
# constraints to the role.
|
||||
- name: Create developer mode constraint file
|
||||
copy:
|
||||
dest: "/opt/developer-pip-constraints.txt"
|
||||
content: |
|
||||
{% for item in manila_developer_constraints %}
|
||||
{{ item }}
|
||||
{% endfor %}
|
||||
when: manila_developer_mode | bool
|
||||
|
||||
- name: Ensure remote wheel building is disabled in developer mode
|
||||
set_fact:
|
||||
venv_build_host: "{{ ansible_hostname }}"
|
||||
when:
|
||||
- manila_developer_mode | bool
|
||||
|
||||
- name: Install the python venv
|
||||
include_role:
|
||||
name: "python_venv_build"
|
||||
private: yes
|
||||
vars:
|
||||
venv_build_distro_package_list: "{{ manila_devel_distro_packages }}"
|
||||
venv_install_destination_path: "{{ manila_bin | dirname }}"
|
||||
venv_install_distro_package_list: "{{ manila_distro_packages }}"
|
||||
venv_pip_install_args: "{{ manila_pip_install_args }}"
|
||||
venv_pip_packages: >-
|
||||
{{ manila_pip_packages +
|
||||
(manila_oslomsg_amqp1_enabled | bool) | ternary(manila_optional_oslomsg_amqp1_pip_packages, []) }}
|
||||
venv_facts_when_changed:
|
||||
- section: "manila"
|
||||
option: "need_service_restart"
|
||||
value: True
|
||||
- section: "manila"
|
||||
option: "need_online_data_migrations"
|
||||
value: True
|
||||
- section: "manila"
|
||||
option: "venv_tag"
|
||||
value: "{{ manila_venv_tag }}"
|
||||
|
||||
- name: Copy manila rootwrap filters
|
||||
command: >-
|
||||
rsync --archive --itemize-changes --delete
|
||||
/openstack/venvs/manila-{{ manila_venv_tag }}/etc/manila/rootwrap.d/
|
||||
/etc/manila/rootwrap.d/
|
||||
args:
|
||||
warn: no
|
||||
register: _copy_rootwraps
|
||||
changed_when: _copy_rootwraps.stdout != ''
|
||||
notify:
|
||||
- Manage LB
|
||||
- Restart manila services
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2014, Rackspace US, Inc.
|
||||
# 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.
|
||||
@ -24,7 +24,8 @@
|
||||
file:
|
||||
state: "directory"
|
||||
path: "/etc/lvm"
|
||||
when: lvm_devices.rc == 0
|
||||
when:
|
||||
- lvm_devices.rc == 0
|
||||
|
||||
- name: Drop lvm Config
|
||||
template:
|
||||
@ -33,4 +34,5 @@
|
||||
owner: "root"
|
||||
group: "root"
|
||||
backup: "yes"
|
||||
when: lvm_devices.rc == 0
|
||||
when:
|
||||
- lvm_devices.rc == 0
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2014, Rackspace US, Inc.
|
||||
# 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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2014, Rackspace US, Inc.
|
||||
# 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.
|
||||
@ -16,7 +16,7 @@
|
||||
- name: create the system group
|
||||
group:
|
||||
name: "{{ manila_system_group_name }}"
|
||||
gid: "{{ manila_system_group_gid|default(omit) }}"
|
||||
gid: "{{ manila_system_group_gid | default(omit) }}"
|
||||
state: "present"
|
||||
system: "yes"
|
||||
|
||||
@ -35,9 +35,9 @@
|
||||
file:
|
||||
path: "{{ item.path }}"
|
||||
state: directory
|
||||
owner: "{{ item.owner|default(manila_system_user_name) }}"
|
||||
group: "{{ item.group|default(manila_system_group_name) }}"
|
||||
mode: "{{ item.mode|default('0755') }}"
|
||||
owner: "{{ item.owner | default(manila_system_user_name) }}"
|
||||
group: "{{ item.group | default(manila_system_group_name) }}"
|
||||
mode: "{{ item.mode | default('0755') }}"
|
||||
with_items:
|
||||
- { path: "/openstack", mode: "0755", owner: "root", group: "root" }
|
||||
- { path: "/var/cache/manila", mode: "0700" }
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2014, Rackspace US, Inc.
|
||||
# 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.
|
||||
@ -21,8 +21,7 @@
|
||||
- name: Setup the service
|
||||
delegate_to: "{{ manila_service_setup_host }}"
|
||||
vars:
|
||||
ansible_python_interpreter: >-
|
||||
{{ (manila_service_setup_host == 'localhost') | ternary(ansible_playbook_python, ansible_python['executable']) }}
|
||||
ansible_python_interpreter: "{{ (manila_service_setup_host == 'localhost') | ternary(ansible_playbook_python, ansible_python['executable']) }}"
|
||||
block:
|
||||
- name: Add services to the keystone service catalog
|
||||
os_keystone_service:
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2017, Rackspace US, Inc.
|
||||
# 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.
|
||||
@ -27,7 +27,8 @@
|
||||
config_overrides: "{{ item.wsgi_overrides }}"
|
||||
config_type: ini
|
||||
with_items: "{{ filtered_manila_services }}"
|
||||
when: item.wsgi_app | default(False)
|
||||
when:
|
||||
- item.wsgi_app | default(false)
|
||||
notify:
|
||||
- Manage LB
|
||||
- Restart manila services
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2018, Rackspace US, Inc.
|
||||
# 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.
|
||||
@ -23,8 +23,8 @@
|
||||
- name: Setup RPC MQ Service (RabbitMQ)
|
||||
delegate_to: "{{ _oslomsg_rpc_setup_host }}"
|
||||
when:
|
||||
- "(_oslomsg_configure_rpc | default(_oslomsg_rpc_transport is defined))"
|
||||
- "(_oslomsg_rpc_transport is defined) and (_oslomsg_rpc_transport == 'rabbit')"
|
||||
- (_oslomsg_configure_rpc | default(_oslomsg_rpc_transport is defined))
|
||||
- (_oslomsg_rpc_transport is defined) and (_oslomsg_rpc_transport == 'rabbit')
|
||||
tags:
|
||||
- common-rabbitmq
|
||||
block:
|
||||
@ -73,8 +73,8 @@
|
||||
- name: Setup RPC MQ Service (Qdrouterd)
|
||||
delegate_to: "{{ _oslomsg_rpc_setup_host }}"
|
||||
when:
|
||||
- "(_oslomsg_configure_rpc | default(_oslomsg_rpc_transport is defined))"
|
||||
- "(_oslomsg_rpc_transport is defined) and (_oslomsg_rpc_transport == 'amqp')"
|
||||
- (_oslomsg_configure_rpc | default(_oslomsg_rpc_transport is defined))
|
||||
- (_oslomsg_rpc_transport is defined) and (_oslomsg_rpc_transport == 'amqp')
|
||||
tags:
|
||||
- common-qdrouterd
|
||||
block:
|
||||
|
@ -37,14 +37,14 @@ storage_availability_zone = {{ manila_storage_availability_zone }}
|
||||
client_socket_timeout = {{ manila_client_socket_timeout }}
|
||||
|
||||
{% if manila_enabled_share_protocols is defined %}
|
||||
enabled_share_protocols={{ manila_enabled_share_protocols }}
|
||||
enabled_share_protocols={{ manila_enabled_share_protocols | join(',') }}
|
||||
{% endif %}
|
||||
|
||||
{% if manila_backends is defined %}
|
||||
enabled_share_backends={% for backend in manila_backends|dictsort %}{{ backend.0 }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
enabled_share_backends={% for backend in manila_backends | dictsort %}{{ backend.0 }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
# All given backend(s)
|
||||
{% for backend_section in manila_backends|dictsort %}
|
||||
{% for backend_section in manila_backends | dictsort %}
|
||||
[{{ backend_section.0 }}]
|
||||
{% for key, value in (backend_section.1 | dictsort) if key not in ['extra_share_types', 'shares'] %}
|
||||
{{ key }}={{ value }}
|
||||
@ -60,7 +60,7 @@ connection = mysql+pymysql://{{ manila_galera_user }}:{{ manila_container_mysql_
|
||||
ssl = {{ manila_oslomsg_rpc_use_ssl }}
|
||||
|
||||
[oslo_messaging_notifications]
|
||||
driver = {% if manila_ceilometer_enabled %}messagingv2{% else %}noop{% endif %}
|
||||
driver = {{ (manila_ceilometer_enabled | bool) | ternary('messagingv2', 'noop') }}
|
||||
transport_url = {{ manila_oslomsg_notify_transport }}://{% for host in manila_oslomsg_notify_servers.split(',') %}{{ manila_oslomsg_notify_userid }}:{{ manila_oslomsg_notify_password }}@{{ host }}:{{ manila_oslomsg_notify_port }}{% if not loop.last %},{% else %}/{{ manila_oslomsg_notify_vhost }}{% if manila_oslomsg_notify_use_ssl | bool %}?ssl=1{% else %}?ssl=0{% endif %}{% endif %}{% endfor %}
|
||||
|
||||
[oslo_concurrency]
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2016, Rackspace US, Inc.
|
||||
# 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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2016, Rackspace US, Inc.
|
||||
# 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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2016, Rackspace US, Inc.
|
||||
# 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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2016, Rackspace US, Inc.
|
||||
# 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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2016, Rackspace US, Inc.
|
||||
# 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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2016, Rackspace US, Inc.
|
||||
# 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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2016, Rackspace US, Inc.
|
||||
# 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.
|
||||
@ -17,6 +17,7 @@ tempest_run: yes
|
||||
tempest_test_whitelist:
|
||||
- smoke
|
||||
- manila_tempest_tests.tests.scenario.test_share_basic_ops
|
||||
|
||||
tempest_test_blacklist:
|
||||
- test: tempest.api.identity
|
||||
reason: Reducing run time and required resources
|
||||
@ -32,7 +33,7 @@ tempest_test_blacklist:
|
||||
reason: Reducing run time and required resources
|
||||
- test: tempest.scenario.test_network_basic_ops
|
||||
reason: Reducing run time and required resources
|
||||
tempest_service_available_manila: True
|
||||
|
||||
tempest_plugins: "{{ _tempest_plugins['keystone'] + _tempest_plugins['manila'] }}"
|
||||
|
||||
tempest_tempest_conf_overrides:
|
||||
@ -90,6 +91,8 @@ manila_backends:
|
||||
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"
|
||||
generic:
|
||||
share_backend_name: GENERIC
|
||||
share_driver: manila.share.drivers.generic.GenericShareDriver
|
||||
@ -99,6 +102,8 @@ manila_backends:
|
||||
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"
|
||||
|
||||
test_manila_api_group: "{{ ((groups['manila_api'] is defined) and (groups['manila_api'] | length > 0)) | ternary('manila_api', 'all_containers') }}"
|
||||
test_manila_share_group: "{{ ((groups['manila_share'] is defined) and (groups['manila_share'] | length > 0)) | ternary('manila_share', 'all_containers') }}"
|
||||
@ -108,7 +113,7 @@ manila_container_mysql_password: "SuperSecrete"
|
||||
manila_developer_mode: true
|
||||
manila_git_install_branch: "{{ test_branch }}"
|
||||
manila_profiler_hmac_key: "secrete"
|
||||
manila_oslomsg_rpc_password: "{{ oslomsg_rpc_password }}"
|
||||
manila_oslomsg_rpc_password: "secrete"
|
||||
manila_oslomsg_notify_password: "{{ oslomsg_notify_password }}"
|
||||
manila_service_password: "secrete"
|
||||
manila_venv_tag: "testing"
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2015, Rackspace US, Inc.
|
||||
# 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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2015, Rackspace US, Inc.
|
||||
# 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.
|
||||
@ -13,7 +13,7 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
- name: Prepare manila-shares share group
|
||||
- name: Prepare manila_shares share group
|
||||
hosts: localhost
|
||||
# This set of tasks runs against localhost
|
||||
# and requires root access, but tests run as
|
||||
@ -48,7 +48,7 @@
|
||||
- "pvcreate {{ manila_losetup.stdout }}"
|
||||
- "pvscan"
|
||||
|
||||
- name: Add manila-shares share group
|
||||
- name: Add manila_shares share group
|
||||
lvg:
|
||||
vg: "{{ manila_lvm_vg_name | default('manila-shares') }}"
|
||||
pvs: "{{ manila_losetup.stdout }}"
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2015, Rackspace US, Inc.
|
||||
# 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.
|
||||
@ -16,10 +16,10 @@
|
||||
# Setup the host
|
||||
- import_playbook: common/test-setup-host.yml
|
||||
|
||||
# Prepare the manila-share VG
|
||||
# Prepare the manila_share VG
|
||||
- import_playbook: test-setup-manila-localhost.yml
|
||||
|
||||
# Prepare the manila-share VG
|
||||
# Prepare the manila_share VG
|
||||
- import_playbook: common/test-setup-cinder-localhost.yml
|
||||
|
||||
# Install RabbitMQ/MariaDB
|
||||
|
@ -20,16 +20,16 @@
|
||||
#
|
||||
manila_package_list: |-
|
||||
{% set packages = manila_service_distro_packages %}
|
||||
{% if manila_services['manila-share']['group'] in group_names %}
|
||||
{% if manila_services['manila_share']['group'] in group_names %}
|
||||
{% set _ = packages.extend(manila_share_distro_packages) %}
|
||||
{% if manila_backend_lvm_inuse | bool %}
|
||||
{% set _ = packages.extend(manila_lvm_share_distro_packages) %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if manila_services['manila-api']['group'] in group_names %}
|
||||
{% if manila_services['manila_api']['group'] in group_names %}
|
||||
{% set _ = packages.extend(manila_api_distro_packages) %}
|
||||
{% endif %}
|
||||
{% if manila_services['manila-scheduler']['group'] in group_names %}
|
||||
{% if manila_services['manila_scheduler']['group'] in group_names %}
|
||||
{% set _ = packages.extend(manila_scheduler_distro_packages) %}
|
||||
{% endif %}
|
||||
{% if manila_developer_mode | bool %}
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2017, Rackspace US, Inc.
|
||||
# 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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Copyright 2017, Rackspace US, Inc.
|
||||
# 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.
|
||||
@ -20,7 +20,7 @@
|
||||
#
|
||||
manila_package_list: |-
|
||||
{% set packages = manila_distro_packages %}
|
||||
{% if manila_services['manila-share']['group'] in group_names %}
|
||||
{% if manila_services['manila_share']['group'] in group_names %}
|
||||
{% set _ = packages.extend(manila_share_deps_distro_packages) %}
|
||||
{% if manila_backend_lvm_inuse | bool %}
|
||||
{% set _ = packages.extend(manila_lvm_share_distro_packages) %}
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright 2017, Rackspace US, Inc.
|
||||
# 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.
|
||||
@ -17,11 +17,3 @@
|
||||
- check-requirements
|
||||
- publish-openstack-docs-pti
|
||||
- release-notes-jobs-python3
|
||||
check:
|
||||
jobs:
|
||||
- openstack-ansible-functional-ubuntu-bionic
|
||||
- openstack-ansible-functional-distro_install-ubuntu-bionic:
|
||||
voting: false
|
||||
gate:
|
||||
jobs:
|
||||
- openstack-ansible-functional-ubuntu-bionic
|
||||
|
Loading…
Reference in New Issue
Block a user