uninstall.yml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414
  1. # This deletes *ALL* Origin, Atomic Enterprise Platform and OpenShift
  2. # Enterprise content installed by ansible. This includes:
  3. #
  4. # configuration
  5. # containers
  6. # example templates and imagestreams
  7. # images
  8. # RPMs
  9. ---
  10. - hosts: OSEv3:children
  11. become: yes
  12. tasks:
  13. - name: Detecting Operating System
  14. shell: ls /run/ostree-booted
  15. ignore_errors: yes
  16. failed_when: false
  17. register: ostree_output
  18. # Since we're not calling openshift_facts we'll do this for now
  19. - set_fact:
  20. is_atomic: "{{ ostree_output.rc == 0 }}"
  21. - set_fact:
  22. is_containerized: "{{ is_atomic or containerized | default(false) | bool }}"
  23. # Stop services on all hosts prior to removing files.
  24. - hosts: nodes
  25. become: yes
  26. tasks:
  27. - name: Stop services
  28. service: name={{ item }} state=stopped
  29. with_items:
  30. - atomic-enterprise-node
  31. - atomic-openshift-node
  32. - openshift-node
  33. - openvswitch
  34. - origin-node
  35. failed_when: false
  36. - hosts: masters
  37. become: yes
  38. tasks:
  39. - name: Stop services
  40. service: name={{ item }} state=stopped
  41. with_items:
  42. - atomic-enterprise-master
  43. - atomic-openshift-master
  44. - atomic-openshift-master-api
  45. - atomic-openshift-master-controllers
  46. - openshift-master
  47. - openshift-master-api
  48. - openshift-master-controllers
  49. - origin-master
  50. - origin-master-api
  51. - origin-master-controllers
  52. - pcsd
  53. failed_when: false
  54. - hosts: etcd
  55. become: yes
  56. tasks:
  57. - name: Stop services
  58. service: name={{ item }} state=stopped
  59. with_items:
  60. - etcd
  61. failed_when: false
  62. - hosts: lb
  63. become: yes
  64. tasks:
  65. - name: Stop services
  66. service: name={{ item }} state=stopped
  67. with_items:
  68. - haproxy
  69. failed_when: false
  70. - hosts: nodes
  71. become: yes
  72. tasks:
  73. - name: unmask services
  74. command: systemctl unmask "{{ item }}"
  75. changed_when: False
  76. failed_when: False
  77. with_items:
  78. - firewalld
  79. - name: Remove packages
  80. package: name={{ item }} state=absent
  81. when: not is_atomic | bool
  82. with_items:
  83. - atomic-enterprise
  84. - atomic-enterprise-node
  85. - atomic-enterprise-sdn-ovs
  86. - atomic-openshift
  87. - atomic-openshift-clients
  88. - atomic-openshift-excluder
  89. - atomic-openshift-docker-excluder
  90. - atomic-openshift-node
  91. - atomic-openshift-sdn-ovs
  92. - cockpit-bridge
  93. - cockpit-docker
  94. - cockpit-shell
  95. - cockpit-ws
  96. - kubernetes-client
  97. - openshift
  98. - openshift-node
  99. - openshift-sdn
  100. - openshift-sdn-ovs
  101. - openvswitch
  102. - origin
  103. - origin-excluder
  104. - origin-docker-excluder
  105. - origin-clients
  106. - origin-node
  107. - origin-sdn-ovs
  108. - tuned-profiles-atomic-enterprise-node
  109. - tuned-profiles-atomic-openshift-node
  110. - tuned-profiles-openshift-node
  111. - tuned-profiles-origin-node
  112. - name: Remove flannel package
  113. package: name=flannel state=absent
  114. when: openshift_use_flannel | default(false) | bool and not is_atomic | bool
  115. - shell: systemctl reset-failed
  116. changed_when: False
  117. - shell: systemctl daemon-reload
  118. changed_when: False
  119. - name: Remove br0 interface
  120. shell: ovs-vsctl del-br br0
  121. changed_when: False
  122. failed_when: False
  123. - name: Remove linux interfaces
  124. shell: ip link del "{{ item }}"
  125. changed_when: False
  126. failed_when: False
  127. with_items:
  128. - lbr0
  129. - vlinuxbr
  130. - vovsbr
  131. - shell: find /var/lib/origin/openshift.local.volumes -type d -exec umount {} \; 2>/dev/null || true
  132. changed_when: False
  133. - shell: find /var/lib/atomic-enterprise/openshift.local.volumes -type d -exec umount {} \; 2>/dev/null || true
  134. changed_when: False
  135. - shell: find /var/lib/openshift/openshift.local.volumes -type d -exec umount {} \; 2>/dev/null || true
  136. changed_when: False
  137. - shell: docker rm -f "{{ item }}"-master "{{ item }}"-node
  138. changed_when: False
  139. failed_when: False
  140. with_items:
  141. - openshift-enterprise
  142. - atomic-enterprise
  143. - origin
  144. - shell: docker ps -a | grep Exited | egrep "{{ item }}" | awk '{print $1}'
  145. changed_when: False
  146. failed_when: False
  147. register: exited_containers_to_delete
  148. with_items:
  149. - aep3.*/aep
  150. - aep3.*/node
  151. - aep3.*/openvswitch
  152. - openshift3/ose
  153. - openshift3/node
  154. - openshift3/openvswitch
  155. - openshift/origin
  156. - shell: "docker rm {{ item.stdout_lines | join(' ') }}"
  157. changed_when: False
  158. failed_when: False
  159. with_items: "{{ exited_containers_to_delete.results }}"
  160. - shell: docker images | egrep {{ item }} | awk '{ print $3 }'
  161. changed_when: False
  162. failed_when: False
  163. register: images_to_delete
  164. with_items:
  165. - registry\.access\..*redhat\.com/openshift3
  166. - registry\.access\..*redhat\.com/aep3
  167. - registry\.qe\.openshift\.com/.*
  168. - registry\.access\..*redhat\.com/rhel7/etcd
  169. - docker.io/openshift
  170. when: openshift_uninstall_images | default(True) | bool
  171. - shell: "docker rmi -f {{ item.stdout_lines | join(' ') }}"
  172. changed_when: False
  173. failed_when: False
  174. with_items: "{{ images_to_delete.results }}"
  175. when: openshift_uninstall_images | default(True) | bool
  176. - name: Remove sdn drop files
  177. file:
  178. path: /run/openshift-sdn
  179. state: absent
  180. - name: Remove remaining files
  181. file: path={{ item }} state=absent
  182. with_items:
  183. - /etc/ansible/facts.d/openshift.fact
  184. - /etc/atomic-enterprise
  185. - /etc/dnsmasq.d/origin-dns.conf
  186. - /etc/dnsmasq.d/origin-upstream-dns.conf
  187. - /etc/NetworkManager/dispatcher.d/99-origin-dns.sh
  188. - /etc/openshift
  189. - /etc/openshift-sdn
  190. - /etc/origin
  191. - /etc/sysconfig/atomic-enterprise-node
  192. - /etc/sysconfig/atomic-openshift-node
  193. - /etc/sysconfig/atomic-openshift-node-dep
  194. - /etc/sysconfig/openshift-node
  195. - /etc/sysconfig/openshift-node-dep
  196. - /etc/sysconfig/openvswitch
  197. - /etc/sysconfig/origin-node
  198. - /etc/sysconfig/origin-node
  199. - /etc/sysconfig/origin-node-dep
  200. - /etc/systemd/system/atomic-openshift-node-dep.service
  201. - /etc/systemd/system/atomic-openshift-node.service
  202. - /etc/systemd/system/atomic-openshift-node.service.wants
  203. - /etc/systemd/system/docker.service.d/docker-sdn-ovs.conf
  204. - /etc/systemd/system/openvswitch.service
  205. - /etc/systemd/system/origin-node-dep.service
  206. - /etc/systemd/system/origin-node.service
  207. - /etc/systemd/system/origin-node.service.wants
  208. - /run/openshift-sdn
  209. - /var/lib/atomic-enterprise
  210. - /var/lib/openshift
  211. - /var/lib/origin
  212. - name: restart docker
  213. service: name=docker state=restarted
  214. - name: restart NetworkManager
  215. service: name=NetworkManager state=restarted
  216. - hosts: masters
  217. become: yes
  218. tasks:
  219. - name: unmask services
  220. command: systemctl unmask "{{ item }}"
  221. changed_when: False
  222. failed_when: False
  223. with_items:
  224. - firewalld
  225. - atomic-openshift-master
  226. - name: Remove packages
  227. package: name={{ item }} state=absent
  228. when: not is_atomic | bool
  229. with_items:
  230. - atomic-enterprise
  231. - atomic-enterprise-master
  232. - atomic-openshift
  233. - atomic-openshift-clients
  234. - atomic-openshift-excluder
  235. - atomic-openshift-docker-excluder
  236. - atomic-openshift-master
  237. - cockpit-bridge
  238. - cockpit-docker
  239. - cockpit-shell
  240. - cockpit-ws
  241. - corosync
  242. - kubernetes-client
  243. - openshift
  244. - openshift-master
  245. - origin
  246. - origin-clients
  247. - origin-excluder
  248. - origin-docker-excluder
  249. - origin-master
  250. - pacemaker
  251. - pcs
  252. - shell: systemctl reset-failed
  253. changed_when: False
  254. - shell: systemctl daemon-reload
  255. changed_when: False
  256. - name: Remove remaining files
  257. file: path={{ item }} state=absent
  258. with_items:
  259. - "~{{ ansible_ssh_user }}/.kube"
  260. - /etc/ansible/facts.d/openshift.fact
  261. - /etc/atomic-enterprise
  262. - /etc/corosync
  263. - /etc/openshift
  264. - /etc/openshift-sdn
  265. - /etc/origin
  266. - /etc/systemd/system/atomic-openshift-master.service
  267. - /etc/systemd/system/atomic-openshift-master-api.service
  268. - /etc/systemd/system/atomic-openshift-master-controllers.service
  269. - /etc/systemd/system/origin-master.service
  270. - /etc/systemd/system/origin-master-api.service
  271. - /etc/systemd/system/origin-master-controllers.service
  272. - /etc/systemd/system/openvswitch.service
  273. - /etc/sysconfig/atomic-enterprise-master
  274. - /etc/sysconfig/atomic-enterprise-master-api
  275. - /etc/sysconfig/atomic-enterprise-master-controllers
  276. - /etc/sysconfig/atomic-openshift-master
  277. - /etc/sysconfig/atomic-openshift-master-api
  278. - /etc/sysconfig/atomic-openshift-master-controllers
  279. - /etc/sysconfig/origin-master
  280. - /etc/sysconfig/origin-master-api
  281. - /etc/sysconfig/origin-master-controllers
  282. - /etc/sysconfig/openshift-master
  283. - /etc/sysconfig/openvswitch
  284. - /etc/sysconfig/origin-master
  285. - /etc/sysconfig/origin-master-api
  286. - /etc/sysconfig/origin-master-controllers
  287. - /root/.kube
  288. - /usr/share/openshift/examples
  289. - /var/lib/atomic-enterprise
  290. - /var/lib/openshift
  291. - /var/lib/origin
  292. - /var/lib/pacemaker
  293. - /var/lib/pcsd
  294. - /usr/lib/systemd/system/atomic-openshift-master-api.service
  295. - /usr/lib/systemd/system/atomic-openshift-master-controllers.service
  296. - /usr/lib/systemd/system/origin-master-api.service
  297. - /usr/lib/systemd/system/origin-master-controllers.service
  298. - /usr/local/bin/openshift
  299. - /usr/local/bin/oadm
  300. - /usr/local/bin/oc
  301. - /usr/local/bin/kubectl
  302. - /etc/flannel
  303. # Since we are potentially removing the systemd unit files for separated
  304. # master-api and master-controllers services, so we need to reload the
  305. # systemd configuration manager
  306. - name: Reload systemd manager configuration
  307. command: systemctl daemon-reload
  308. - hosts: etcd
  309. become: yes
  310. tasks:
  311. - name: unmask services
  312. command: systemctl unmask "{{ item }}"
  313. changed_when: False
  314. failed_when: False
  315. with_items:
  316. - etcd
  317. - etcd3
  318. - firewalld
  319. - name: Stop additional atomic services
  320. service: name={{ item }} state=stopped
  321. when: is_containerized | bool
  322. with_items:
  323. - etcd_container
  324. failed_when: false
  325. - name: Remove packages
  326. package: name={{ item }} state=absent
  327. when: not is_atomic | bool
  328. with_items:
  329. - etcd
  330. - etcd3
  331. - shell: systemctl reset-failed
  332. changed_when: False
  333. - shell: systemctl daemon-reload
  334. changed_when: False
  335. - name: Remove remaining files
  336. file: path={{ item }} state=absent
  337. with_items:
  338. - /etc/ansible/facts.d/openshift.fact
  339. - /etc/etcd
  340. - /etc/systemd/system/etcd_container.service
  341. - /etc/profile.d/etcdctl.sh
  342. # Intenationally using rm command over file module because if someone had mounted a filesystem
  343. # at /var/lib/etcd then the contents was not removed correctly
  344. - name: Remove etcd data
  345. shell: rm -rf /var/lib/etcd/*
  346. args:
  347. warn: no
  348. failed_when: false
  349. - hosts: lb
  350. become: yes
  351. tasks:
  352. - name: unmask services
  353. command: systemctl unmask "{{ item }}"
  354. changed_when: False
  355. failed_when: False
  356. with_items:
  357. - firewalld
  358. - name: Remove packages
  359. package: name={{ item }} state=absent
  360. when: not is_atomic | bool
  361. with_items:
  362. - haproxy
  363. - shell: systemctl reset-failed
  364. changed_when: False
  365. - shell: systemctl daemon-reload
  366. changed_when: False
  367. - name: Remove remaining files
  368. file: path={{ item }} state=absent
  369. with_items:
  370. - /etc/ansible/facts.d/openshift.fact
  371. - /var/lib/haproxy