hetzner.hcloud.hcloud_server module – Create and manage cloud servers on the Hetzner Cloud.
Note
This module is part of the hetzner.hcloud collection (version 1.16.0).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install hetzner.hcloud
.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: hetzner.hcloud.hcloud_server
.
Synopsis
Create, update and manage cloud servers on the Hetzner Cloud.
Requirements
The below requirements are needed on the host that executes this module.
python-dateutil >= 2.7.5
requests >=2.20
Parameters
Parameter |
Comments |
---|---|
Allows the creation of servers with deprecated images. Choices:
|
|
This is the API Token for the Hetzner Cloud. You can also set this option by using the environment variable HCLOUD_TOKEN |
|
Enable or disable Backups for the given Server. Choices:
|
|
Datacenter of Server. Required of no location is given and server does not exist. |
|
Protect the Server for deletion. Needs to be the same as rebuild_protection. Choices:
|
|
Enables the public ipv4 address Choices:
|
|
Enables the public ipv6 address Choices:
|
|
This is the API Endpoint for the Hetzner Cloud. Default: |
|
List of Firewall IDs that should be attached to the server on server creation. |
|
Force the update of the server. May power off the server if update. Choices:
|
|
Deprecated Force the upgrade of the server. Power off the server if it is running on upgrade. Choices:
|
|
The ID of the Hetzner Cloud server to manage. Only required if no server name is given |
|
Image the server should be created from. Required if server does not exist. |
|
ID of the ipv4 Primary IP to use. If omitted and enable_ipv4 is true, a new ipv4 Primary IP will automatically be created |
|
ID of the ipv6 Primary IP to use. If omitted and enable_ipv6 is true, a new ipv6 Primary IP will automatically be created. |
|
User-defined labels (key-value pairs). |
|
Location of Server. Required if no datacenter is given and server does not exist. |
|
The Name of the Hetzner Cloud server to manage. Only required if no server id is given or a server does not exist. |
|
Placement Group of the server. |
|
List of private networks the server is attached to (name or ID) If None, private networks are left as they are (e.g. if previously added by hcloud_server_network), if it has any other value (including []), only those networks are attached to the server. |
|
Protect the Server for rebuild. Needs to be the same as delete_protection. Choices:
|
|
Add the Hetzner rescue system type you want the server to be booted into. |
|
The Server Type of the Hetzner Cloud server to manage. Required if server does not exist. |
|
List of SSH key names The key names correspond to the SSH keys configured for your Hetzner Cloud account access. |
|
State of the server. Choices:
|
|
Resize the disk size, when resizing a server. If you want to downgrade the server later, this value should be False. Choices:
|
|
User Data to be passed to the server on creation. Only used if server does not exist. |
|
List of Volumes IDs that should be attached to the server on server creation. |
See Also
See also
- Documentation for Hetzner Cloud API
Complete reference for the Hetzner Cloud API.
Examples
- name: Create a basic server
hcloud_server:
name: my-server
server_type: cx11
image: ubuntu-22.04
state: present
- name: Create a basic server with ssh key
hcloud_server:
name: my-server
server_type: cx11
image: ubuntu-22.04
location: fsn1
ssh_keys:
- me@myorganisation
state: present
- name: Resize an existing server
hcloud_server:
name: my-server
server_type: cx21
upgrade_disk: true
state: present
- name: Ensure the server is absent (remove if needed)
hcloud_server:
name: my-server
state: absent
- name: Ensure the server is started
hcloud_server:
name: my-server
state: started
- name: Ensure the server is stopped
hcloud_server:
name: my-server
state: stopped
- name: Ensure the server is restarted
hcloud_server:
name: my-server
state: restarted
- name: Ensure the server is will be booted in rescue mode and therefore restarted
hcloud_server:
name: my-server
rescue_mode: linux64
state: restarted
- name: Ensure the server is rebuild
hcloud_server:
name: my-server
image: ubuntu-22.04
state: rebuild
- name: Add server to placement group
hcloud_server:
name: my-server
placement_group: my-placement-group
force: True
state: present
- name: Remove server from placement group
hcloud_server:
name: my-server
placement_group: null
state: present
- name: Add server with private network only
hcloud_server:
name: my-server
enable_ipv4: false
enable_ipv6: false
private_networks:
- my-network
- 4711
state: present
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
The server instance Returned: Always |
|
Time window (UTC) in which the backup will run, or null if the backups are not enabled Returned: always Sample: |
|
Name of the datacenter of the server Returned: always Sample: |
|
True if server is protected for deletion Returned: always Sample: |
|
Numeric identifier of the server Returned: always Sample: |
|
Public IPv4 address of the server Returned: always Sample: |
|
IPv6 network of the server Returned: always Sample: |
|
User-defined labels (key-value pairs) Returned: always |
|
Name of the location of the server Returned: always Sample: |
|
Name of the server Returned: always Sample: |
|
Placement Group of the server Returned: always Sample: |
|
List of private networks the server is attached to (name or ID) Returned: always Sample: |
|
List of private networks the server is attached to (dict with name and ip) Returned: always Sample: |
|
True if server is protected for rebuild Returned: always Sample: |
|
True if rescue mode is enabled, Server will then boot into rescue system on next reboot Returned: always Sample: |
|
Name of the server type of the server Returned: always Sample: |
|
Status of the server Returned: always Sample: |