From 3fc9da6b7dd0e3dc2d1afd7b2dfad4f4189232d4 Mon Sep 17 00:00:00 2001 From: wutianwei Date: Mon, 7 Aug 2017 20:03:34 +0800 Subject: Make the storage use ceph 1. ceph.yml define which host install ceph-mon and ceph-osd 2. user_ceph.yml define variables of ceph and cinder backend 3. user_variables_ceph.yml.j2 define variables of ceph for user Change-Id: Iafea998f4603eb4b5c15a26f2387e6cb04c35d4c Signed-off-by: wutianwei --- .../adapters/ansible/roles/storage/tasks/ceph.yml | 45 ++++++++++++++++++++++ .../adapters/ansible/roles/storage/tasks/main.yml | 8 ++++ .../adapters/ansible/roles/storage/vars/main.yml | 18 +++++++++ 3 files changed, 71 insertions(+) create mode 100644 deploy/adapters/ansible/roles/storage/tasks/ceph.yml create mode 100644 deploy/adapters/ansible/roles/storage/vars/main.yml (limited to 'deploy/adapters/ansible/roles/storage') diff --git a/deploy/adapters/ansible/roles/storage/tasks/ceph.yml b/deploy/adapters/ansible/roles/storage/tasks/ceph.yml new file mode 100644 index 00000000..e024c671 --- /dev/null +++ b/deploy/adapters/ansible/roles/storage/tasks/ceph.yml @@ -0,0 +1,45 @@ +--- +# Copyright 2016, Logan Vig +# +# 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 ceph OSD files + command: truncate -s {{ host_loopback_ceph_size }} /var/{{ item }}.img + args: + creates: "/var/{{ item }}.img" + with_items: "{{ ceph_osd_images }}" + register: ceph_create + changed_when: false + +- name: Create the ceph loopback device + command: losetup -f /var/{{ item.item }}.img --show + with_items: "{{ ceph_create.results }}" + register: ceph_loopback + when: not item|skipped + changed_when: false + +- name: register ceph_loopback to localhost + set_fact: + fact_for_ceph: "{{ ceph_loopback.results | map(attribute='stdout') | list | to_yaml | trim }}" + +- name: Ensure that rc.local exists + file: + path: "{{ rc_local }}" + state: touch + mode: "u+x" + +- name: Create ceph loopback at boot time + lineinfile: + dest: "{{ rc_local }}" + line: "losetup -f /var/{{ item }}.img" + insertbefore: "{{ rc_local_insert_before }}" + with_items: "{{ ceph_osd_images }}" diff --git a/deploy/adapters/ansible/roles/storage/tasks/main.yml b/deploy/adapters/ansible/roles/storage/tasks/main.yml index b054be9e..3d9635cc 100755 --- a/deploy/adapters/ansible/roles/storage/tasks/main.yml +++ b/deploy/adapters/ansible/roles/storage/tasks/main.yml @@ -65,4 +65,12 @@ tags: - storage +- name: load ceph.yml + include: ceph.yml + when: + - "{{ hostvars[inventory_hostname]['groups']['ceph_mon'] |length > 0 }}" + - "{{ hostvars[inventory_hostname]['groups']['ceph_osd'] | length > 0 }}" + tags: + - storage + - meta: flush_handlers diff --git a/deploy/adapters/ansible/roles/storage/vars/main.yml b/deploy/adapters/ansible/roles/storage/vars/main.yml new file mode 100644 index 00000000..28e2ad06 --- /dev/null +++ b/deploy/adapters/ansible/roles/storage/vars/main.yml @@ -0,0 +1,18 @@ +############################################################################## +# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +--- +host_loopback_ceph_size: "100G" +rc_local: /etc/rc.local +rc_local_insert_before: "^exit 0$" +bootstrap_host_data_disk_device: null +bootstrap_host_data_disk_device_force: "no" +ceph_osd_images: + - 'ceph1' + - 'ceph2' + - 'ceph3' -- cgit 1.2.3-korg