| --- |
| # tasks file for apigee-opdk-setup-bootstrap-rollback |
| - name: Gracefully Stop apigee components, if possible |
| ignore_errors: yes |
| shell: '{{ apigee_all }} stop' |
| when: apigee_all is defined and apigee_all | trim | length > 0 |
| |
| - name: Apigee uninstall |
| ignore_errors: yes |
| shell: "/opt/apigee/apigee-service/bin/apigee-service apigee-service uninstall" |
| when: apigee_service is defined and apigee_service | trim | length > 0 |
| |
| - name: Remove apigee, edge, baas and qpid packages |
| become: yes |
| ignore_errors: yes |
| yum: |
| name: '{{ item }}' |
| state: absent |
| with_items: "{{ apigee_packages}}" |
| environment: |
| http_proxy: "{{ http_proxy }}" |
| https_proxy: "{{ https_proxy }}" |
| |
| - name: Set target bootstrap script name for 4.16.01 |
| set_fact: |
| bootstrap_script: '{{ opdk_installer_path }}/bootstrap.sh' |
| when: opdk_version | version_compare('4.16.01', '==') |
| |
| - name: Set target bootstrap script name for version > 4.16.01 |
| set_fact: |
| bootstrap_script: '{{ opdk_installer_path }}/bootstrap_{{ opdk_version }}.sh' |
| when: opdk_version | version_compare('4.16.01', '>') |
| |
| - name: Find files to remove |
| find: |
| path: '{{ item.dir }}' |
| pattern: '{{ item.pattern }}' |
| file_type: file |
| recurse: yes |
| with_items: |
| - { dir: "/opt/nginx/", pattern: "conf.d" } |
| - { dir: "/etc/yum/vars/", pattern: "apigee*" } |
| - { dir: "/tmp/", pattern: "edge" } |
| register: remove |
| |
| - name: Clear all artifacts from YUM repo |
| become: yes |
| shell: 'yum clean all' |
| |
| - name: Remove files |
| file: |
| path: '{{ item.1.path }}' |
| state: absent |
| follow: yes |
| with_subelements: |
| - "{{ remove.results }}" |
| - files |
| |
| - block: |
| - name: Find apigee & edge folders to remove on rollback |
| find: |
| path: '{{ item.dir }}' |
| pattern: '{{ item.pattern }}' |
| recurse: yes |
| file_type: '{{ item.file_type }}' |
| register: apigee_folders |
| with_items: |
| - { dir: "{{ apigee_home }}", pattern: "apigee*", file_type: "directory" } |
| - { dir: "{{ apigee_home }}", pattern: "edge*", file_type: "directory" } |
| - { dir: "{{ apigee_home }}", pattern: "edge*", file_type: "directory" } |
| - { dir: "{{ opdk_installer_path }}", pattern: "*.log", file_type: "file" } |
| - { dir: "{{ opdk_installer_path }}", pattern: "bootstrap*", file_type: "file" } |
| - { dir: "/opt", pattern: "nginx", file_type: "directory" } |
| - { dir: "{{ apigee_home }}", pattern: "data", file_type: "directory" } |
| - { dir: "{{ apigee_home }}", pattern: "etc", file_type: "directory" } |
| - { dir: "{{ apigee_home }}", pattern: "token", file_type: "directory" } |
| - { dir: "{{ apigee_home }}", pattern: "var/lock", file_type: "directory" } |
| - { dir: "{{ apigee_home }}", pattern: "var/run", file_type: "directory" } |
| |
| - name: Remove files |
| file: |
| path: '{{ item.1.path }}' |
| state: absent |
| follow: yes |
| with_subelements: |
| - "{{ apigee_folders.results }}" |
| - files |
| |
| - name: Determine current user |
| shell: whoami |
| register: whoami |
| |
| - name: Determine if safe to kill user owned process |
| set_fact: |
| kill_user: '{{ whoami.stdout != opdk_user_name }}' |
| |
| - name: Release any apigee user owned processes |
| ignore_errors: yes |
| become: yes |
| shell: 'pkill -u {{ opdk_user_name }}' |
| when: kill_user |
| async: 45 |
| poll: 0 |
| |
| when: remove_apigee is defined and remove_apigee |
| |
| - name: Remove logs |
| file: |
| path: '{{ apigee_home }}/var/log/' |
| state: absent |
| when: clear_logs is defined and clear_logs | bool == True |
| |
| - name: Remove on rollback |
| shell: "rm -rf {{ item }}" |
| with_items: "{{ remove_on_rollback }}" |
| when: remove_on_rollback is defined |