This post originally appeared on IBM, April 14, 2021.
We're excited to announce general availability of Ansible support in IBM Cloud Schematics.
If you haven't had a chance to get hands-on during the Open Beta, this post will get you up to speed. Using Actions in IBM Cloud Schematics, you can now run Ansible playbooks against your inventory of IBM Cloud resources.
What is Schematics?
Schematics is an IBM Cloud service that provides powerful tools to enable automation with Infrastructure as Code (IaC). Essentially, IaC allows you to "codify" your cloud environments so you can eliminate manual configuration steps and reduce the potential for human error.
Schematics is powered by open source capabilities underneath the hood, using a combination of two major capabilities to deliver the end-to-end infrastructure automation capabilities:
- Terraform excels at the provisioning of services using a declarative approach.
- Ansible is primarily used for configuration management and application deployment.
The key advantage of Schematics lies in allowing you to declare the automation tasks you need within the service and letting us run it for you. Using an "as-a-service" experience, you can avoid managing an environment to run and maintain your Ansible and Terraform executions. In addition, we offer key integrations with IBM Cloud services, including the following:
- IBM Cloud Monitoring
- Cloud Activity Tracker
- IBM Cloud Identity and Access Management
- IBM Key Protect for IBM Cloud
- IBM Cloud Hyper Protect Crypto Services
What is Ansible?
Ansible is an open source software-provisioning, configuration-management and application-deployment tool originally developed by Red Hat. Here's a few examples where Ansible excels:
- Deploying applications on VSIs on VPC Gen 2
- Installing OS updates on VSIs
- Configuring IBM Cloud resources post-provisioning
- Deploying containers to managed Kubernetes clusters (such as IBM Cloud Kubernetes Service)
Learn more about Ansible:https://www.youtube.com/embed/fHO1X93e4WA?autoplay=0&start=0&rel=0
Getting started with Actions
Let's see how we can deploy an Action that can simply start, stop or restart a VSI on VPC Gen 2 in IBM Cloud. First, you'll need a VSI on VPC Gen 2 infrastructure in IBM Cloud and an attached SSH key. You can follow the instructions in the VPC docs here to get the prerequisites created. Once completed, you should have a running VSI that looks something like this:
Create your first Action
1. Navigate to Schematics Actions and click Create Action.
2. Name your action, keep the default settings and hit Create:
3. Input the repository "https://github.com/Cloud-Schematics/ansible-is-instance-actions" into the GitHub field and hit Retrieve Playbooks:
Note: Feel free to inspect the playbooks in the GitHub repo to learn how they work. When you run this playbook, Schematics securely connects to the target VSI by using the SSH key that you configured when you created the VSI. You could also fork this repository if you wanted to make updates to the Ansible playbooks prior to importing.
4. Once the playbooks have been retrieved, choose the
stop-vsi-playbook.yml playbook, and open the Advanced options to set the
instance_ip to the "Private IP" of your VSI in the VPC dashboard. Then, hit Save:
5. Once the Action is saved, hit Check Action to do a "dry run" to ensure everything is working properly. When it comes back successfully, hit Run Action and wait for it to finish executing:
6. Finally, go back to your VSI dashboard — your machine should be stopped!