Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Cleanup host added as custom to Rancher 2.0
#!/bin/sh
docker rm -f $(docker ps -qa)
docker volume rm $(docker volume ls -q)
cleanupdirs="/var/lib/etcd /etc/kubernetes /etc/cni /opt/cni /var/lib/cni /var/run/calico /opt/rke"
for dir in $cleanupdirs; do
echo "Removing $dir"
rm -rf $dir
done
Copy link

ghost commented Aug 8, 2018

You are the man! I use this everyday.

@vyo
Copy link

vyo commented Aug 10, 2018

life saver =)

@steve-todorov
Copy link

steve-todorov commented Oct 11, 2018

Is there a way to put all of these in a single place other than creating a link with ln -s?

@tgruenert
Copy link

tgruenert commented Nov 30, 2018

This script delete Rancher2 nodes in a clean way and prepare a recycling / redeployment of nodes in a perfect manner. Little trick - great solution. Thank you.

(Typing some words about will give other users a chance to find this solution. Did it here for all of us ;-) ).

@moisei
Copy link

moisei commented Dec 19, 2018

I'll keep it here for myself :)!
curl https://gist.githubusercontent.com/superseb/2cf186726807a012af59a027cb41270d/raw/eaa2d235e7693c2d1c5a2a916349410274bb95a9/cleanup.sh > ./cleanup.sh && chmod a+x ./cleanup.sh && sudo ./cleanup.sh

@takatost
Copy link

takatost commented Mar 7, 2019

It works, thx. You are my hero!!

@davidjsanders
Copy link

davidjsanders commented Mar 29, 2019

Thank you for this, much appreciated!

I made a slight adaptation of this script and called it clean_rancher.sh after forgetting to run it as sudo, so pasting here in case it helps anyone else...

#!/bin/bash
user=$EUID
if [ "${user}" != "0" ]; then
  echo
  echo "$0 must be run as root - you are running as $EUID"
  echo
  exit 1
fi
echo
echo "About to destroy Rancher 2.x install"
echo "5s to cancel with ^c"
echo
sleep 5

containers=$(docker ps -aq)
if [ "${containers}x" != "x" ]
then
  docker rm -f $(docker ps -qa)
else
  echo "No running containers - ignoring docker rm"
fi

volumes=$(docker volume ls -q)
if [ "${volumes}x" != "x" ]
then
  docker volume rm $(docker volume ls -q)
else
  echo "No volumes - ignoring docker volume rm"
fi

cleanupdirs="/var/lib/etcd /etc/kubernetes /etc/cni /opt/cni /var/lib/cni /var/run/calico /opt/rke"
for dir in $cleanupdirs; do
  echo "Removing $dir"
  rm -rf $dir
done

Then, chmod +x clean_rancher.sh

Hope this helps others and thanks again for the original script!

David

@wolkjesmaker
Copy link

wolkjesmaker commented Apr 2, 2019

Thanks, saved me some trouble! 👍

@zzkgo
Copy link

zzkgo commented Apr 12, 2019

awesome work!

Copy link

ghost commented Jun 16, 2019

this repo is a hidden gem

@dinhanhhuy
Copy link

dinhanhhuy commented Sep 19, 2019

Is this command rm all container in docker (event it doesn't relate, and installed before Rancher cluster)?

@Snaacker
Copy link

Snaacker commented Sep 30, 2019

Is this command rm all container in docker (event it doesn't relate, and installed before Rancher cluster)?

It will remove all running container on your machine (even it's not related to Rancher cluster)

@sdirkwinkel
Copy link

sdirkwinkel commented Oct 2, 2019

I've changed the script to just remove rancher / k8s containers and images and use docker volume prune to cleanup volumes:

#!/bin/bash
user=$EUID
if [ "${user}" != "0" ]; then
  echo
  echo "$0 must be run as root - you are running as $EUID"
  echo
  exit 1
fi
echo
echo "About to destroy Rancher 2.x install"
echo "5s to cancel with ^c"
echo
sleep 5

containers=$(docker ps -a | grep -E "rancher|k8s" | awk '{print $1}')
if [ "${containers}x" != "x" ]
then
  docker rm -f $containers
else
  echo "No containers - ignoring docker rm"
fi

images=$(docker images -a | grep -E "rancher|k8s" | awk '{print $3}')
if [ "${images}x" != "x" ]
then
  docker rmi $images
else
  echo "No images - ignoring docker rmi"
fi

docker volume prune


cleanupdirs="/var/lib/etcd /etc/kubernetes /etc/cni /opt/cni /var/lib/cni /var/run/calico /opt/rke"
for dir in $cleanupdirs; do
  echo "Removing $dir"
  rm -rf $dir
done

@busla
Copy link

busla commented Oct 29, 2019

When installing rancher-agent on the same host for testing purposes the cluster would not run properly until I also removed all data from /opt/rancher, perhaps it was only one of the three dirs:

root@rancher:~# ls /opt/rancher
certs-cache  k3s  management-state

@qrzeller
Copy link

qrzeller commented May 4, 2020

Thanks !
ros should have a clean function. Or reinstall from cloud-config...

@mikekuzak
Copy link

mikekuzak commented Jan 24, 2021

Will this unregister the node from the cluster too ?

@awesinine
Copy link

awesinine commented Oct 16, 2021

saved me a bunch of time, tyvm!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment