Minimal example
Last updated
Last updated
We begin our look at the IONOS Cloud Ansible Module with a minimal example that creates, and then deletes a Virtual Data Center (VDC) containing one server. It also shows you how the Ansible Module can be used to shut off a VM and power it back on.
If you're looking at this example whilst also learning about Ansible, then the following notes / hints might prove helpful:
Read through the table below, which describes the files that make up this example.
At a minimum, go through main.yml
and ../vars.yml
to get a feeling for how everything fits together. What do you expect to happen?
Follow the steps outlined in the 'Usage' section below to actually provision your VM.
Look at what was created in the DCD, at a minimum, and possibly using an API tool like the rather excellent IonosCTL command-line tool.
Go back through main.yml
to compare what the various stanzas say with what they do.
Once you have a general understanding of what this example does (and how it does what it does), feel free to make whatever changes you want to, knowing that you can always just do a git diff
, git revert
or git pull
if you 'break something' along the way. (That said, the scope for modification is a bit limited due to the minimal nature of this example — if you want to start playing around with multiple storage volumes or NICs, you might want to wait until the next example.)
Even though this example is quite minimal, it includes and/or depends upon the following files:
File | Description |
---|---|
Note: As with all other 'executable' examples in this repository, an 'End User Licence Agreement'-like statement will be displayed, which must be accepted before the tasks proper can be executed.
Please note that, while potentially quite minimal, you will incur charges for the resources based upon how long you keep them provisioned; for more information on the actual costs, you can follow the links displayed in the 'EULA' text. (But also, as a rough guide, a single-core VM with 1GB of RAM and 10GB of HDD storage would cost about 4.5 (Euro)cents per hour, as of April 2024.)
To provision this infrastructure:
make sure that you have a working installation of Ansible and the IONOS Cloud Ansible module as described in the 'Before you begin' section of this series' introduction, and that your IONOS_TOKEN
environment variable is set; and
run the following command on your Ansible host:
If you let it run until it completes successfully, you shouldn't need to do anything else, however we still recommend that you confirm (via the DCD or ionosctl
) that the server and its containing data center have been deleted as expected; if the playbook failed with errors, then you will definitely want to do this.
Should you have any problems running this playbook, you might want to refer to the section entitled 'A few good to knows' for some troubleshooting tips.
Although quite limited in its scope, this example illustrates several things (at least to the beginner) including:
how to provision IONOS Cloud Data Centers and Servers, and to change the state of the latter;
how to read in the contents of files and environment variables (in ../vars.yml
);
how to prompt for user input (and evaluate composite conditionals); and
how to use the results of previous tasks (i.e. register variables) — e.g., datacenter_response
and create_server_response
The source files for this tutorial can be downloaded from its Github repository, or cloned into your current working directory using the command git clone https://github.com/ionos-cloud/module-ansible.git
before changing into the module-ansible/docs/tutorials/01__minimal_example
sub-directory.
main.yml
As its name suggests, this is the example's main (and only) Ansible file
../vars.yml
This file is common to all of our Ansible examples and contains a set of more generally-used variable definitions
cloud-init.txt
This file contains the cloud-init data that will be used to tailor the new server while it's being provisioned