Overview
This page aims to provide a basic overview of Catapult, what it is. On a very simple level it's Ansible running in a Docker container with some extra features to make it easier to use and manage. But it's much more than that. Catapult is a tool that helps you manage your Ansible projects and environments in a way that is scalable, maintainable and reusable. Once you have installed Catapult and set up your project, you can keep coming back here to better understand how Catapult works and how to use it effectively.
Simple Deployment Tree
Catapult (like Ansible) is host driven, meaning that you target your deployment either against a remote host or delegate it to the local machine (when interacting with APIs instead of VMs).
When deploying a remote host it's important to understand what steps Catapult goes through when configuring the host. The simple deployment tree is as follows:
| # | Step | Description |
|---|---|---|
| 0 | loading variables | Loading variables for the host, this includes host/group_vars, Catapult defaults, module defaults, etc. This is default Ansible behavior. |
| 1 | deploy_vars | Loading custom Catapult specific defaults and running early stage tasks |
| 2 | machine_operations | Creating a virtual machine |
| 3 | configure_networking | Configuring the network settings for the virtual machine |
| 4 | connection | Setting correct network connection parameters to connect and configure the machine (mostly over SSH) |
| 5 | accounts | Creating required accounts defined in the admin_accounts, user_accounts or domain_user_accounts variables with the project |
| 6 | os_configuration | Running basic OS configurations like setting hostname, timezone, NTP settings, etc. |
| 7 | customization_pre_vm_role | Including pre-VM customization role if it exists. This can be used to apply something to some group or all hosts of the project before starting the VM configuration |
| 8 | customization | Including machine specific role if it exists. Turning a blank VM into an application. |
| 9 | customization_post_vm_role | Including post-VM customization role if it exists. Same as customization_pre_vm_role but runs after the VM configuration. |
| 10 | finalize | Running finalization tasks like running tests, updates, cleanup, etc. |
| 11 | get_ip | Printing out the connection info of the VM |