3 #Clean script to uninstall provisioning server for Foreman/QuickStack
4 #author: Tim Rozet (trozet@redhat.com)
6 #Uses Vagrant and VirtualBox
8 #Destroys Vagrant VM running in /tmp/bgs_vagrant
9 #Shuts down all nodes found in Khaleesi settings
10 #Removes hypervisor kernel modules (VirtualBox)
21 echo -e "\n\n${blue}This script is used to uninstall Foreman/QuickStack Installer and Clean OPNFV Target System${reset}\n\n"
22 echo -e "\nUsage:\n$0 [arguments] \n"
23 echo -e "\n -no_parse : No variable parsing into config. Flag. \n"
24 echo -e "\n -base_config : Full path of ksgen settings file to parse. Required. Will provide BMC info to shutdown hosts. Example: -base_config /opt/myinventory.yml \n"
29 if [[ ( $1 == "--help") || $1 == "-h" ]]; then
34 echo -e "\n\n${blue}This script is used to uninstall Foreman/QuickStack Installer and Clean OPNFV Target System${reset}\n\n"
35 echo "Use -h to display help"
38 while [ "`echo $1 | cut -c1`" = "-" ]
55 if ! yum list installed | grep -i ipmitool; then
56 if ! yum -y install ipmitool; then
57 echo "${red}Unable to install ipmitool!${reset}"
61 echo "${blue}Skipping ipmitool as it is already installed!${reset}"
64 ###find all the bmc IPs and number of nodes
66 output=`grep bmc_ip $base_config | grep -Eo '[0-9]+.[0-9]+.[0-9]+.[0-9]+'`
67 for line in ${output} ; do
68 bmc_ip[$node_counter]=$line
72 max_nodes=$((node_counter-1))
74 ###find bmc_users per node
76 output=`grep bmc_user $base_config | sed 's/\s*bmc_user:\s*//'`
77 for line in ${output} ; do
78 bmc_user[$node_counter]=$line
82 ###find bmc_pass per node
84 output=`grep bmc_pass $base_config | sed 's/\s*bmc_pass:\s*//'`
85 for line in ${output} ; do
86 bmc_pass[$node_counter]=$line
90 for mynode in `seq 0 $max_nodes`; do
91 echo "${blue}Node: ${bmc_ip[$mynode]} ${bmc_user[$mynode]} ${bmc_pass[$mynode]} ${reset}"
92 if ipmitool -I lanplus -P ${bmc_pass[$mynode]} -U ${bmc_user[$mynode]} -H ${bmc_ip[$mynode]} chassis power off; then
93 echo "${blue}Node: $mynode, ${bmc_ip[$mynode]} powered off!${reset}"
95 echo "${red}Error: Unable to power off $mynode, ${bmc_ip[$mynode]} ${reset}"
100 ###check to see if vbox is installed
101 vboxpkg=`rpm -qa | grep VirtualBox`
102 if [ $? -eq 0 ]; then
109 if [ $skip_vagrant -eq 0 ]; then
111 if vagrant destroy -f; then
112 echo "${blue}Successfully destroyed Foreman VM ${reset}"
114 echo "${red}Unable to destroy Foreman VM ${reset}"
115 echo "${blue}Checking if vagrant was already destroyed and no process is active...${reset}"
116 if ps axf | grep vagrant; then
117 echo "${red}Vagrant VM still exists...exiting ${reset}"
120 echo "${blue}Vagrant process doesn't exist. Moving on... ${reset}"
125 echo "${blue}Killing VirtualBox ${reset}"
130 echo "${blue}Removing VirtualBox ${reset}"
131 yum -y remove $vboxpkg
134 echo "${blue}Skipping Vagrant destroy + Vbox Removal as VirtualBox package is already removed ${reset}"
138 ###remove kernel modules
139 echo "${blue}Removing kernel modules ${reset}"
140 for kernel_mod in vboxnetadp vboxnetflt vboxpci vboxdrv; do
141 if ! rmmod $kernel_mod; then
142 if rmmod $kernel_mod 2>&1 | grep -i 'not currently loaded'; then
143 echo "${blue} $kernel_mod is not currently loaded! ${reset}"
145 echo "${red}Error trying to remove Kernel Module: $kernel_mod ${reset}"
149 echo "${blue}Removed Kernel Module: $kernel_mod ${reset}"