Ansible
Ansible is used to configure different parts of the overall system in a consistent manner. To this effect a container is produced with playbooks, roles and collections pre-installed and it can be run by providing system configuration to it.
Execution Environment
Ansible is executed within a container which is build within this repo.
The configuration and the source are contained within the
ansible/ directory.
Configuration
The execution environment within the container is ansible-runner. An inventory directory is necessary to be provided which would be part of your system deployment data.
Anything which is rackspace specific will be mounted inside ansible container.
For example ansible hosts file and group-vars which are deployment specific are created as config-maps and mounted as volumes
Sample Execution
docker run --rm -it ghcr.io/rackerlabs/understack/ansible:latest -- \
ansible-runner run /runner --playbook debug.yaml
Local Development
For local development and testing, see the Ansible Container Local Usage Guide for detailed instructions on:
- Running playbooks locally with Docker
- Volume mount configurations
- Environment-specific inventory setup
- Debugging and troubleshooting
Operational Playbooks (undercloud-rackspace Repository)
Ongoing operational playbooks that are not part of the initial Understack setup are maintained in a separate repository and can be executed via Argo Workflows using the ansible-run workflow template.