openstack-ansible/playbooks/os-cinder-install.yml
Stuart Grace 77ac88197c Add var for environment used only inside playbooks
When global_environment_variables is set in user_variables.yml, this
installs environment settings in /etc/environment on all hosts and
containers. These remain in place after deployment is complete.

This patch adds a similar variable deployment_environment_variables
that defines environment strings applied only while the playbooks
are running. They leave nothing behind on the hosts or containers.

This may be used, for example, for proxy settings required only
during deployment. A simpler no_proxy setting is adequate during
deployment, so this provides a workaround to Bug #1691749.

Change-Id: Ia15d2133c6749fa9496bbf9359b8bf075742d60e
Related-Bug: #1691749
2017-05-18 13:01:29 +00:00

128 lines
4.8 KiB
YAML

---
# 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.
- name: Install cinder server
hosts: cinder_all
gather_facts: "{{ gather_facts | default(True) }}"
max_fail_percentage: 20
user: root
pre_tasks:
- include: common-tasks/dynamic-address-fact.yml
vars:
network_address: "storage_address"
- include: common-tasks/os-lxc-container-setup.yml
static: no
vars:
aa_profile: "unconfined"
extra_container_config:
- "lxc.autodev=0"
- "lxc.cgroup.devices.allow=a *:* rmw"
- "lxc.mount.entry=udev dev devtmpfs defaults 0 0"
extra_container_config_no_restart:
- "lxc.start.order=79"
when:
- inventory_hostname in groups['cinder_volume']
- cinder_backend_lvm_inuse | bool
- include: common-tasks/os-lxc-container-setup.yml
static: no
when:
- inventory_hostname not in groups['cinder_volume']
- include: common-tasks/rabbitmq-vhost-user.yml
static: no
vars:
user: "{{ cinder_rabbitmq_userid }}"
password: "{{ cinder_rabbitmq_password }}"
vhost: "{{ cinder_rabbitmq_vhost }}"
_rabbitmq_host_group: "{{ cinder_rabbitmq_host_group }}"
when:
- inventory_hostname == groups['cinder_all'][0]
- groups[cinder_rabbitmq_host_group] | length > 0
- include: common-tasks/rabbitmq-vhost-user.yml
static: no
vars:
user: "{{ cinder_rabbitmq_telemetry_userid }}"
password: "{{ cinder_rabbitmq_telemetry_password }}"
vhost: "{{ cinder_rabbitmq_telemetry_vhost }}"
_rabbitmq_host_group: "{{ cinder_rabbitmq_telemetry_host_group }}"
when:
- cinder_ceilometer_enabled | bool
- inventory_hostname == groups['cinder_all'][0]
- groups[cinder_rabbitmq_telemetry_host_group] is defined
- groups[cinder_rabbitmq_telemetry_host_group] | length > 0
- groups[cinder_rabbitmq_telemetry_host_group] != groups[cinder_rabbitmq_host_group]
- include: common-tasks/os-log-dir-setup.yml
vars:
log_dirs:
- src: "/openstack/log/{{ inventory_hostname }}-cinder"
dest: "/var/log/cinder"
- include: common-tasks/mysql-db-user.yml
static: no
vars:
user_name: "{{ cinder_galera_user }}"
password: "{{ cinder_container_mysql_password }}"
login_host: "{{ cinder_galera_address }}"
db_name: "{{ cinder_galera_database }}"
when: inventory_hostname == groups['cinder_all'][0]
- include: common-tasks/package-cache-proxy.yml
- name: Add volume group block device to cinder
shell: |
{% if item.value.volume_group is defined %}
if [ "$(pvdisplay | grep -B1 {{ item.value.volume_group }} | awk '/PV/ {print $3}')" ];then
for device in `pvdisplay | grep -B1 {{ item.value.volume_group }} | awk '/PV/ {print $3}'`
do lxc-device -n {{ container_name }} add $device
done
fi
{% else %}
echo "{{ item.key }} volume_group not defined"
{% endif %}
with_dict: "{{ cinder_backends | default({}) }}"
when:
- physical_host != container_name
- cinder_backend_lvm_inuse | bool
delegate_to: "{{ physical_host }}"
- name: udevadm trigger
command: udevadm trigger
delegate_to: "{{ physical_host }}"
when: cinder_backend_lvm_inuse | bool
roles:
- role: "os_cinder"
cinder_storage_address: "{{ storage_address }}"
- role: "ceph_client"
openstack_service_system_user: "{{ cinder_system_user_name }}"
openstack_service_venv_bin: "{{ cinder_bin }}"
when:
- inventory_hostname in groups['cinder_volume']
- cinder_backend_rbd_inuse | default(false) | bool
tags:
- ceph
- role: "rsyslog_client"
rsyslog_client_log_rotate_file: cinder_log_rotate
rsyslog_client_log_dir: "/var/log/cinder"
rsyslog_client_config_name: "99-cinder-rsyslog-client.conf"
tags:
- rsyslog
- role: "system_crontab_coordination"
tags:
- crontab
vars:
is_metal: "{{ properties.is_metal|default(false) }}"
cinder_galera_user: cinder
cinder_galera_database: cinder
cinder_galera_address: "{{ galera_address }}"
environment: "{{ deployment_environment_variables | default({}) }}"
tags:
- cinder