Managed Kubernetes now available in Open Beta. Test out the new service yourself at your Control Panel.
Managed Kubernetes now available in Open Beta. Test out the new service yourself at your Control Panel.
Ansible is a popular configuration management tool for provisioning anything from individual cloud servers to entire cloud infrastructures. It executes the requested operation by following user-defined playbooks, lists of customisable actions written in YAML, on specified cloud servers.
Using Ansible, you can automate all bootstrapping operations, like installing and updating software, creating and removing users, and configuring system services. And to expand on those features, the UpCloud Ansible Collection adds a whole lot of newly available configuration options.
The collection of Ansible options for UpCloud integrates our services with the management tool. It really makes Ansible a great addition to your development resources. It extends the available configuration options on Ansible, giving you greater control of your new deployments. Simply by installing the module, you can use the additional inventory definitions in your Ansible playbooks.
Playbooks in Ansible are basic text language configuration files designed to be human-readable. At a basic level, playbooks can be used to manage the configuration and deployment of any remote machines. Furthermore, at an advanced level, playbooks can sequence multi-tier rollouts, delegate actions to entire clusters, and integrate with monitoring services and load balancers.
Below is an example of the available inventory definitions.
plugin: community.upcloud.upcloud
zones:
- fi-hel2
tags:
- app
- db
states:
- started
network: 035a0a8a-7704-4da5-820d-129fc8232714
The inventory file allows you to manage multiple Cloud Servers easily and provision each according to your needs. You can filter servers based on their zone, tags, state, or the network they belong to.
Ansible is a great tool for making the configurations on your Cloud Servers once deployed. However, you first need to get the servers up and running. For this purpose, look no further than Terraform.
Terraform is a popular open-source infrastructure-as-code software tool that allows you to define infrastructure as code. It uses simple, human-readable language to safely and predictably manage cloud infrastructure by codifying APIs into declarative configuration files. Once the infrastructure has been deployed, Terraform is able to call on Ansible to do its thing to bootstrap the new Cloud Servers as required.
Running Ansible together with Terraform enables you to provision Cloud Servers directly after deployment. It allows you to make resources usable predictably, repeatably and much faster than configuring anything manually. It also enables easier maintenance and troubleshooting, thanks to the identical deployment steps which can eliminate human error.
Underneath is an example of how to integrate Ansible with your Terraform deployments.
# SSH connection and authentication
connection {
host = self.network_interface[0].ip_address
type = "ssh"
user = "root"
private_key = file("/path/to/ssh-private-key")
}
# Wait until the Cloud Server is availble
provisioner "remote-exec" {
inline = ["echo 'Cloud Server ready!'"]
}
# Provision the Cloud Server using Ansible
provisioner "local-exec" {
command = <<-EOT
ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook \
-u root \
-i '${self.network_interface[0].ip_address},' \
--private-key '/path/to/ssh-private-key' \
your-playbook.yml
EOT
}
The above example includes three sections:
Ansible is quick to install and easy to run so head over to our Ansible collection GitHub repository to get started!
You might also be interested in learning more about Terraform. Check out our beginners tutorial and start codifying your cloud infrastructure.
Packer is an easy-to-use automation solution for creating any type of machine images. It embraces modern configuration management by allowing automated software installation and setup within Packer-built images. UpCloud Packer builder integrates Packer with our Cloud Servers and makes creating private templates fast! Packer plugin UpCloud Packer builder is a plugin for Packer to simplify template […]
Terraform is a popular open-source infrastructure-as-code software tool created by HashiCorp. It allows users to define infrastructure as code using a simple, human-readable language to safely and predictably manage cloud infrastructure by codifying APIs into declarative configuration files.