summaryrefslogtreecommitdiffstats
path: root/deploy/adapters/ansible/roles/storage/tasks
diff options
context:
space:
mode:
Diffstat (limited to 'deploy/adapters/ansible/roles/storage/tasks')
-rwxr-xr-xdeploy/adapters/ansible/roles/storage/tasks/loop.yml31
-rwxr-xr-xdeploy/adapters/ansible/roles/storage/tasks/main.yml68
-rwxr-xr-xdeploy/adapters/ansible/roles/storage/tasks/real.yml16
3 files changed, 115 insertions, 0 deletions
diff --git a/deploy/adapters/ansible/roles/storage/tasks/loop.yml b/deploy/adapters/ansible/roles/storage/tasks/loop.yml
new file mode 100755
index 00000000..599e2ced
--- /dev/null
+++ b/deploy/adapters/ansible/roles/storage/tasks/loop.yml
@@ -0,0 +1,31 @@
+##############################################################################
+# 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
+##############################################################################
+---
+
+- name: get available /var partition size
+ script: get_var_size.sh
+ register: part_size
+
+- name: create image file if not exitst
+ script: create_img.sh "{{ part_size.stdout }}"
+
+- name: do a losetup on storage volumes
+ script: losetup.sh
+ register: loop_device
+
+- name: debug loop device
+ debug: msg={{ loop_device.stdout }}
+
+- name: get device
+ shell: echo '{{ loop_device.stdout }}' | sed ':a;N;$!ba;s/.*\n\(\/dev\)/\1/g'
+ register: loop_device_filterd
+
+- name: create physical and group volumes
+ lvg: vg=cinder-volumes pvs={{ loop_device_filterd.stdout }}
+ vg_options=--force
diff --git a/deploy/adapters/ansible/roles/storage/tasks/main.yml b/deploy/adapters/ansible/roles/storage/tasks/main.yml
new file mode 100755
index 00000000..b054be9e
--- /dev/null
+++ b/deploy/adapters/ansible/roles/storage/tasks/main.yml
@@ -0,0 +1,68 @@
+##############################################################################
+# 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
+##############################################################################
+---
+- name: check if physical device exists
+ stat: path={{ physical_device }}
+ register: status
+ tags:
+ - storage
+
+- name: load loop.yml
+ include: loop.yml
+ when: status.stat.exists == False or status.stat.isblk == False
+ tags:
+ - storage
+
+- name: load real.yml
+ include: real.yml
+ when: status.stat.exists == True and status.stat.isblk == True
+ tags:
+ - storage
+
+- name: make setup_storage directory
+ file: path=/opt/setup_storage state=directory mode=0755
+ tags:
+ - storage
+
+- name: copy setup storage scripts
+ copy: src={{ item }} dest=/opt/setup_storage mode=0755
+ with_items:
+ - losetup.sh
+ tags:
+ - storage
+
+- name: set autostart file
+ copy: src=storage dest=/etc/init.d/storage mode=0755
+ tags:
+ - storage
+
+- name: set autostart file for centos
+ copy:
+ src: storage.service
+ dest: /usr/lib/systemd/system/storage.service
+ mode: 0755
+ when: ansible_os_family == "RedHat"
+ tags:
+ - storage
+
+- name: add to boot scripts
+ shell: update-rc.d storage defaults
+ when: ansible_os_family == "Debian"
+ tags:
+ - storage
+
+- name: add to boot scripts
+ shell: |
+ chkconfig --add storage;
+ chkconfig --level 2345 storage on;
+ when: ansible_os_family == 'RedHat'
+ tags:
+ - storage
+
+- meta: flush_handlers
diff --git a/deploy/adapters/ansible/roles/storage/tasks/real.yml b/deploy/adapters/ansible/roles/storage/tasks/real.yml
new file mode 100755
index 00000000..6c2ac4a6
--- /dev/null
+++ b/deploy/adapters/ansible/roles/storage/tasks/real.yml
@@ -0,0 +1,16 @@
+##############################################################################
+# 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
+##############################################################################
+---
+- name: destroy GPT lable
+ shell: dd if=/dev/urandom of={{ physical_device }} bs=4M count=1
+ ignore_errors: "True"
+
+- name: create physical and group volumes
+ lvg: vg=cinder-volumes pvs={{ physical_device }}
+ vg_options=--force