# NOTE(andreaf) This bypasses the stage-output role - name: Ensure {{ stage_dir }}/logs exists become: true file: path: "{{ stage_dir }}/logs" state: directory owner: "{{ ansible_user }}" - name: Export legacy stack screen log files become: true shell: cmd: | u="" name="" for u in $(systemctl list-unit-files | grep devstack | awk '{print $1}'); do name=$(echo $u | sed 's/devstack@/screen-/' | sed 's/\.service//') journalctl -o short-precise --unit $u > {{ stage_dir }}/logs/$name.txt done - name: Export legacy syslog.txt become: true shell: # The journal contains everything running under systemd, we'll # build an old school version of the syslog with just the # kernel and sudo messages. cmd: | journalctl \ -t kernel \ -t sudo \ --no-pager \ --since="$(cat {{ devstack_base_dir }}/log-start-timestamp.txt)" \ > {{ stage_dir }}/logs/syslog.txt # TODO: convert this to ansible # - make a list of the above units # - iterate the list here - name: Export journal become: true shell: # Export the journal in export format to make it downloadable # for later searching. It can then be rewritten to a journal native # format locally using systemd-journal-remote. This makes a class of # debugging much easier. We don't do the native conversion here as # some distros do not package that tooling. cmd: | journalctl -o export \ --since="$(cat {{ devstack_base_dir }}/log-start-timestamp.txt)" \ | gzip > {{ stage_dir }}/logs/devstack.journal.gz - name: Save journal README become: true template: src: devstack.journal.README.txt.j2 dest: '{{ stage_dir }}/logs/devstack.journal.README.txt'