blob: 6e760c1f6fa201ed14f2f925aa7d62362ac03962 [file] [log] [blame]
Andrea Frittoli (andreaf)290d9d82017-12-11 14:30:59 +00001# NOTE(andreaf) This bypasses the stage-output role
2- name: Ensure {{ stage_dir }}/logs exists
3 become: true
4 file:
5 path: "{{ stage_dir }}/logs"
6 state: directory
7 owner: "{{ ansible_user }}"
8
Monty Taylor36ddea32017-10-02 10:05:17 -05009# TODO: convert this to ansible
10- name: Export journal files
11 become: true
12 shell:
13 cmd: |
14 u=""
15 name=""
16 for u in `systemctl list-unit-files | grep devstack | awk '{print $1}'`; do
17 name=$(echo $u | sed 's/devstack@/screen-/' | sed 's/\.service//')
Clark Boylan2700bf82018-01-04 10:16:16 -080018 journalctl -o short-precise --unit $u | gzip - > {{ stage_dir }}/logs/$name.txt.gz
Monty Taylor36ddea32017-10-02 10:05:17 -050019 done
20
21 # Export the journal in export format to make it downloadable
22 # for later searching. It can then be rewritten to a journal native
23 # format locally using systemd-journal-remote. This makes a class of
24 # debugging much easier. We don't do the native conversion here as
25 # some distros do not package that tooling.
26 journalctl -u 'devstack@*' -o export | \
Andrea Frittoli (andreaf)290d9d82017-12-11 14:30:59 +000027 xz --threads=0 - > {{ stage_dir }}/logs/devstack.journal.xz
Monty Taylor36ddea32017-10-02 10:05:17 -050028
29 # The journal contains everything running under systemd, we'll
30 # build an old school version of the syslog with just the
31 # kernel and sudo messages.
32 journalctl \
33 -t kernel \
34 -t sudo \
35 --no-pager \
36 --since="$(cat {{ devstack_base_dir }}/log-start-timestamp.txt)" \
Clark Boylan2700bf82018-01-04 10:16:16 -080037 | gzip - > {{ stage_dir }}/logs/syslog.txt.gz