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.

119 lines
2.7 KiB

  1. ---
  2. - name: reset | stop services
  3. service:
  4. name: "{{ item }}"
  5. state: stopped
  6. with_items:
  7. - kubelet
  8. - etcd
  9. failed_when: false
  10. tags: ['services']
  11. - name: reset | remove services
  12. file:
  13. path: "/etc/systemd/system/{{ item }}.service"
  14. state: absent
  15. with_items:
  16. - kubelet
  17. - etcd
  18. register: services_removed
  19. tags: ['services']
  20. - name: reset | remove docker dropins
  21. file:
  22. path: "/etc/systemd/system/docker.service.d/{{ item }}"
  23. state: absent
  24. with_items:
  25. - docker-dns.conf
  26. - docker-options.conf
  27. register: docker_dropins_removed
  28. tags: ['docker']
  29. - name: reset | systemctl daemon-reload
  30. command: systemctl daemon-reload
  31. when: services_removed.changed or docker_dropins_removed.changed
  32. - name: reset | remove all containers
  33. shell: "{{ docker_bin_dir }}/docker ps -aq | xargs -r docker rm -fv"
  34. tags: ['docker']
  35. - name: reset | restart docker if needed
  36. service:
  37. name: docker
  38. state: restarted
  39. when: docker_dropins_removed.changed
  40. tags: ['docker']
  41. - name: reset | gather mounted kubelet dirs
  42. shell: mount | grep /var/lib/kubelet | awk '{print $3}' | tac
  43. check_mode: no
  44. register: mounted_dirs
  45. tags: ['mounts']
  46. - name: reset | unmount kubelet dirs
  47. command: umount {{item}}
  48. with_items: '{{ mounted_dirs.stdout_lines }}'
  49. tags: ['mounts']
  50. - name: flush iptables
  51. iptables:
  52. flush: yes
  53. when: flush_iptables|bool
  54. tags: ['iptables']
  55. - name: reset | delete some files and directories
  56. file:
  57. path: "{{ item }}"
  58. state: absent
  59. with_items:
  60. - "{{kube_config_dir}}"
  61. - /var/lib/kubelet
  62. - "{{ etcd_data_dir }}"
  63. - /etc/ssl/etcd
  64. - /var/log/calico
  65. - /etc/cni
  66. - /etc/nginx
  67. - /etc/dnsmasq.d
  68. - /etc/dnsmasq.conf
  69. - /etc/dnsmasq.d-available
  70. - /etc/etcd.env
  71. - /etc/calico
  72. - /opt/cni
  73. - /etc/dhcp/dhclient.d/zdnsupdate.sh
  74. - /etc/dhcp/dhclient-exit-hooks.d/zdnsupdate
  75. - "{{ bin_dir }}/kubelet"
  76. tags: ['files']
  77. - name: reset | remove dns settings from dhclient.conf
  78. blockinfile:
  79. dest: "{{ item }}"
  80. state: absent
  81. follow: yes
  82. marker: "# Ansible entries {mark}"
  83. failed_when: false
  84. with_items:
  85. - /etc/dhclient.conf
  86. - /etc/dhcp/dhclient.conf
  87. tags: ['files', 'dns']
  88. - name: reset | remove host entries from /etc/hosts
  89. blockinfile:
  90. dest: "/etc/hosts"
  91. state: absent
  92. follow: yes
  93. marker: "# Ansible inventory hosts {mark}"
  94. tags: ['files', 'dns']
  95. - name: reset | Restart network
  96. service:
  97. name: >-
  98. {% if ansible_os_family == "RedHat" -%}
  99. network
  100. {%- elif ansible_os_family == "Debian" -%}
  101. networking
  102. {%- endif %}
  103. state: restarted
  104. when: ansible_os_family not in ["CoreOS", "Container Linux by CoreOS"]
  105. tags: ['services', 'network']