Last active
November 25, 2020 03:54
-
-
Save blemmenes/1ec380a1e214a38d5aa69db30e83ab71 to your computer and use it in GitHub Desktop.
Ansible playbook to install, run, gather, archive sosreports
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
# sosreport runner/fetcher | |
# usage: | |
# ansible-playbook sosreport.yaml —limit=<node/nodes> -e "dest=~/temp name=<name> case_id=<case/ticket>" | |
- hosts: all | |
gather_facts: false | |
vars: | |
sos_path: "{{ dest }}/{{ case_id }}/{{ run_time }}" | |
tasks: | |
- name: Set run_time | |
set_fact: run_time="{{lookup('pipe','date -u +%Y%m%d%H%M%S')}}" | |
run_once: true | |
- name: Create destination dir | |
local_action: | |
module: file | |
path: "{{ sos_path }}" | |
state: directory | |
run_once: true | |
- name: Install packages | |
apt: | |
name: "{{ item }}" | |
state: latest | |
#update_cache: yes | |
with_items: | |
- sosreport | |
become: true | |
- name: Run sosreport | |
shell: sosreport -a --name={{ name }} --case-id={{ case_id }} --batch | awk '/sosreport-/ {print $1}' | |
register: sosreport_file | |
become: true | |
- name: Chown sosreport | |
file: | |
path: '{{ item }}' | |
mode: 0777 | |
with_items: | |
- '{{ sosreport_file.stdout }}' | |
- '{{ sosreport_file.stdout }}.md5' | |
become: true | |
- name: Copy files | |
fetch: | |
src: '{{ sosreport_file.stdout }}' | |
dest: '{{ sos_path }}/{{ inventory_hostname }}/' | |
flat: yes | |
register: copy_result | |
- name: Clean tmp | |
file: | |
path: '{{ item }}' | |
state: absent | |
with_items: | |
- '{{ sosreport_file.stdout }}' | |
- '{{ sosreport_file.stdout }}.md5' | |
when: copy_result|succeeded | |
become: true | |
- name: Create tarball | |
local_action: | |
module: archive | |
path: '{{ sos_path }}' | |
dest: '{{ dest }}/{{ case_id }}/sosreports-{{ case_id }}_{{ run_time }}.tgz' | |
run_once: true | |
register: archive_result | |
- name: Clean local reports | |
local_action: | |
module: file | |
path: '{{ sos_path }}' | |
state: absent | |
run_once: true | |
when: archive_result|succeeded | |
- debug: | |
msg: "sosreport archive: {{ dest }}/{{ case_id }}/sosreports-{{ case_id }}_{{ run_time }}.tgz" | |
run_once: true |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment