You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

209 lines
4.7 KiB

7 years ago
7 years ago
7 years ago
  1. ---
  2. - name: reset | stop services
  3. service:
  4. name: "{{ item }}"
  5. state: stopped
  6. with_items:
  7. - kubelet
  8. - vault
  9. - etcd
  10. - etcd-events
  11. failed_when: false
  12. tags:
  13. - services
  14. - name: reset | remove services
  15. file:
  16. path: "/etc/systemd/system/{{ item }}.service"
  17. state: absent
  18. with_items:
  19. - kubelet
  20. - etcd
  21. - etcd-events
  22. - vault
  23. - calico-node
  24. register: services_removed
  25. tags:
  26. - services
  27. - name: reset | remove docker dropins
  28. file:
  29. path: "/etc/systemd/system/docker.service.d/{{ item }}"
  30. state: absent
  31. with_items:
  32. - docker-dns.conf
  33. - docker-options.conf
  34. register: docker_dropins_removed
  35. tags:
  36. - docker
  37. - name: reset | systemctl daemon-reload
  38. command: systemctl daemon-reload
  39. when: services_removed.changed or docker_dropins_removed.changed
  40. - name: reset | remove all containers
  41. shell: "{{ docker_bin_dir }}/docker ps -aq | xargs -r docker rm -fv"
  42. register: remove_all_containers
  43. retries: 4
  44. until: remove_all_containers.rc == 0
  45. delay: 5
  46. tags:
  47. - docker
  48. - name: reset | restart docker if needed
  49. service:
  50. name: docker
  51. state: restarted
  52. when: docker_dropins_removed.changed
  53. tags:
  54. - docker
  55. - name: reset | gather mounted kubelet dirs
  56. shell: mount | grep /var/lib/kubelet | awk '{print $3}' | tac
  57. check_mode: no
  58. register: mounted_dirs
  59. tags:
  60. - mounts
  61. - name: reset | unmount kubelet dirs
  62. command: umount {{item}}
  63. with_items: '{{ mounted_dirs.stdout_lines }}'
  64. register: umount_dir
  65. retries: 4
  66. until: umount_dir.rc == 0
  67. delay: 5
  68. tags:
  69. - mounts
  70. - name: flush iptables
  71. iptables:
  72. table: "{{ item }}"
  73. flush: yes
  74. with_items:
  75. - filter
  76. - nat
  77. when: flush_iptables|bool
  78. tags:
  79. - iptables
  80. - name: reset | delete some files and directories
  81. file:
  82. path: "{{ item }}"
  83. state: absent
  84. with_items:
  85. - "{{kube_config_dir}}"
  86. - /var/lib/kubelet
  87. - /root/.kube
  88. - /root/.helm
  89. - "{{ etcd_data_dir }}"
  90. - /var/lib/etcd-events
  91. - /etc/ssl/etcd
  92. - /var/log/calico
  93. - /etc/cni
  94. - /etc/nginx
  95. - /etc/dnsmasq.d
  96. - /etc/dnsmasq.conf
  97. - /etc/dnsmasq.d-available
  98. - /etc/etcd.env
  99. - /etc/calico
  100. - /etc/weave.env
  101. - /opt/cni
  102. - /etc/dhcp/dhclient.d/zdnsupdate.sh
  103. - /etc/dhcp/dhclient-exit-hooks.d/zdnsupdate
  104. - /run/flannel
  105. - /etc/flannel
  106. - /run/kubernetes
  107. - /usr/local/share/ca-certificates/etcd-ca.crt
  108. - /usr/local/share/ca-certificates/kube-ca.crt
  109. - /usr/local/share/ca-certificates/vault-ca.crt
  110. - /etc/ssl/certs/etcd-ca.pem
  111. - /etc/ssl/certs/kube-ca.pem
  112. - /etc/ssl/certs/vault-ca.crt
  113. - /etc/pki/ca-trust/source/anchors/etcd-ca.crt
  114. - /etc/pki/ca-trust/source/anchors/kube-ca.crt
  115. - /etc/pki/ca-trust/source/anchors/vault-ca.crt
  116. - /etc/vault
  117. - /var/log/pods/
  118. - "{{ bin_dir }}/kubelet"
  119. - "{{ bin_dir }}/etcd-scripts"
  120. - "{{ bin_dir }}/etcd"
  121. - "{{ bin_dir }}/etcd-events"
  122. - "{{ bin_dir }}/etcdctl"
  123. - "{{ bin_dir }}/kubernetes-scripts"
  124. - "{{ bin_dir }}/kubectl"
  125. - "{{ bin_dir }}/kubeadm"
  126. - "{{ bin_dir }}/helm"
  127. - "{{ bin_dir }}/calicoctl"
  128. - "{{ bin_dir }}/weave"
  129. - /var/lib/rkt
  130. - /etc/vault
  131. ignore_errors: yes
  132. tags:
  133. - files
  134. - name: reset | remove dns settings from dhclient.conf
  135. blockinfile:
  136. dest: "{{ item }}"
  137. state: absent
  138. follow: yes
  139. marker: "# Ansible entries {mark}"
  140. failed_when: false
  141. with_items:
  142. - /etc/dhclient.conf
  143. - /etc/dhcp/dhclient.conf
  144. tags:
  145. - files
  146. - dns
  147. - name: reset | remove host entries from /etc/hosts
  148. blockinfile:
  149. dest: "/etc/hosts"
  150. state: absent
  151. follow: yes
  152. marker: "# Ansible inventory hosts {mark}"
  153. tags:
  154. - files
  155. - dns
  156. - name: reset | check cni network device
  157. stat:
  158. path: /sys/class/net/cni0
  159. register: cni
  160. when: kube_network_plugin == 'flannel'
  161. tags:
  162. - flannel
  163. - name: reset | remove the network device created by the flannel
  164. command: ip link del cni0
  165. when: kube_network_plugin == 'flannel' and cni.stat.exists
  166. tags:
  167. - flannel
  168. - name: reset | check flannel network device
  169. stat:
  170. path: /sys/class/net/flannel.1
  171. register: flannel
  172. when: kube_network_plugin == 'flannel'
  173. tags:
  174. - flannel
  175. - name: reset | remove the network device created by the flannel
  176. command: ip link del flannel.1
  177. when: kube_network_plugin == 'flannel' and flannel.stat.exists
  178. tags:
  179. - flannel
  180. - name: reset | Restart network
  181. service:
  182. name: >-
  183. {% if ansible_os_family == "RedHat" -%}
  184. network
  185. {%- elif ansible_os_family == "Debian" -%}
  186. networking
  187. {%- endif %}
  188. state: restarted
  189. when: ansible_os_family not in ["CoreOS", "Container Linux by CoreOS"] and reset_restart_network
  190. tags:
  191. - services
  192. - network