openstack-ansible-os_swift/tasks/swift_pre_install.yml
Andy McCrae 53027de8c8 Setup rsync module per object server drive
This PR sets up rsync module per drive for swift object servers. This
improves resource distribution, and also allows us to utilise rsync
module changes to prevent disk writes to specific drives when they begin
filling up.

Enable this option by setting "swift_rsync_module_per_drive: True", this
will still default to False to match upstream defaults. Additionally the
rsync max connections has been increased to match upstream defaults.

Additionally we include rsync.d/*.conf files by default and set this
directory up, so that we can add individual configuration to disable
specific drives.

Change-Id: I2019cade5bf5f2878497d30ce738dff07786fa64
2016-05-16 11:57:46 +01:00

123 lines
3.5 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/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: "{{ swift_syslog_user_name }}", group: "{{ swift_syslog_group_name }}" }
- { path: "/var/cache/swift" }
- { path: "{{ swift_system_home_folder }}" }
- { path: "/etc/rsync.d", owner: "root", group: "root" }
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_syslog_user_name }}:{{ swift_syslog_group_name }} "/var/log/swift"
chown -R {{ swift_syslog_user_name }}:{{ swift_syslog_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: "/var/log/swift"
state: directory
owner: "{{ swift_syslog_user_name }}"
group: "{{ swift_syslog_group_name }}"
mode: "0755"
when: log_dir.rc != 0
tags:
- swift-dirs
- swift-logs
- name: Configure mlocate for cron.daily
template:
src: "mlocate-crond-daily.sh.j2"
dest: "/etc/cron.daily/mlocate"
mode: "0755"
owner: "root"
group: "root"
tags:
- swift-crond