openstack-ansible/doc/source/developer-docs/scripts.rst

2.8 KiB

Included Scripts

The repository contains several helper scripts to manage gate jobs, install base requirements, and update repository information. Invoke these scripts from the top-level directory of the repository. For example:

$ scripts/<script_name>.sh

Bootstrapping

bootstrap-aio.sh

The bootstrap-aio.sh script prepares a host for an all-in-one (AIO) deployment for the purposes of development and gating. Create the necessary partitions, directories, and configurations. Configurable via environment variables to work with Jenkins.

bootstrap-ansible.sh

The bootstrap-ansible.sh script installs Ansible including core and extras module repositories and Galaxy roles.

Configurable environment variables:

  • ANSIBLE_GIT_RELEASE - Version of Ansible to install.
  • ANSIBLE_ROLE_FILE - Galaxy roles to install. Defaults to contents of ansible-role-requirements.yml file.

The script also creates the openstack-ansible wrapper tool that provides the variable files to match /etc/openstack_deploy/user_*.yml as arguments to ansible-playbook as a convenience.

Gating

gate-check-commit.sh

The gate-check-commit.sh script executes a suite of tests necessary for each commit to the repository. By default, the script runs the bootstrap scripts, builds an all-in-one deployment of OSA, and runs various Tempest tests on it.

Configurable environment variables:

  • BOOTSTRAP_AIO - Boolean (yes/no) to run AIO bootstrap script. Defaults to yes.
  • BOOTSTRAP_AIO - Boolean (yes/no) to run Ansible bootstrip script. Defaults to yes.
  • RUN_TEMPEST - Boolean (yes/no) to run Tempest tests. Defaults to yes.

gate-check-docs.sh

The gate-check-docs.sh script invokes Sphinx to build the HTML documentation from RST source.

gate-check-lint.sh

The gate-check-lint.sh script executes a suite of tests necessary for each commit to the repository to verify correct YAML and Python syntax.

All files that begin with a Python shebang pass through flake8 which ignores the following rules due to Ansible conventions:

  • F403 - 'from ansible.module_utils.basic import *'
  • H303 - No wildcard imports

Ansible playbooks pass through ansible-playbook --syntax-check and ansible-lint.

run-tempest.sh

The run-tempest.sh script runs Tempest tests from the first utility container. The check-gate-commit.sh script usually invokes this script after it completes the OSA deployment.

Configurable environment variables:

  • TEMPEST_SCRIPT_PARAMETERS - Defines tests to run. Values are passed to openstack_tempest_gate.sh script, defined in the os_tempest role. Defaults to scenario heat_api cinder_backup.