Support for continuous delivery (configuration management)
Summarize
Summary of Support for Continuous Delivery (Configuration Management)
The Cloud Provisioning and Governance application facilitates integration with continuous delivery solutions, primarily utilizing Ansible as the default configuration management provider. It supports two primary approaches for configuration management: application profile-based and resource block-based.
Show less
Key Features
- Application Profile-Based Approach: Create application profiles to deploy entities via the order catalog. Each profile includes a config installable and can be mapped to a configuration management provider. Users can modify values in the configuration grid for provisioning.
- Resource Block-Based Approach: Utilize resource blocks in blueprints to manage entities. The same block can represent multiple entities (e.g., multiple Apache2 servers). Users can select a provider type and configure management attributes for provisioning.
- Post-Provisioning Actions: Users can invoke Ansible jobs as post-provisioning steps for virtual machine deployments, executed as day-2 operations post-installation.
- Blueprint Management: Starting with the Orlando release, existing blueprints are maintained, but new blueprints cannot be created on upgraded instances.
Key Outcomes
To effectively utilize the Cloud Provisioning and Governance application, users should:
- Create credentials for Ansible to allow access to the configuration provider.
- Define a workload provider type and discover existing resources.
- Create an application profile that aligns with the configuration management provider's inventory.
- Develop a blueprint incorporating necessary operations like BootstrapNode and ExecuteConfigPackages, allowing user customization.
- Provision resources via the Cloud User Portal, ensuring correct execution of the defined steps.
The Cloud Provisioning and Governance application supports integration with continuous delivery solutions (also known as configuration management). Ansible is supported as the default config management provider.
- Application profile based approach: Create an application profile for an entity and in the order catalog form, select that profile to deploy that entity. Each profile has a config installable. You can create multiple application profiles- as an example, one for PostgreSQL and one for Apache. Each profile can be mapped to a configuration management provider. In the Cloud User Portal, based on the profile you select, a configuration grid appears populated with attributes and values for that specific configuration management provider. You can modify any values in the order form and provision the entity.
- Resource block based approach: Use a resource block, like Apache2, in a blueprint to represent an entity that a configuration management provider manages. The same resource block can be used to support more than one entity of the same kind. As an example, an Apache2 resource block can be used to support multiple Apache2 servers. In the order catalog form, select a provider type and then select a provider. Based on the specific provider, configuration management attributes and values appear. Once you provision the entity, you can save the configuration of the resource block and store it in the CMDB for future use.
- Post-provisioning actions during catalog deployment: Users can call ansible job as a post-provisioning step in any catalog which deploys a VM. This will be executed as a day-2 operation once the VM installation is completed. For more information on the processes, see https://www.servicenow.com/community/itom-blog/cpg-calling-ansible-job-as-post-provision-step-for-cloud-catalog/ba-p/2271552 and https://www.servicenow.com/community/itom-blog/cpg-calling-ansible-job-as-day2-operation/ba-p/2270969.
What to do
| Step | Goal | See these topics |
|---|---|---|
| 1. Create credentials for Ansible. | Enable Cloud Provisioning and Governance to access the configuration provider with the necessary credentials. | Configure Ansible Tower user name and password |
| 2. Create the workload provider type, and then create the provider. | Configure Cloud Provisioning and Governance to work with the configuration management provider of your choice. Then run discovery on the provider, using the credentials you provide, to find the resources that the provider already owns. | Create a workload provider type and Create an Ansible configuration management provider and run Discovery |
| 3. Create an application profile with a mapping | Create the profile that defines the application that the configuration management provider manages. The profile is based on the discovered inventories in the provider. | Create an application profile |
| 4. Create a blueprint | Create a blueprint with BootstrapNode, Register Node, and ExecuteConfigPackages operations on the virtual resource that the configuration provider manages. You can also customize the input parameters on the form to allow the user to select important inputs, like the application profile template, organization, and credential ID. | |
| 5. Provision a resource from the Cloud User Portal | The resource should provision, with the stack status indicating the BootstrapNode, Register Node, and ExecuteConfigPackages steps. |