diff options
author | grakiss <grakiss.wanglei@huawei.com> | 2015-12-08 20:19:24 +0800 |
---|---|---|
committer | grakiss <grakiss.wanglei@huawei.com> | 2015-12-12 17:57:32 +0800 |
commit | 604f11a9e2a1126a97a1024ec97b468a0d2ee9a0 (patch) | |
tree | bfec43317eacbedc25e562da00b76dca4e68a0d3 /deploy/adapters/ansible/roles/storage | |
parent | ac0c791390e82449245f76bd1696a6465d0c6d2a (diff) |
using /var directory for ceph storage when not deployed on compute node
JIRA: COMPASS-174
- if no sdb exits, use /var for default storage
Change-Id: Ia2daacb868279cb7a7287f246d2d25d3a758f31d
Signed-off-by: grakiss <grakiss.wanglei@huawei.com>
Diffstat (limited to 'deploy/adapters/ansible/roles/storage')
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 |