diff options
author | leonwang <wanghui71@huawei.com> | 2018-02-23 15:01:06 +0000 |
---|---|---|
committer | leonwang <wanghui71@huawei.com> | 2018-02-23 15:01:14 +0000 |
commit | b9f16e2669ff5a0cde006951ffec5dff84ac29df (patch) | |
tree | 68fb97c133f6ffc7a46bbc988941955b35d91af2 /ci/ansible/roles/cleaner/tasks | |
parent | 561c0708b78eed8120b90f0221cd66730c9e8a74 (diff) |
Update opensds ansible
This patch is designed for solving some problems below:
- Sync the latest code with opensds community
- Enable containerized deployment in ansible script
- Fix some bugs in port conflicts of etcd deployment
Change-Id: Id48906b91c08b3a98e6fc3d8d424a1cd2b11f2be
Signed-off-by: leonwang <wanghui71@huawei.com>
Diffstat (limited to 'ci/ansible/roles/cleaner/tasks')
-rwxr-xr-x[-rw-r--r--] | ci/ansible/roles/cleaner/tasks/main.yml | 314 |
1 files changed, 167 insertions, 147 deletions
diff --git a/ci/ansible/roles/cleaner/tasks/main.yml b/ci/ansible/roles/cleaner/tasks/main.yml index 334d5bb..c1c465c 100644..100755 --- a/ci/ansible/roles/cleaner/tasks/main.yml +++ b/ci/ansible/roles/cleaner/tasks/main.yml @@ -1,147 +1,167 @@ ----
-- name: remove golang tarball
- file:
- path: "/opt/{{ golang_tarball }}"
- state: absent
- force: yes
- ignore_errors: yes
-
-- name: kill etcd daemon service
- shell: killall etcd
- ignore_errors: yes
- when: db_driver == "etcd"
-
-- name: remove etcd service data
- file:
- path: "{{ etcd_dir }}"
- state: absent
- force: yes
- ignore_errors: yes
- when: db_driver == "etcd"
-
-- name: remove etcd tarball
- file:
- path: "/opt/{{ etcd_tarball }}"
- state: absent
- force: yes
- ignore_errors: yes
- when: db_driver == "etcd"
-
-- name: kill osdslet daemon service
- shell: killall osdslet
- ignore_errors: yes
-
-- name: kill osdsdock daemon service
- shell: killall osdsdock
- ignore_errors: yes
-
-- name: clean all opensds build files
- shell: . /etc/profile; make clean
- args:
- chdir: "{{ opensds_root_dir }}"
-
-- name: clean all opensds configuration files
- file:
- path: "{{ opensds_config_dir }}"
- state: absent
- force: yes
- ignore_errors: yes
-
-- name: clean all opensds log files
- file:
- path: "{{ opensds_log_dir }}"
- state: absent
- force: yes
- ignore_errors: yes
-
-- name: check if it existed before cleaning a volume group
- shell: vgdisplay {{ vg_name }}
- ignore_errors: yes
- register: vg_existed
- when: enabled_backend == "lvm"
-
-- name: remove a volume group if lvm backend specified
- shell: vgremove {{ vg_name }}
- when: enabled_backend == "lvm" and vg_existed.rc == 0
-
-- name: check if it existed before cleaning a physical volume
- shell: pvdisplay {{ pv_device }}
- ignore_errors: yes
- register: pv_existed
- when: enabled_backend == "lvm"
-
-- name: remove a physical volume if lvm backend specified
- shell: pvremove {{ pv_device }}
- when: enabled_backend == "lvm" and pv_existed.rc == 0
-
-- name: stop cinder-standalone service
- shell: docker-compose down
- become: true
- args:
- chdir: "{{ cinder_data_dir }}/cinder/contrib/block-box"
- when: enabled_backend == "cinder"
-
-- name: clean the volume group of cinder
- shell:
- _raw_params: |
-
- # _clean_lvm_volume_group removes all default LVM volumes
- #
- # Usage: _clean_lvm_volume_group $vg
- function _clean_lvm_volume_group {
- local vg=$1
-
- # Clean out existing volumes
- sudo lvremove -f $vg
- }
-
- # _remove_lvm_volume_group removes the volume group
- #
- # Usage: _remove_lvm_volume_group $vg
- function _remove_lvm_volume_group {
- local vg=$1
-
- # Remove the volume group
- sudo vgremove -f $vg
- }
-
- # _clean_lvm_backing_file() removes the backing file of the
- # volume group
- #
- # Usage: _clean_lvm_backing_file() $backing_file
- function _clean_lvm_backing_file {
- local backing_file=$1
-
- # If the backing physical device is a loop device, it was probably setup by DevStack
- if [[ -n "$backing_file" ]] && [[ -e "$backing_file" ]]; then
- local vg_dev
- vg_dev=$(sudo losetup -j $backing_file | awk -F':' '/'.img'/ { print $1}')
- if [[ -n "$vg_dev" ]]; then
- sudo losetup -d $vg_dev
- fi
- rm -f $backing_file
- fi
- }
-
- # clean_lvm_volume_group() cleans up the volume group and removes the
- # backing file
- #
- # Usage: clean_lvm_volume_group $vg
- function clean_lvm_volume_group {
- local vg=$1
-
- _clean_lvm_volume_group $vg
- _remove_lvm_volume_group $vg
- # if there is no logical volume left, it's safe to attempt a cleanup
- # of the backing file
- if [[ -z "$(sudo lvs --noheadings -o lv_name $vg 2>/dev/null)" ]]; then
- _clean_lvm_backing_file {{ cinder_data_dir }}/${vg}.img
- fi
- }
-
- clean_lvm_volume_group {{cinder_volume_group}}
-
- args:
- executable: /bin/bash
- become: true
- when: enabled_backend == "cinder"
+--- +- name: remove golang tarball + file: + path: "/opt/{{ golang_tarball }}" + state: absent + force: yes + ignore_errors: yes + +- name: kill etcd daemon service + shell: killall etcd + ignore_errors: yes + when: db_driver == "etcd" and container_enabled == false + +- name: kill etcd containerized service + docker: + image: quay.io/coreos/etcd:latest + state: stopped + when: container_enabled == true + +- name: remove etcd service data + file: + path: "{{ etcd_dir }}" + state: absent + force: yes + ignore_errors: yes + when: db_driver == "etcd" + +- name: remove etcd tarball + file: + path: "/opt/{{ etcd_tarball }}" + state: absent + force: yes + ignore_errors: yes + when: db_driver == "etcd" + +- name: kill osdslet daemon service + shell: killall osdslet + ignore_errors: yes + when: container_enabled == false + +- name: kill osdslet containerized service + docker: + image: opensdsio/opensds-controller:latest + state: stopped + when: container_enabled == true + +- name: kill osdsdock daemon service + shell: killall osdsdock + ignore_errors: yes + when: container_enabled == false + +- name: kill osdsdock containerized service + docker: + image: opensdsio/opensds-dock:latest + state: stopped + when: container_enabled == true + +- name: clean all opensds build files + shell: . /etc/profile; make clean + args: + chdir: "{{ opensds_root_dir }}" + +- name: clean all opensds configuration files + file: + path: "{{ opensds_config_dir }}" + state: absent + force: yes + ignore_errors: yes + +- name: clean all opensds log files + file: + path: "{{ opensds_log_dir }}" + state: absent + force: yes + ignore_errors: yes + +- name: check if it existed before cleaning a volume group + shell: vgdisplay {{ vg_name }} + ignore_errors: yes + register: vg_existed + when: enabled_backend == "lvm" + +- name: remove a volume group if lvm backend specified + shell: vgremove {{ vg_name }} + when: enabled_backend == "lvm" and vg_existed.rc == 0 + +- name: check if it existed before cleaning a physical volume + shell: pvdisplay {{ pv_device }} + ignore_errors: yes + register: pv_existed + when: enabled_backend == "lvm" + +- name: remove a physical volume if lvm backend specified + shell: pvremove {{ pv_device }} + when: enabled_backend == "lvm" and pv_existed.rc == 0 + +- name: stop cinder-standalone service + shell: docker-compose down + become: true + args: + chdir: "{{ cinder_data_dir }}/cinder/contrib/block-box" + when: enabled_backend == "cinder" + +- name: clean the volume group of cinder + shell: + _raw_params: | + + # _clean_lvm_volume_group removes all default LVM volumes + # + # Usage: _clean_lvm_volume_group $vg + function _clean_lvm_volume_group { + local vg=$1 + + # Clean out existing volumes + sudo lvremove -f $vg + } + + # _remove_lvm_volume_group removes the volume group + # + # Usage: _remove_lvm_volume_group $vg + function _remove_lvm_volume_group { + local vg=$1 + + # Remove the volume group + sudo vgremove -f $vg + } + + # _clean_lvm_backing_file() removes the backing file of the + # volume group + # + # Usage: _clean_lvm_backing_file() $backing_file + function _clean_lvm_backing_file { + local backing_file=$1 + + # If the backing physical device is a loop device, it was probably setup by DevStack + if [[ -n "$backing_file" ]] && [[ -e "$backing_file" ]]; then + local vg_dev + vg_dev=$(sudo losetup -j $backing_file | awk -F':' '/'.img'/ { print $1}') + if [[ -n "$vg_dev" ]]; then + sudo losetup -d $vg_dev + fi + rm -f $backing_file + fi + } + + # clean_lvm_volume_group() cleans up the volume group and removes the + # backing file + # + # Usage: clean_lvm_volume_group $vg + function clean_lvm_volume_group { + local vg=$1 + + _clean_lvm_volume_group $vg + _remove_lvm_volume_group $vg + # if there is no logical volume left, it's safe to attempt a cleanup + # of the backing file + if [[ -z "$(sudo lvs --noheadings -o lv_name $vg 2>/dev/null)" ]]; then + _clean_lvm_backing_file {{ cinder_data_dir }}/${vg}.img + fi + } + + clean_lvm_volume_group {{cinder_volume_group}} + + args: + executable: /bin/bash + become: true + when: enabled_backend == "cinder" |