Convert AIO bootstrap to Ansible¶
aio, bootstrap, ansible
The process for an AIO installation of openstack-ansible involves a bash script to do the initial bootstrapping of the AIO host. This script works well, but it becomes difficult to update over time and a conversion to Ansible would make future updates, such as multi-platform-host blueprint, a little easier.
Blueprint - Convert AIO bootstrap to Ansible:
bootstrap-aio.sh script works well, but it can be difficult to read in
a few places. Deployers who are familiar with Ansible, but not bash, may have
challenges with updating the script as well.
At this time, the AIO installation has four steps:
Bootstrap the AIO build
Run the openstack-ansible playbooks
This spec proposes the following steps to replace the existing ones:
Run AIO playbook (if an AIO deployment is desired)
Run the openstack-ansible playbooks
The current AIO boostrap script is heavily used by various deployers as well as other downstream projects, so changes must be made carefully. The proposed work for this spec would proceed as follows:
Build out the Ansible role for bootstrapping an AIO build
Update documentation to allow for early testing
bootstrap-aio.shscript to call the new AIO bootstrap playbook
Update the documentation to reflect the new bootstrap script changes
bootstrap-aio.shscript at a later date (if needed)
bootstrap-aio.sh script could remain as it is now, or it could
be simplified to make it easier to read and update.
The openstack-ansible playbooks themselves shouldn’t change as a result of this update. The AIO bootstrap is a prerequisite step in the deployment right now and that won’t change after the AIO Ansible playbook is available for use.
This change would only affect greenfield deployments of AIO builds. If a deployer has an existing AIO build deployed, they would not need to run the AIO bootstrap playbook again, even with upgrades.
There are no known security impacts of this change.
There are no known performance impacts of this change. The Ansible AIO playbook may be slightly slower than the bash script, but the difference should be negligible.
End user impact¶
An end user would not notice this change since it would only affect deployers.
If deployers are doing greenfield AIO deployments, they will need to follow new steps and ensure they bootstrap Ansible prior to running the new AIO Ansible playbook. Documentation for AIO builds will require updates.
If deployers are doing deployments to multiple servers (non-AIO), their steps for deploying openstack-ansible will not change.
Developers will need to make any future AIO bootstrap changes within the Ansible playbook instead of the bash script.
This spec doesn’t depend on any other blueprint or spec at this time.
Major Hayden (Launchpad: rackerhacker, IRC: mhayden)
The last bulleted list in Proposed Changes above details out the work items.
These changes will impact gating since the gating jobs run an AIO build. However, if the bootstrap-aio.sh script is changed to call the AIO bootstrap Ansible playbook, the gating job itself will not need to be changed.
No additional resources should be required during gating to run the Ansible AIO playbook.
The documentation for AIO deployments would need to be updated with the new steps for bootstrapping an AIO build. The changes in the steps are in the Proposed Changes section at the top of this spec.
Also, deployers would need to note which environment variables and/or Ansible variables to set to control various parts of the deployment, such as whether or not to deploy certain OpenStack services in their environment.
No references at this time.