Provisioning OmniCRM Products with Ansible
OmniCRM products are provisioned using Ansible, allowing for automated service management based on the specific requirements of each product and its associated inventory.
Provisioning Workflow
When a product is provisioned, OmniCRM passes a set of variables to Ansible that are defined by both the product itself and the selected inventory item(s). These variables include important details such as the hardware or virtual resources required, service configurations, and any additional parameters needed for successful provisioning.
Ansible then handles the complete lifecycle of the service provisioning, including:
- Provisioning: Setting up the service by configuring hardware or software according to the defined product and inventory specifications.
- Deprovisioning: Automatically removing services when they are no longer needed, freeing up inventory and ensuring proper resource management.
- Rollbacks: In case of a failure during the provisioning process, Ansible uses its Rescue feature to handle rollbacks, ensuring that any partially completed tasks are undone and the system returns to a consistent state.
Generally Omnitouch staff will work with the customer to define the product requirements and develop the necessary Ansible playbooks to automate the provisioning process. This ensures that each service is deployed consistently and reliably, reducing the risk of errors and ensuring that all necessary steps are completed in the correct order.
Ansible Variables
The variables passed to Ansible include:
- Product Variables: These are derived from the OmniCRM product configurations and define how the service should be set up.
- Inventory Variables: Selected from the inventory, these include items such as modems, SIM cards, IP address blocks, or phone numbers that are required for provisioning.
Ansible Playbooks
The provisioning process is controlled by Ansible Playbooks, which are responsible for executing the necessary tasks to bring the product or service into operation. These playbooks ensure a consistent and repeatable deployment process, minimizing errors and ensuring that all steps are completed in the correct order.
In case of errors, Ansible's Rescue feature comes into play, automatically rolling back changes to maintain the integrity of the system and prevent incomplete provisioning.
Deprovisioning
When a service is no longer needed, the Ansible Playbooks are also used to deprovision the service. This removes any configurations, releases inventory back to the pool, and ensures that the system is kept clean of unused services or items.
Rollback and Error Handling
Ansible's Rescue feature is employed during both provisioning and deprovisioning to handle errors gracefully. If a task fails at any point during provisioning, the system will automatically roll back changes to return to a consistent state. This ensures reliability and reduces the risk of partial or failed deployments.