kubeasz/99.clean.yml

205 lines
5.4 KiB
YAML
Raw Normal View History

# WARNING: This playbook will erase the entire k8s-cluster, include PODs, ETCD data etc.
# Make sure you know what you are doing.
2017-11-30 00:21:32 +08:00
# to clean 'kube-node' nodes
2017-12-26 15:52:35 +08:00
- hosts:
- kube-master
- new-master
2017-12-26 15:52:35 +08:00
- kube-node
- new-node
2017-11-30 00:21:32 +08:00
tasks:
2018-07-05 16:00:44 +08:00
- name: stop and disable kube-node service
service: name={{ item }} state=stopped enabled=no
with_items:
- kubelet
- kube-proxy
2017-11-30 00:21:32 +08:00
ignore_errors: true
- name: umount kubelet filesystems
2017-11-30 00:21:32 +08:00
shell: "mount | grep '/var/lib/kubelet'| awk '{print $3}'|xargs umount"
2018-10-11 11:01:15 +08:00
args:
warn: false
2017-11-30 00:21:32 +08:00
ignore_errors: true
- name: remove files and dirs of 'kube-node' nodes
2017-11-30 00:21:32 +08:00
file: name={{ item }} state=absent
with_items:
- "/var/lib/kubelet/"
2018-01-02 22:12:51 +08:00
- "/var/lib/kube-proxy/"
2017-11-30 00:21:32 +08:00
- "/etc/systemd/system/kubelet.service"
- "/etc/systemd/system/kube-proxy.service"
2018-05-06 23:10:14 +08:00
- "/opt/kube/kube-system/"
2017-11-30 00:21:32 +08:00
# to clean 'kube-master' nodes
- hosts:
- kube-master
- new-master
2017-11-30 00:21:32 +08:00
tasks:
2018-07-05 16:00:44 +08:00
- name: stop and disable kube-master service
service: name={{ item }} state=stopped enabled=no
with_items:
- kube-apiserver
- kube-controller-manager
- kube-scheduler
2017-11-30 00:21:32 +08:00
ignore_errors: true
- name: remove files and dirs of 'kube-master' nodes
2017-11-30 00:21:32 +08:00
file: name={{ item }} state=absent
with_items:
- "/var/run/kubernetes"
- "/etc/systemd/system/kube-apiserver.service"
- "/etc/systemd/system/kube-controller-manager.service"
- "/etc/systemd/system/kube-scheduler.service"
# to clean docker service and networking
2017-12-03 22:32:53 +08:00
- hosts:
- kube-master
- new-master
2018-03-02 08:40:29 +08:00
- kube-node
2017-12-26 15:52:35 +08:00
- new-node
2017-11-12 14:54:20 +08:00
tasks:
- name: clean 'kube-router' stuff
shell: "{{ bin_dir }}/docker run --privileged --net=host cloudnativelabs/kube-router --cleanup-config"
ignore_errors: true
when: "CLUSTER_NETWORK == 'kube-router'"
2018-07-05 16:00:44 +08:00
- name: stop and disable docker service
service:
name: docker
state: stopped
enabled: no
2017-11-12 14:54:20 +08:00
ignore_errors: true
# as k8s-network-plugins use host-network, '/var/run/docker/netns/default' must be umounted
- name: unmount docker filesystem-1
mount: path=/var/run/docker/netns/default state=unmounted
- name: unmount docker filesystem-2
mount: path=/var/lib/docker/overlay state=unmounted
- name: remove files and dirs
2017-11-12 14:54:20 +08:00
file: name={{ item }} state=absent
with_items:
- "/etc/cni/"
2017-12-03 22:32:53 +08:00
- "/root/.kube/"
2018-01-02 22:12:51 +08:00
- "/run/flannel/"
- "/etc/calico/"
2017-11-12 14:54:20 +08:00
- "/var/run/calico/"
2018-08-11 15:26:44 +08:00
- "/var/lib/calico/"
2017-11-12 14:54:20 +08:00
- "/var/log/calico/"
2018-08-05 16:12:32 +08:00
- "/etc/cilium/"
- "/var/run/cilium/"
- "/sys/fs/bpf/tc/"
- "/var/lib/cni/"
2017-11-12 14:54:20 +08:00
- "/var/lib/docker/"
2018-06-14 21:38:39 +08:00
- "/var/lib/kube-router/"
2017-11-12 14:54:20 +08:00
- "/var/run/docker/"
- "/etc/systemd/system/calico-node.service"
- "/etc/systemd/system/docker.service"
- "/etc/systemd/system/docker.service.requires/"
- "/etc/systemd/system/docker.service.d/"
2018-06-14 21:38:39 +08:00
- "/opt/kube/kube-system/"
2018-07-05 16:00:44 +08:00
- "/etc/bash_completion.d/docker"
ignore_errors: true
2017-11-12 14:54:20 +08:00
- name: cleanup iptables
2017-11-28 23:27:38 +08:00
shell: "iptables -F && iptables -X \
&& iptables -F -t nat && iptables -X -t nat \
&& iptables -F -t raw && iptables -X -t raw \
&& iptables -F -t mangle && iptables -X -t mangle"
2017-11-12 14:54:20 +08:00
- name: cleanup networks
2017-12-31 10:25:56 +08:00
shell: "ip link del docker0; \
ip link del tunl0; \
ip link del flannel.1; \
ip link del cni0; \
2018-01-05 23:05:22 +08:00
ip link del mynet0; \
ip link del kube-bridge; \
ip link del dummy0; \
2018-07-13 10:00:12 +08:00
ip link del kube-ipvs0; \
2018-08-11 22:37:57 +08:00
ip link del cilium_net; \
ip link del cilium_vxlan; \
2017-12-31 10:25:56 +08:00
systemctl restart networking; \
systemctl restart network"
2017-11-12 14:54:20 +08:00
ignore_errors: true
- name: cleanup 'calico' routes
shell: "for rt in `ip route|grep bird|sed 's/blackhole//'|awk '{print $1}'`;do ip route del $rt;done;"
when: "CLUSTER_NETWORK == 'calico'"
ignore_errors: true
# to clean 'etcd' nodes
2017-11-11 19:14:21 +08:00
- hosts: etcd
tasks:
2018-07-05 16:00:44 +08:00
- name: stop and disable etcd service
service:
name: etcd
state: stopped
enabled: no
2017-11-11 19:14:21 +08:00
ignore_errors: true
- name: remove files and dirs
2017-11-11 19:14:21 +08:00
file: name={{ item }} state=absent
with_items:
- "/var/lib/etcd"
- "/etc/etcd/"
2018-07-23 16:58:12 +08:00
- "/backup/k8s"
2017-11-11 19:14:21 +08:00
- "/etc/systemd/system/etcd.service"
# to clean 'lb' nodes
2017-11-11 19:14:21 +08:00
- hosts: lb
tasks:
- name: stop keepalived service
shell: systemctl disable keepalived && systemctl stop keepalived
ignore_errors: true
- name: stop haproxy service
shell: systemctl disable haproxy && systemctl stop haproxy
ignore_errors: true
- name: remove files and dirs
2017-11-11 19:14:21 +08:00
file: name={{ item }} state=absent
with_items:
- "/etc/haproxy"
- "/etc/keepalived"
# to clean ntp, certs and keys, env path
- hosts:
- kube-master
- new-master
- kube-node
- new-node
- deploy
- etcd
- lb
2018-03-02 10:44:55 +08:00
tasks:
2018-10-11 11:01:15 +08:00
- name: stop and disable chrony in Ubuntu
service: name=chrony state=stopped enabled=no
ignore_errors: true
tags: rm_ntp
when: ansible_distribution == "Ubuntu" or ansible_distribution == "Debian"
2019-01-03 20:21:39 +08:00
- name: stop and disable chronyd in CentOS/RedHat
2018-10-11 11:01:15 +08:00
service: name=chronyd state=stopped enabled=no
2018-08-17 12:27:25 +08:00
ignore_errors: true
tags: rm_ntp
2019-01-03 20:21:39 +08:00
when: ansible_distribution == "CentOS" or ansible_distribution == "RedHat"
2018-08-17 12:27:25 +08:00
- name: clean certs and keys
2018-03-02 08:40:29 +08:00
file: name={{ item }} state=absent
with_items:
- "/etc/kubernetes/"
2018-03-02 08:40:29 +08:00
- "{{ ca_dir }}"
- "/root/.kube/"
- "/etc/docker/"
2018-05-03 01:49:42 +08:00
- name: clean 'ENV PATH'
2018-05-04 15:27:46 +08:00
lineinfile:
2018-05-06 09:08:09 +08:00
dest: ~/.bashrc
2018-05-04 15:27:46 +08:00
state: absent
2018-07-02 16:48:26 +08:00
regexp: '{{ item }}'
with_items:
- 'kubeasz'
- 'helm'
- 'kubectl completion'