On this page
hetzner.hcloud.hcloud_server – Create and manage cloud servers on the Hetzner Cloud.
Note
This plugin is part of the hetzner.hcloud collection (version 1.6.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.
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.
- hcloud-python >= 1.0.0
 
Parameters
| Parameter | Choices/Defaults | Comments | 
|---|---|---|
| allow_deprecated_image
        
        boolean
         | 
      
       
  | 
      
        
        Allows the creation of servers with deprecated images.
         | 
     
| api_token
        
        string / required
         | 
      
        
        This is the API Token for the Hetzner Cloud.
         | 
     |
| backups
        
        boolean
         | 
      
       
  | 
      
        
        Enable or disable Backups for the given Server.
         | 
     
| datacenter
        
        string
         | 
      
        
        Datacenter of Server.
        
       
        Required of no location is given and server does not exists.
         | 
     |
| delete_protection
        
        boolean
         | 
      
       
  | 
      
        
        Protect the Server for deletion.
        
       
        Needs to be the same as rebuild_protection.
         | 
     
| endpoint
        
        string
         | 
      Default: 
        "https://api.hetzner.cloud/v1"
         | 
      
        
        This is the API Endpoint for the Hetzner Cloud.
         | 
     
| firewalls
        
        list / elements=string
         | 
      
        
        List of Firewall IDs that should be attached to the server on server creation.
         | 
     |
| force
        
        boolean
         | 
      
       
  | 
      
        
        Force the update of the server.
        
       
        May power off the server if update.
         | 
     
| force_upgrade
        
        boolean
         | 
      
       
  | 
      
        
        Deprecated
        
       
        Force the upgrade of the server.
        
       
        Power off the server if it is running on upgrade.
         | 
     
| id
        
        integer
         | 
      
        
        The ID of the Hetzner Cloud server to manage.
        
       
        Only required if no server name is given
         | 
     |
| image
        
        string
         | 
      
        
        Image the server should be created from.
        
       
        Required if server does not exists.
         | 
     |
| labels
        
        dictionary
         | 
      
        
        User-defined labels (key-value pairs).
         | 
     |
| location
        
        string
         | 
      
        
        Location of Server.
        
       
        Required if no datacenter is given and server does not exists.
         | 
     |
| name
        
        string
         | 
      
        
        The Name of the Hetzner Cloud server to manage.
        
       
        Only required if no server id is given or a server does not exists.
         | 
     |
| placement_group
        
        string
         | 
      
        
        Placement Group of the server.
         | 
     |
| rebuild_protection
        
        boolean
         | 
      
       
  | 
      
        
        Protect the Server for rebuild.
        
       
        Needs to be the same as delete_protection.
         | 
     
| rescue_mode
        
        string
         | 
      
        
        Add the Hetzner rescue system type you want the server to be booted into.
         | 
     |
| server_type
        
        string
         | 
      
        
        The Server Type of the Hetzner Cloud server to manage.
        
       
        Required if server does not exists.
         | 
     |
| ssh_keys
        
        list / elements=string
         | 
      
        
        List of SSH key names
        
       
        The key names correspond to the SSH keys configured for your Hetzner Cloud account access.
         | 
     |
| state
        
        string
         | 
      
       
  | 
      
        
        State of the server.
         | 
     
| upgrade_disk
        
        boolean
         | 
      
       
  | 
      
        
        Resize the disk size, when resizing a server.
        
       
        If you want to downgrade the server later, this value should be False.
         | 
     
| user_data
        
        string
         | 
      
        
        User Data to be passed to the server on creation.
        
       
        Only used if server does not exists.
         | 
     |
| volumes
        
        list / elements=string
         | 
      
        
        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-18.04
    state: present
- name: Create a basic server with ssh key
  hcloud_server:
    name: my-server
    server_type: cx11
    image: ubuntu-18.04
    location: fsn1
    ssh_keys:
      - me@myorganisation
    state: present
- name: Resize an existing server
  hcloud_server:
    name: my-server
    server_type: cx21
    upgrade_disk: yes
    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-18.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
  Return Values
Common return values are documented here, the following are the fields unique to this module:
| Key | Returned | Description | |
|---|---|---|---|
| hcloud_server
        
        complex
         | 
      Always | 
        
        The server instance
          | 
     |
| backup_window
        
        boolean
         | 
      always | 
        
        Time window (UTC) in which the backup will run, or null if the backups are not enabled
         Sample:
        
       
        22-02
         | 
     |
| datacenter
        
        string
         | 
      always | 
        
        Name of the datacenter of the server
         Sample:
        
       
        fsn1-dc14
         | 
     |
| delete_protection
        
        boolean
        
       
        added in 0.1.0 of hetzner.hcloud
         | 
      always | 
        
        True if server is protected for deletion
          | 
     |
| id
        
        integer
         | 
      always | 
        
        Numeric identifier of the server
         Sample:
        
       
        1937415
         | 
     |
| ipv4_address
        
        string
         | 
      always | 
        
        Public IPv4 address of the server
         Sample:
        
       
        116.203.104.109
         | 
     |
| ipv6
        
        string
         | 
      always | 
        
        IPv6 network of the server
         Sample:
        
       
        2a01:4f8:1c1c:c140::/64
         | 
     |
| labels
        
        dictionary
         | 
      always | 
        
        User-defined labels (key-value pairs)
          | 
     |
| location
        
        string
         | 
      always | 
        
        Name of the location of the server
         Sample:
        
       
        fsn1
         | 
     |
| name
        
        string
         | 
      always | 
        
        Name of the server
         Sample:
        
       
        my-server
         | 
     |
| placement_group
        
        string
        
       
        added in 1.5.0 of hetzner.hcloud
         | 
      always | 
        
        Placement Group of the server
         Sample:
        
       
        4711
         | 
     |
| rebuild_protection
        
        boolean
        
       
        added in 0.1.0 of hetzner.hcloud
         | 
      always | 
        
        True if server is protected for rebuild
          | 
     |
| rescue_enabled
        
        boolean
         | 
      always | 
        
        True if rescue mode is enabled, Server will then boot into rescue system on next reboot
          | 
     |
| server_type
        
        string
         | 
      always | 
        
        Name of the server type of the server
         Sample:
        
       
        cx11
         | 
     |
| status
        
        string
         | 
      always | 
        
        Status of the server
         Sample:
        
       
        running
         | 
     |
Authors
- Lukas Kaemmerling (@LKaemmerling)
 
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
 https://docs.ansible.com/ansible/latest/collections/hetzner/hcloud/hcloud_server_module.html