Kevin Carter b08b2ea889 Implement swift venv support
This commit conditionally allows the os_swift role to
install build and deploy within a venv. This is the new
default behavior of the role however the functionality
can be disabled.

In this PR, like all of the other venv related PRs, the 
`is_metal` flag was removed from the role however unlike 
some of the other PRs this removal required moving some 
of the `is_metal` logic out of the role and into the 
play. This was done for consistency as well as making 
the role more standalone. The only thing that the role 
should care about, in terms of installation, is whether 
or not to install in a venv.

Change-Id: I6f5b883a853611659567bd12e8bcf572189854b7
Implements: blueprint enable-venv-support-within-the-roles
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2015-10-15 17:56:05 +00:00

115 lines
3.4 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: create the system group
group:
name: "{{ swift_system_group_name }}"
state: "present"
system: "yes"
tags:
- swift-group
- name: Remove old key file(s) if found
file:
path: "{{ item }}"
state: "absent"
with_items:
- "{{ swift_system_home_folder }}/.ssh/authorized_keys"
- "{{ swift_system_home_folder }}/.ssh/id_rsa"
- "{{ swift_system_home_folder }}/.ssh/id_rsa.pub"
when: swift_recreate_keys | bool
tags:
- swift-key
- swift-key-create
- name: Create the swift system user
user:
name: "{{ swift_system_user_name }}"
group: "{{ swift_system_group_name }}"
comment: "{{ swift_system_comment }}"
shell: "{{ swift_system_shell }}"
system: "yes"
createhome: "yes"
home: "{{ swift_system_home_folder }}"
generate_ssh_key: "yes"
tags:
- swift-user
- swift-key
- swift-key-create
- name: Create swift dir
file:
path: "{{ item.path }}"
state: directory
owner: "{{ item.owner|default(swift_system_user_name) }}"
group: "{{ item.group|default(swift_system_group_name) }}"
mode: "{{ item.mode|default('0755') }}"
with_items:
- { path: "/openstack", owner: "root", group: "root" }
- { path: "/etc/sudoers.d", mode: "0750", owner: "root", group: "root" }
- { path: "/etc/swift" }
- { path: "/etc/swift/account-server" }
- { path: "/etc/swift/backups" }
- { path: "/etc/swift/container-server" }
- { path: "/etc/swift/object-server" }
- { path: "/etc/swift/proxy-server" }
- { path: "/etc/swift/scripts" }
- { path: "/etc/swift/ring_build_files" }
- { path: "/openstack/log/{{ inventory_hostname }}", owner: "syslog", group: "syslog" }
- { path: "/var/cache/swift" }
- { path: "{{ swift_system_home_folder }}" }
tags:
- swift-dirs
- name: Create swift venv dir
file:
path: "{{ item.path }}"
state: directory
with_items:
- { path: "/openstack/venvs" }
- { path: "{{ swift_venv_bin }}" }
when: swift_venv_enabled | bool
tags:
- swift-dirs
- name: Test for log directory or link
shell: |
if [ -h "/var/log/swift" ]; then
chown -h {{ swift_system_user_name }}:{{ swift_system_group_name }} "/var/log/swift"
chown -R {{ swift_system_user_name }}:{{ swift_system_group_name }} "$(readlink /var/log/swift)"
else
exit 1
fi
register: log_dir
failed_when: false
changed_when: log_dir.rc != 0
tags:
- swift-dirs
- swift-logs
- name: Create swift log dir
file:
path: "{{ item.path }}"
state: directory
owner: "{{ item.owner|default(swift_system_user_name) }}"
group: "{{ item.group|default(swift_system_group_name) }}"
mode: "{{ item.mode|default('0755') }}"
with_items:
- { path: "/var/log/swift", owner: "syslog", group: "syslog" }
when: log_dir.rc != 0
tags:
- swift-dirs
- swift-logs