From 0a1df8400b9f5997dea0ebf876bacfe953f119ac Mon Sep 17 00:00:00 2001 From: Nolan Brubaker <nolan.brubaker@rackspace.com> Date: Thu, 18 Jun 2015 15:19:33 -0400 Subject: [PATCH] Document some of the common scripts This commit adds some documentation around the scripts that developers will commonly encounter when working with os-a-d. It is intentionally high level, so that only major modifications should require changing the docs. Change-Id: I6d8f72b418e041a956a3267bfee30d563bf35e34 Co-Authored-By: Matt Kassawara <mkassawara@gmail.com> Implements: blueprint developer-docs --- doc/source/index.rst | 1 + doc/source/scripts.rst | 92 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 doc/source/scripts.rst diff --git a/doc/source/index.rst b/doc/source/index.rst index 5a9dda41df..b811841e92 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -20,6 +20,7 @@ Contents: playbooks install-guide/index extending + scripts Indices and tables diff --git a/doc/source/scripts.rst b/doc/source/scripts.rst new file mode 100644 index 0000000000..1dc41bad33 --- /dev/null +++ b/doc/source/scripts.rst @@ -0,0 +1,92 @@ +OpenStack Ansible Deployment 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: + +.. code:: bash + + $ 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 OSAD, 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 OSAD 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``.