aboutsummaryrefslogtreecommitdiffstats
path: root/deploy/adapters/ansible/roles/storage
diff options
context:
space:
mode:
Diffstat (limited to 'deploy/adapters/ansible/roles/storage')
-rwxr-xr-xdeploy/adapters/ansible/roles/storage/files/create_img.sh4
-rwxr-xr-xdeploy/adapters/ansible/roles/storage/files/get_var_size.sh6
-rwxr-xr-xdeploy/adapters/ansible/roles/storage/files/loop.yml1
-rwxr-xr-xdeploy/adapters/ansible/roles/storage/files/losetup.sh7
-rwxr-xr-xdeploy/adapters/ansible/roles/storage/tasks/loop.yml23
-rwxr-xr-xdeploy/adapters/ansible/roles/storage/tasks/main.yml18
-rwxr-xr-xdeploy/adapters/ansible/roles/storage/tasks/real.yml8
7 files changed, 67 insertions, 0 deletions
diff --git a/deploy/adapters/ansible/roles/storage/files/create_img.sh b/deploy/adapters/ansible/roles/storage/files/create_img.sh
new file mode 100755
index 00000000..4b9ac534
--- /dev/null
+++ b/deploy/adapters/ansible/roles/storage/files/create_img.sh
@@ -0,0 +1,4 @@
+seek_num=`echo $1 | sed -e 's/.* //g'`
+if [[ ! -f /var/storage.img ]]; then
+ dd if=/dev/zero of=/var/storage.img bs=1 count=0 seek=$seek_num
+fi
diff --git a/deploy/adapters/ansible/roles/storage/files/get_var_size.sh b/deploy/adapters/ansible/roles/storage/files/get_var_size.sh
new file mode 100755
index 00000000..55041c6e
--- /dev/null
+++ b/deploy/adapters/ansible/roles/storage/files/get_var_size.sh
@@ -0,0 +1,6 @@
+size=`df /var | awk '$3 ~ /[0-9]+/ { print $4 }'`;
+if [[ $size -gt 2000000000 ]]; then
+ echo -n 2000000000000;
+else
+ echo -n $((size * 1000 / 512 * 512));
+fi
diff --git a/deploy/adapters/ansible/roles/storage/files/loop.yml b/deploy/adapters/ansible/roles/storage/files/loop.yml
new file mode 100755
index 00000000..e872652a
--- /dev/null
+++ b/deploy/adapters/ansible/roles/storage/files/loop.yml
@@ -0,0 +1 @@
+physical_device: /dev/loop0
diff --git a/deploy/adapters/ansible/roles/storage/files/losetup.sh b/deploy/adapters/ansible/roles/storage/files/losetup.sh
new file mode 100755
index 00000000..8cb9bd7d
--- /dev/null
+++ b/deploy/adapters/ansible/roles/storage/files/losetup.sh
@@ -0,0 +1,7 @@
+loop_dev=`losetup -a |grep "/var/storage.img"|awk -F':' '{print $1}'`
+if [[ -z $loop_dev ]]; then
+ losetup -f --show /var/storage.img
+else
+ echo $loop_dev
+fi
+
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..a16d2358
--- /dev/null
+++ b/deploy/adapters/ansible/roles/storage/tasks/loop.yml
@@ -0,0 +1,23 @@
+---
+
+- 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=storage-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..ee4c97e5
--- /dev/null
+++ b/deploy/adapters/ansible/roles/storage/tasks/main.yml
@@ -0,0 +1,18 @@
+---
+- 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
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..fd3351c0
--- /dev/null
+++ b/deploy/adapters/ansible/roles/storage/tasks/real.yml
@@ -0,0 +1,8 @@
+---
+- 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=storage-volumes pvs={{ physical_device }}
+ vg_options=--force