Add a script to generate command to remove lvm-osd
This commit is contained in:
parent
fe6bd07b01
commit
32bab13c7b
|
@ -0,0 +1,77 @@
|
|||
#!/bin/sh
|
||||
|
||||
# This script intend to generate another temp script with the differents
|
||||
# commands to remove a Ceph-OSD previously generated with `ceph-volume lvm`
|
||||
|
||||
# Give the OSD number to remove as first argument
|
||||
OSD_ID_TO_REMOVE="${1}"
|
||||
|
||||
## Colors definition {{{
|
||||
BLACK='\033[49;30m'
|
||||
BLACKB='\033[49;90m'
|
||||
RED='\033[0;31m'
|
||||
REDB='\033[1;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[0;33m'
|
||||
BLUE='\033[94;49m'
|
||||
MAGENTA='\033[0;35m'
|
||||
CYAN='\033[36;49m'
|
||||
WHITE='\033[0;37m'
|
||||
BOLD='\033[1m'
|
||||
RESET='\033[0m'
|
||||
## }}}
|
||||
|
||||
# Test the first argument
|
||||
if [ -z "${OSD_ID_TO_REMOVE}" ]; then
|
||||
printf '%b\n' "${REDB}You should give the OSD_ID to remove as first argument.${RESET}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Path of the temp generated script
|
||||
temp_script="/tmp/lvm-osd.to.remove.sh"
|
||||
|
||||
# Get all informations
|
||||
osd_path="/var/lib/ceph/osd/ceph-${OSD_ID_TO_REMOVE}"
|
||||
lv_path=$(file /var/lib/ceph/osd/ceph-"${OSD_ID_TO_REMOVE}"/block | cut -d" " -f5)
|
||||
vg_name=$(lvs --noheadings -o vg_name "${lv_path}" | tr -d ' ')
|
||||
pv_path=$(lvs --noheadings -o devices "${lv_path}" | sed 's;.*\(/dev/...\).*;\1;')
|
||||
|
||||
# Tests {{{
|
||||
# }}}
|
||||
|
||||
printf '%b\n' "OSD path to umount then to remove : ${REDB}${osd_path}${RESET}"
|
||||
printf '%b\n' "OSD_ID to remove : ${REDB}${OSD_ID_TO_REMOVE}${RESET}"
|
||||
if [ ! -L "${lv_path}" ]; then
|
||||
printf '%b\n' "The logical volume doesn't seems to exists."
|
||||
printf '%b\n' "${REDB}It might be better to manually purge the OSD.${RESET}"
|
||||
else
|
||||
printf '%b\n' "Logical Volume to remove : ${REDB}${lv_path}${RESET}"
|
||||
fi
|
||||
printf '%b\n' "Volume Group to remove : ${REDB}${vg_name}${RESET}"
|
||||
printf '%b\n' "Physical volume to remove : ${REDB}${pv_path}${RESET}"
|
||||
|
||||
# Generate a temp script with the expected commands
|
||||
rm -rf -- "${temp_script}"
|
||||
touch -- "${temp_script}"
|
||||
|
||||
printf '%b\n' "#!/bin/sh" >> "${temp_script}"
|
||||
|
||||
## Umount the OSD
|
||||
printf '%b\n' "umount ${osd_path}" >> "${temp_script}"
|
||||
|
||||
## Remove mount path
|
||||
printf '%b\n' "rmdir -- ${osd_path}" >> "${temp_script}"
|
||||
|
||||
## Remove the LV
|
||||
printf '%b\n' "lvremove ${lv_path}" >> "${temp_script}"
|
||||
|
||||
## Remove the VG
|
||||
printf '%b\n' "vgremove ${vg_name}" >> "${temp_script}"
|
||||
|
||||
## Remove the PV
|
||||
printf '%b\n' "pvremove ${pv_path}" >> "${temp_script}"
|
||||
|
||||
|
||||
printf '%b\n' "A temp script with expected commands is available to : ${GREEN}${temp_script}${RESET}"
|
||||
|
||||
exit 0
|
Loading…
Reference in New Issue