4 source $(dirname $PWD)/../lib/common.sh
5 source $(dirname $PWD)/../lib/logging.sh
7 if [[ $EUID -ne 0 ]]; then
8 echo "This script must be run as root"
12 if [[ $(lsb_release -d | cut -f2) != $UBUNTU_BIONIC ]]; then
13 echo "Currently Ubuntu 18.04.2 LTS is only supported"
19 rm -rf /etc/apt/sources.list.d/*
22 function clean_essential_packages {
24 for package in crudini curl dnsmasq figlet golang nmap patch psmisc \
25 python-pip python-requests python-setuptools vim wget; do
26 apt-get remove $package -y
32 function check_prerequisite {
34 apt-get install python-pip -y
37 if !(which curl); then
38 apt-get install curl -y
41 if !(which add-apt-repository); then
42 apt-get install software-properties-common -y
46 function clean_ironic_packages {
47 for package in python-ironicclient \
48 python-ironic-inspector-client \
49 python-openstackclient genisoimage; do
50 apt-get remove $package -y
54 function clean_docker_packages {
55 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
57 "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
61 apt-get remove docker-ce -y
62 for package in apt-transport-https ca-certificates gnupg-agent \
63 software-properties-common; do
64 apt-get remove $package -y
67 apt-get remove -y docker \
77 function clean_podman_packages {
79 add-apt-repository -y ppa:projectatomic/ppa
80 apt-get remove podman -y
83 function clean_kubernetes_packages {
84 #Just to make sure kubernetes packages are removed during the download
85 curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
86 bash -c 'cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
87 deb https://apt.kubernetes.io/ kubernetes-xenial main
90 apt-get remove kubelet kubeadm kubectl -y
93 function clean_apt_cache {
95 pushd /var/cache/apt/archives
97 if [ $(ls -1q . | wc -l ) -ge 3 ]; then
98 $(rm !("lock"|"partial"))
104 function mv_apt_cache {
106 pushd /var/cache/apt/archives
108 if [ $(ls -1q . | wc -l ) -gt 2 ]; then
109 $(mv !("lock"|"partial") $LOCAL_APT_REPO)
124 if [ $(ls -1q . | wc -l ) -ne 0 ]; then
130 if [ "$1" == "--only-packages" ]; then
132 clean_docker_packages
133 clean_ironic_packages
140 check_dir $LOCAL_APT_REPO
141 clean_dir $LOCAL_APT_REPO
142 check_dir $PIP_CACHE_DIR
143 clean_dir $PIP_CACHE_DIR
146 check_dir $CONTAINER_IMAGES_DIR
147 clean_dir $CONTAINER_IMAGES_DIR
148 clean_kubernetes_packages
149 clean_podman_packages
150 clean_docker_packages
151 clean_ironic_packages
152 clean_essential_packages
153 rm -rf $LOCAL_APT_REPO
154 rm -rf $PIP_CACHE_DIR
156 rm -rf $CONTAINER_IMAGES_DIR