tripleo-ci/docs/tripleo-quickstart-logs.html

160 lines
6.5 KiB
HTML

<!DOCTYPE HTML>
<html lang="en-US">
<head>
<title>README for Quickstart Logs</title>
</head>
<body>
<style>
.collapsible {
background-color: #777;
color: white;
cursor: pointer;
padding: 18px;
width: 100%;
border: none;
text-align: left;
outline: none;
font-size: 15px;
}
.active, .collapsible:hover {
background-color: #555;
}
.content {
padding: 0 18px;
max-height: 0;
overflow: hidden;
transition: max-height 0.2s ease-out;
background-color: #f1f1f1;
}
</style>
<h1>Links to common log files</h1>
<ul>
<li><a href='undercloud/var/log/extra/errors.txt.txt.gz'>undercloud/var/log/extra/errors.txt.txt.gz</a>
- the concatenation of all the errors on any node in a single file</li>
<li><a href='undercloud/home/zuul/'>undercloud/home/zuul/</a>
- the source and log output of all templated shell scripts</li>
<li><a href='undercloud/var/log/containers/'>undercloud/var/log/containers/</a>
- the system logs for each container</li>
<li><a href='undercloud/var/log/extra/podman/'>undercloud/var/log/extra/podman/</a>
- the podman container setup configuration and setup logs</li>
<li><a href='undercloud/var/log/config-data/'>undercloud/var/log/config-data/</a>
- the configuration files for each openstack service
<lib><a href='undercloud/etc/puppet/hieradata/'>undercloud/etc/puppet/hieradata/</a>
- the hieradata of the deployment, service-configs, net and vip info
<li><a href='undercloud/var/log/extra/docker/'>undercloud/var/log/extra/docker/</a>
- the docker container setup configuration and setup logs</li>
<li><a href='undercloud/var/log/tripleo-container-image-prepare.log.txt.gz'>undercloud/var/log/tripleo-container-image-prepare.log.txt.gz</a>
- the undercloud container download and provision log </li>
<li><a href='undercloud/var/log/'>undercloud/var/log/</a> -
directories and files copied from /var/log on the undercloud.
If other overcloud/subnodes exist, similar $node/var/log
directories will also exist in these logs.</li>
<li><a href='undercloud/var/log/extra/'>undercloud/var/log/extra/</a> -
extra system details like package list, and cpu info gathered from the
undercloud</li>
<li><a href='undercloud/var/lib/mistral'>undercloud/var/lib/mistral</a>
- output of all ansible used by config-download to drive the overcloud deployment</li>
<li><a href='stackviz/#/testrepository.subunit'>stackviz</a> - stackviz tempest test results</li>
<li><a href='docs/build/'>docs/build/</a> - autogenerated documentation, 3rd party jobs only</li>
</ul>
<button class="collapsible">How to recreate this job</button>
<div class="content">
<p> Please refer to the <a href="README-reproducer-quickstart.html">recreation
instructions</a>
</p>
</div>
<button class="collapsible">How to figure out what went wrong?</button>
<div class="content">
<p>Check the console log and search for <b>PLAY RECAP</b>. There are sometimes
multiple ansible runs in a job, usually the last one is the relevant.
If no <b>PLAY RECAP</b> text is found that usually means an infra failure
before Quickstart could even start. Try rechecking or asking on <i>#tripleo</i>
if there's an ongoing infra issue.</p>
<p>Look for a line above the <b>PLAY RECAP</b> that starts with
"<b>fatal:</b>". If no such line is found, try searching for other PLAY RECAP
lines or other error outputs.</p>
<p>If this "fatal" line contains the execution of a shell script and redirects
to a log, check which machine that task ran on. Look under that node's
directory in the logs to find the file.</p>
<p>Example output:<br/>
<br/><code>
fatal: [<b>undercloud</b>]: FAILED! => {"changed": true, "cmd": "set -o pipefail &&
/home/zuul/<b>overcloud-prep-images.sh</b> 2>&1 | awk '{ print
strftime(\"%Y-%m-%d %H:%M:%S |\"), $0; fflush(); }' >
/home/stack/<b>overcloud_prep_images.log</b>", "failed": true, "rc": 1}<br/>
<br/>
PLAY RECAP *********************************************************************<br/>
</code></p>
<p>In this case the <code>overcloud-prep-images.sh</code> script failed, which
is redirected to <code>/home/zuul/overcloud_prep_images.log
</code> on the undercloud.</p>
<b>Deployment errors can be found in:</b>
<ul>
<li><a href='undercloud/var/log/extra/errors.txt.txt.gz'>undercloud/var/log/extra/errors.txt.txt.gz</a>
- the concatenation of all the errors on any node in a single file</li>
</ul>
<p>If this is a different Ansible error, that could mean either an infra
problem (often has <b>UNREACHABLE</b> in the line) or a bug in Quickstart. Ask
on <i>#tripleo</i> to get help or open a bug on
<a href='https://bugs.launchpad.net/tripleo/+filebug'>Launchpad</a>. Add the
"ci" tag if it's a CI issue and "quickstart" if you suspect that the bug is in
Quickstart itself.</p>
</div>
<button class="collapsible">Variables used in the job run</button>
<div class="content">
<p>The logs contain files showing variables used in the job run.</p>
<ul>
<li><a href='undercloud/var/log/extra/dump_variables_vars.json.txt.gz'>undercloud/var/log/extra/dump_variables_vars.json.txt.gz</a>
- contains the variables used in the running the actual test</li>
<li><a href='releases.sh'>releases.sh</a>
- the output of the script setting release-related variables</li>
<li><a href='playbook_executions.log'>playbook_executions.log</a>
- prints out the complete commands, with all expanded arguments,
to run the playbooks</li>
</ul>
</div>
<button class="collapsible">Dry run option</button>
<div class="content">
<p>As a debugging step, a job can be run manually with '-dryrun'
appended to the job name. When the "playbook dry run" option is invoked,
the playbooks will not execute and collect logs will not run but
certain log files, including 'toci_env_args_output.log', which
contains the environment variables used in the job, and
playbook_executions.log will still be produced in the logs
directory for inspection. This option serves to assist with
debugging and to test the testing scripts themselves.</p>
</div>
<script>
var coll = document.getElementsByClassName("collapsible");
var i;
for (i = 0; i < coll.length; i++) {
coll[i].addEventListener("click", function() {
this.classList.toggle("active");
var content = this.nextElementSibling;
if (content.style.maxHeight){
content.style.maxHeight = null;
} else {
content.style.maxHeight = content.scrollHeight + "px";
}
});
}
</script>
</body>
</html>