Use stage_dir instead of /opt/stack
Historically we have collected devstack logs under /opt/stack. Stop doing that and collect them in the stage_dir instead, so that once the base job logs pull service comes around we are ready for it. This add the benefit of writing things into a folder which is already owned by the ansible user (ansible_user_dir), so we don't run into issue writing there. A few logs (devstack log, log summary and dstat) use to show up on logs.o.o. just because they happened to already be in /opt/stack/logs. With this change they would be lost, so adding them to post.yaml. Depends-on: I5ad4dfccbc1389da3afc53f3c866d3475e006db6 Change-Id: Ib4be2f5056c0dc2b776de4a0d18b47b12624be92
This commit is contained in:
parent
4187d2fc4a
commit
290d9d87f4
@ -1,14 +1,24 @@
|
|||||||
- hosts: all
|
- hosts: all
|
||||||
become: True
|
become: True
|
||||||
vars:
|
vars:
|
||||||
|
devstack_log_dir: "{{ devstack_base_dir|default('/opt/stack') }}/logs/"
|
||||||
devstack_conf_dir: "{{ devstack_base_dir|default('/opt/stack') }}/devstack/"
|
devstack_conf_dir: "{{ devstack_base_dir|default('/opt/stack') }}/devstack/"
|
||||||
stage_dir: "{{ devstack_base_dir|default('/opt/stack') }}"
|
|
||||||
roles:
|
roles:
|
||||||
- export-devstack-journal
|
- export-devstack-journal
|
||||||
- role: stage-output
|
- role: stage-output
|
||||||
zuul_copy_output:
|
zuul_copy_output:
|
||||||
{ '{{ devstack_conf_dir }}/local.conf': 'logs',
|
{ '{{ devstack_conf_dir }}/local.conf': 'logs',
|
||||||
'{{ devstack_conf_dir }}/.stackenv': 'logs' }
|
'{{ devstack_conf_dir }}/.stackenv': 'logs' ,
|
||||||
|
'{{ devstack_log_dir }}/dstat-csv.log': 'logs',
|
||||||
|
'{{ devstack_log_dir }}/devstacklog.txt': 'logs',
|
||||||
|
'{{ devstack_log_dir }}/devstacklog.txt.summary': 'logs' }
|
||||||
extensions_to_txt:
|
extensions_to_txt:
|
||||||
- conf
|
- conf
|
||||||
- fetch-devstack-log-dir
|
- log
|
||||||
|
- summary
|
||||||
|
# NOTE(andreaf) We need fetch-devstack-log-dir only as long as the base job
|
||||||
|
# starts pulling logs for us from {{ ansible_user_dir }}/logs.
|
||||||
|
# Meanwhile we already store things in ansible_user_dir and use
|
||||||
|
# fetch-devstack-log-dir setting devstack_base_dir
|
||||||
|
- role: fetch-devstack-log-dir
|
||||||
|
devstack_base_dir: "{{ ansible_user_dir }}"
|
||||||
|
12
roles/apache-logs-conf/README.rst
Normal file
12
roles/apache-logs-conf/README.rst
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
Prepare apache configs and logs for staging
|
||||||
|
|
||||||
|
Make sure apache config files and log files are available in a linux flavor
|
||||||
|
independent location. Note that this relies on hard links, to the staging
|
||||||
|
directory must be in the same partition where the logs and configs are.
|
||||||
|
|
||||||
|
**Role Variables**
|
||||||
|
|
||||||
|
.. zuul:rolevar:: stage_dir
|
||||||
|
:default: {{ ansible_user_dir }}
|
||||||
|
|
||||||
|
The base stage directory.
|
@ -5,11 +5,17 @@ journal format as well as text. Also, export a syslog-style file with
|
|||||||
kernal and sudo messages.
|
kernal and sudo messages.
|
||||||
|
|
||||||
Writes the output to the ``logs/`` subdirectory of
|
Writes the output to the ``logs/`` subdirectory of
|
||||||
``devstack_base_dir``.
|
``stage_dir``.
|
||||||
|
|
||||||
**Role Variables**
|
**Role Variables**
|
||||||
|
|
||||||
.. zuul:rolevar:: devstack_base_dir
|
.. zuul:rolevar:: devstack_base_dir
|
||||||
:default: /opt/stack
|
:default: /opt/stack
|
||||||
|
|
||||||
The devstack base directory.
|
The devstack base directory. This is used to obtain the
|
||||||
|
``log-start-timestamp.txt``, used to filter the systemd journal.
|
||||||
|
|
||||||
|
.. zuul:rolevar:: stage_dir
|
||||||
|
:default: {{ ansible_user_dir }}
|
||||||
|
|
||||||
|
The base stage directory.
|
||||||
|
@ -1 +1,2 @@
|
|||||||
devstack_base_dir: /opt/stack
|
devstack_base_dir: /opt/stack
|
||||||
|
stage_dir: "{{ ansible_user_dir }}"
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
# 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 }}"
|
||||||
|
|
||||||
# TODO: convert this to ansible
|
# TODO: convert this to ansible
|
||||||
- name: Export journal files
|
- name: Export journal files
|
||||||
become: true
|
become: true
|
||||||
@ -7,7 +15,7 @@
|
|||||||
name=""
|
name=""
|
||||||
for u in `systemctl list-unit-files | grep devstack | awk '{print $1}'`; do
|
for u in `systemctl list-unit-files | grep devstack | awk '{print $1}'`; do
|
||||||
name=$(echo $u | sed 's/devstack@/screen-/' | sed 's/\.service//')
|
name=$(echo $u | sed 's/devstack@/screen-/' | sed 's/\.service//')
|
||||||
journalctl -o short-precise --unit $u | tee {{ devstack_base_dir }}/logs/$name.txt > /dev/null
|
journalctl -o short-precise --unit $u | tee {{ stage_dir }}/logs/$name.txt > /dev/null
|
||||||
done
|
done
|
||||||
|
|
||||||
# Export the journal in export format to make it downloadable
|
# Export the journal in export format to make it downloadable
|
||||||
@ -16,7 +24,7 @@
|
|||||||
# debugging much easier. We don't do the native conversion here as
|
# debugging much easier. We don't do the native conversion here as
|
||||||
# some distros do not package that tooling.
|
# some distros do not package that tooling.
|
||||||
journalctl -u 'devstack@*' -o export | \
|
journalctl -u 'devstack@*' -o export | \
|
||||||
xz --threads=0 - > {{ devstack_base_dir }}/logs/devstack.journal.xz
|
xz --threads=0 - > {{ stage_dir }}/logs/devstack.journal.xz
|
||||||
|
|
||||||
# The journal contains everything running under systemd, we'll
|
# The journal contains everything running under systemd, we'll
|
||||||
# build an old school version of the syslog with just the
|
# build an old school version of the syslog with just the
|
||||||
@ -26,4 +34,4 @@
|
|||||||
-t sudo \
|
-t sudo \
|
||||||
--no-pager \
|
--no-pager \
|
||||||
--since="$(cat {{ devstack_base_dir }}/log-start-timestamp.txt)" \
|
--since="$(cat {{ devstack_base_dir }}/log-start-timestamp.txt)" \
|
||||||
| tee {{ devstack_base_dir }}/logs/syslog.txt > /dev/null
|
| tee {{ stage_dir }}/logs/syslog.txt > /dev/null
|
||||||
|
Loading…
Reference in New Issue
Block a user