kolla/tests/playbooks/post.yml
Jeffrey Zhang 77612f7eed Add collectd in ci to collect system information
Change-Id: Ic5cbdfd4ebca1d907ada5c39f27dc4a7889daa21
2017-12-18 13:08:10 +08:00

82 lines
2.7 KiB
YAML

- hosts: all
roles:
- collect-collectd
tasks:
- shell:
cmd: |
set +o errexit
mkdir -p logs
# copy system log
sudo cp -r /var/log logs/system_log
if which journalctl ; then
# the journal gives us syslog() and kernel output, so is like
# a concatenation of the above.
sudo journalctl --no-pager | sudo tee logs/syslog.txt > /dev/null
sudo journalctl --no-pager -u docker.service | sudo tee logs/docker.log > /dev/null
else
# assume rsyslog
sudo cp /var/log/syslog logs/syslog.txt
sudo cp /var/log/kern.log logs/kern_log.txt
sudo cp /var/log/upstart/docker.log logs/docker.log
fi
if sudo test -d /var/lib/docker/volumes/kolla_logs/_data; then
sudo cp -r /var/lib/docker/volumes/kolla_logs/_data logs/kolla_logs
fi
# sudo config
sudo cp -r /etc/sudoers.d logs/
sudo cp /etc/sudoers logs/sudoers.txt
df -h > logs/df.txt
free > logs/free.txt
sudo parted -l | sudo tee logs/parted-l.txt > /dev/null
mount > logs/mount.txt
env > logs/env.txt
if [ `command -v dpkg` ]; then
dpkg -l | sudo tee logs/dpkg-l.txt > /dev/null
fi
if [ `command -v rpm` ]; then
rpm -qa | sudo tee logs/rpm-qa.txt > /dev/null
fi
# final memory usage and process list
ps -eo user,pid,ppid,lwp,%cpu,%mem,size,rss,cmd > logs/ps.txt
# docker related information
(docker info && docker images && docker ps -a) > logs/docker-info.txt
sudo cp -r /etc/kolla logs/kolla_configs
# fix the permissions for logs folder
sudo chmod -R 777 logs
# rename files to .txt; this is so that when displayed via
# logs.openstack.org clicking results in the browser shows the
# files, rather than trying to send it to another app or make you
# download it, etc.
# firstly, rename all .log files to .txt files
for f in $(find logs -name "*.log"); do
sudo mv $f ${f/.log/.txt}
done
# append .txt to all kolla config file
find logs/kolla_configs -type f -exec mv '{}' '{}'.txt \;
# Compress all text logs
find logs -iname '*.txt' -execdir gzip -9 {} \+
find logs -iname '*.json' -execdir gzip -9 {} \+
executable: /bin/bash
chdir: "{{ zuul.project.src_dir }}"
- synchronize:
src: '{{ zuul.project.src_dir }}/logs'
dest: '{{ zuul.executor.log_root }}'
mode: pull
copy_links: true
verify_host: true