From 7eab0bb74f87c78c1e2c92c3841b549272686191 Mon Sep 17 00:00:00 2001 From: ismoilovdevml Date: Tue, 10 Sep 2024 15:14:49 +0500 Subject: [PATCH] [NEW] addes uninstall playbook --- Ansible/jenkins/uninstall_jenkins.yml | 101 ++++++++++++++++++++++++++ Ansible/minio/minio_install.yml | 4 +- Ansible/minio/uninstall_minio.yml | 68 +++++++++++++++++ 3 files changed, 171 insertions(+), 2 deletions(-) create mode 100644 Ansible/jenkins/uninstall_jenkins.yml create mode 100644 Ansible/minio/uninstall_minio.yml diff --git a/Ansible/jenkins/uninstall_jenkins.yml b/Ansible/jenkins/uninstall_jenkins.yml new file mode 100644 index 0000000..da03e9d --- /dev/null +++ b/Ansible/jenkins/uninstall_jenkins.yml @@ -0,0 +1,101 @@ +--- +- name: Uninstall Jenkins and cleanup on multiple OS + hosts: jenkins_servers + become: true + vars: + java_package_debian: openjdk-17-jre + java_package_rhel: java-17-openjdk + + tasks: + + - name: Stop Jenkins on Debian/Ubuntu + when: ansible_os_family == "Debian" + systemd: + name: jenkins + state: stopped + ignore_errors: yes # Agar xizmat topilmasa ham, davom ettiradi + + - name: Uninstall Jenkins and Java on Debian/Ubuntu + when: ansible_os_family == "Debian" + apt: + name: + - jenkins + - "{{ java_package_debian }}" + - fontconfig + state: absent + purge: yes + + - name: Remove Jenkins repo from sources list on Debian/Ubuntu + when: ansible_os_family == "Debian" + ansible.builtin.file: + path: /etc/apt/sources.list.d/jenkins.list + state: absent + + - name: Remove Jenkins keyring on Debian/Ubuntu + when: ansible_os_family == "Debian" + ansible.builtin.file: + path: /usr/share/keyrings/jenkins-keyring.asc + state: absent + + - name: Remove Jenkins cache and log directories on Debian/Ubuntu + when: ansible_os_family == "Debian" + ansible.builtin.file: + path: "{{ item }}" + state: absent + loop: + - /var/cache/jenkins + - /var/log/jenkins + + - name: Check if Jenkins data directory exists on Debian/Ubuntu + when: ansible_os_family == "Debian" + stat: + path: /var/lib/jenkins + register: jenkins_data_dir + + - name: Remove Jenkins data directory on Debian/Ubuntu + when: ansible_os_family == "Debian" and jenkins_data_dir.stat.exists + ansible.builtin.file: + path: /var/lib/jenkins + state: absent + recurse: yes + force: yes + + - name: Stop Jenkins on Red Hat/Fedora/Alma/Rocky + when: ansible_os_family == "RedHat" + systemd: + name: jenkins + state: stopped + ignore_errors: yes # Agar xizmat topilmasa ham, davom ettiradi + + - name: Uninstall Jenkins and Java on Red Hat/Fedora/Alma/Rocky + when: ansible_os_family == "RedHat" + yum: + name: + - jenkins + - "{{ java_package_rhel }}" + - fontconfig + state: absent + + - name: Remove Jenkins repo file on Red Hat/Fedora/Alma/Rocky + when: ansible_os_family == "RedHat" + ansible.builtin.file: + path: /etc/yum.repos.d/jenkins.repo + state: absent + + - name: Remove Jenkins key on Red Hat/Fedora/Alma/Rocky + when: ansible_os_family == "RedHat" + ansible.builtin.command: + cmd: rpm -e gpg-pubkey-$(rpm -q --qf "%{version}-%{release}\n" gpg-pubkey | grep jenkins | awk '{print $1}') + ignore_errors: yes # Agar kalit topilmasa, davom ettiradi + + - name: Remove Jenkins cache, log, and data directories on Red Hat/Fedora/Alma/Rocky + when: ansible_os_family == "RedHat" + ansible.builtin.file: + path: "{{ item }}" + state: absent + recurse: yes + force: yes + loop: + - /var/cache/jenkins + - /var/log/jenkins + - /var/lib/jenkins diff --git a/Ansible/minio/minio_install.yml b/Ansible/minio/minio_install.yml index 0ee6973..36a64e4 100644 --- a/Ansible/minio/minio_install.yml +++ b/Ansible/minio/minio_install.yml @@ -6,8 +6,8 @@ - main.yml tasks: - - name: Install wget - apt: + - name: Install wget on multiple OS + package: name: wget state: present update_cache: yes diff --git a/Ansible/minio/uninstall_minio.yml b/Ansible/minio/uninstall_minio.yml new file mode 100644 index 0000000..da3adc5 --- /dev/null +++ b/Ansible/minio/uninstall_minio.yml @@ -0,0 +1,68 @@ +--- +- name: Uninstall and cleanup MinIO + hosts: minio_servers + become: yes + vars_files: + - main.yml + tasks: + + - name: Stop and disable MinIO service + systemd: + name: minio + state: stopped + enabled: no + ignore_errors: yes + + - name: Remove MinIO service file + file: + path: /usr/lib/systemd/system/minio.service + state: absent + + - name: Reload systemd daemon + systemd: + daemon_reload: yes + + - name: Remove MinIO binary + file: + path: /usr/local/bin/minio + state: absent + + - name: Remove MinIO environment file + file: + path: /etc/default/minio + state: absent + + - name: Remove all files in MinIO data directory + become: yes + file: + path: "{{ minio_directory }}" + state: absent + recurse: yes + ignore_errors: yes + + - name: Remove MinIO data directory + become: yes + file: + path: "{{ minio_directory }}" + state: absent + ignore_errors: yes + + - name: Remove MinIO user + user: + name: minio-user + state: absent + ignore_errors: yes + become: yes + + - name: Remove MinIO group + group: + name: minio-user + state: absent + ignore_errors: yes + become: yes + + - name: Remove wget on multiple OS + package: + name: wget + state: absent + purge: yes \ No newline at end of file