-
Notifications
You must be signed in to change notification settings - Fork 2
astack.sh
Adam Spiers edited this page Dec 7, 2017
·
1 revision
The astack.sh
script drives a number of other scripts to setup the
specified cloud, i.e. the following phases:
This phase can be skipped on subsequent runs using the
--no-setup
option to astack.sh
- Sets up system environment (by running
ardana-dev-tools/ansible/dev-env-install.yml
playbook).- Installs Vagrant
- Installs & sets up kvm & libvirt
- Creates an ansible 1.9 based venv to use when running
ansible-playbook
operations. Make sure to runsource ardana-dev-tools/tools/venvs/ansible/bin/activate
if you are running playbooks directly.
This phase can be skipped on subsequent runs using the --no-build
option to astack.sh
- Implemented in the
ardana-dev-tools/bin/build-venv.sh
script - Will trigger some of setup operations if needed, on first run
- Ensures most required artifacts have been downloaded
- Some may be downloaded later if needed
- Creates Vagrant boxes for specified platforms
- Ensures most required artifacts have been downloaded
- Clones (or refreshes) the git repos for the sources backing the venvs
- Implemented in the
ardana-dev-tools/ansible/get-venv-sources.yml
playbook - Uses a
git
server corresponding toARDANA_SITE
(see above) - NOTE: Can be skipped by setting
ARDANA_GIT_UPDATE=no
in environment, or by specifying--no-checkout
when runningbuild-venv.sh
directly.
- Implemented in the
- Brings up, using Vagrant, required build VMs to build the venvs needed to deploy a cloud
- Runs the
ardana-dev-tools/ansible/venv-build.yml
playbook to build venvs.
- Bring up the specified cloud, using Vagrant
- Uses the
servers.yml
file in the associated cloud definition (e.g../scratch-master/input-model/ardana-input-model/2.0/hp-ci/deployerincloud-lite/data/servers.yml
) to specify the VMs in the cloud
- Uses the
- During provisioning of the deployer VM (which may not be
called
deployer
) will trigger the creation of the product tarball (FIXME: this isn't part of the Build phase for historical reasons; that technical debt will probably have to be addressed as we move the Build phase into OBS)- Contains ansible sources
- Clones (or refreshes) the ansible sources git repos using
ardana-dev-tools/ansible/get-ansible-sources.yml
playbook - Can be skipped by setting
ARDANA_GET_UPDATE=no
in environment
- Clones (or refreshes) the ansible sources git repos using
- Contains venv repos for each platform, including manifests descripting venvs
- Contains generated
ardana-init.bash
script used to install product tarball bits and setup deployer environment - NOTE: Can be skipped by specifying
--tarball ${absolute_path_to_deployer_tarball}
when runningastack.sh
- Contains ansible sources
- Uploads the product tarball to the deployer node and unpacks it to
/home/$ARDANAUSER
- Runs the
ardana-init.bash
script from the unpacked product tarball- Sets up venv repos
- Sets up
~/openstack
git repo and other product areas under the deployment account on the deployer - Deletes itself and the other artifacts from the unpacking
This phase can be skipped on subsequent runs using the --no-config
option to astack.sh
.
- Copies specified cloud model from
ardana-input-model/2.0/hp-ci
to~/openstack/my_cloud/definition
on deployer and commits it into the~/openstack
git repo. - Configures the specified cloud by running the
config-processor-run.yml
playbook from the~/openstack/ardana/ansible
directory on the deployer to compile the specified cloud definition - Sets up deployment scratch area by running the
ready-deployment.yml
playbook from the~/openstack/ardana/ansible
directory on the deployer to construct~/scratch/ansible/next/ardana/ansible
.- The scratch area consists of the ansible sources found under
~/openstack/ardana/ansible
and the configuration processor generatedhosts/verb_hosts
file andhost_vars
and p_vars` hierarchies.
- The scratch area consists of the ansible sources found under
This phase can be skipped on subsequent runs using the --no-site
option to astack.sh
.
- Runs the
site.yml
playbook from the~/scratch/ansible/next/ardana/ansible
area to deploy the specified cloud.