Check the top-level logs directory for a file reproducer-quickstart.sh. Running this file will set up a stack on a personal tenant where the job run can be reproduced. If no reproducer-quickstart.sh file is found, that usually means an infra failure before Quickstart could start or a problem in collecting logs. Check on IRC OFTC channel #tripleo to see if there's an ongoing infra issue.
A reproducer-quickstart.sh script is generated at the top-level log directory for jobs that run TripleO-Quickstart and toci_gate_test.sh. Running the script from a host machine will set up a stack to the point where the user can ssh to the undercloud, source a variable file, and run toci_gate_test.sh. As such, reproducing the complete jobs result requires some manual interaction.
The reproducer-quickstart.sh script is generated to be specific to that job and reproducer-quickstart.sh scripts from other jobs will be different.
Use cURL
, wget
or a similar tool to copy the
reproducer-quickstart.sh to a clean working directory on a host from
where you can access the cloud tenant you want to run the reproducer on.
Make sure that the copied script is executable (has +x permissions) before you
attempt to run it.
Source the tenant credentials before running the script on a host cloud.
Also, it is a good idea to check that the tenant has enough capacity
and resources to reproduce the job before you begin.
Note that, by default, the reproducer-quickstart.sh script is written to run an a personal RDO Cloud tenant. Instructions on how to modify the script to run on another host cloud are included in a section below.
The -l|--libvirt
option allows the user to reproduce multinode
or single node jobs running on a single virt host, using libvirt. This
option was added as an alternative when host clouds are not available.
Note that the script sets the virthost to be 127.0.0.2 so the reproducer
must be run from the virt host itself. Attempting to use a
working machine/laptop as the Ansible host and targeting a test box
indirectly is not recommended.
Run cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
to allow for login to 127.0.0.2.
When using libvirt, volumes (and later snapshots) have to be stored.
The directory defaults to /opt/vm_images
but can be overridden
using the -e|--extras-params
option, setting
libvirt_volume_path
to another location. This is useful because
in a default Fedora installation, the root partition is not large enough
to support the volumes.
When using libvirt, the default DNS server added to the VMs provides
insufficient access in some cases. As such, a second DNS server,
can be added by defining the custom_nameserver
setting
in the -e|--extras-params
option.
This nameserver is added to /etc/resolv.conf
files on the VMs.
When the script completes, you will see a list of instructions printed out on how to run toci_gate_test.sh from the undercloud:
ssh to the undercloud: $ ssh zuul@$ansible_host
Source the environment settings file: $ source /home/zuul/env_vars_to_src.sh
Run the toci gate script: $ /opt/stack/tripleo-ci/toci_gate_test.sh
If you pass the -a
options the above steps will be executed
automatically.
Running reproducer-quickstart.sh --help
will show a list of the
input options. All the options have a default and none are required.
The options are listed below with explanations:
-w, --workspace
: directory where the virtualenv, inventory files, etc.
Defaults to creating a directory in /tmp-v, --create-virtualenv
: create a virtualenv to install Ansible and dependencies.
Defaults to true.-r, --remove-stacks-keypairs
: delete all stacks in the tenant before deployment.
will also delete associated keypairs if they exist.
Defaults to false.-p, --nodestack-prefix
: add a unique prefix for multinode and singlenode stacks
Defaults to empty.-a, --autorun
: run toci gate script on prepared environment automatically
Default is to stop after the environment is set up.-t, --timeout
: set the timeout in minutes for the deployment.
Defaults to 240 minutes.-l, --libvirt
:runs a 2-node multinode job or singlenode job on a
single virthost using libvirt to create the nodes.
Defaults to false.-e, --extra-params
: File(s) and/or parameters used to override
playbook settings.-n, --nodes-file
: node config file of the topology needed.
Defaults to $NODES_FILE (set in the job).-z, --zuul-changes
: refspecs with changes to test.
Defaults to $ZUUL_CHANGES (set in the job).-j, --toci-jobtype
: TOCI description of the job to run.
Defaults to $TOCI_JOBTYPE (set in the job).-h, --help
:Displays usage text and exits.The reproducer-quickstart.sh script is written to run an a personal RDO Cloud tenant. If you want to run on a different host cloud, modify the reproducer-quickstart.sh as follows:
tripleo-environments
or any other repository containing
the cloud details, after cloning tripleo-quickstart-extras
echo "file://$WORKSPACE/tripleo-environments/#egg=tripleo-environments" >>
$WORKSPACE/tripleo-quickstart/quickstart-extras-requirements.txt