siw36.ansible_hcloud_vm

ansible-hcloud-vm

=========

Ansible Role Ansible Quality Score Ansible Role Downloads

Hetzner Cloud

This role helps to set up one or more virtual machines with extra disks in Hetzner Cloud.

What happens:

  • Your specified SSH public key will be created in your account.
  • A list of servers will be made, giving root access with the specified SSH key (if using Hetzner images).
  • A list of volumes for each server will be created, and these volumes will be attached to the corresponding server.

Current module/API issues:

When you delete a server and then quickly delete the volumes attached to it, the API may say these volumes are still connected to a server and cannot be deleted. This can occur if you run this role and set the server's state to absent, while also marking the volume attached to this server as absent.

Get this role


To install the role, use:

ansible-galaxy install --roles-path ./roles/ siw36.ansible_hcloud_vm

Requirements


  • Python module: hcloud (This role will automatically install it to the user's Python module directory)

Role Variables


Name Description Default value
getInfoOnly Get possible values for server type, image, and location. Only prints information if this is set to true. false
hcloudBearer Your Hetzner Cloud API key, found in your project under the SSH key tab. <none - __required__ to be set>
sshKey Information about the root SSH key <none - __required__ to be set>
deployments List of deployments and their disks <none - __required__ to be set>

See the example below for how to specify the variables

Example Playbook


playbook.yml:

- hosts: localhost
  become: false
  gather_facts: false
  roles:
    - siw36.ansible_hcloud_vm

roles/siw36.ansible_hcloud_vm/vars/main.yml

#getInfoOnly: false

hcloudBearer: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

sshKey:
  name: root
  value: ssh-rsa xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx root
  state: present

deployments:
  - name: test0.nodes.replicas.io
    state: absent # (present|started|stopped|restarted|absent|rebuild)
    size: cx11
    location: hel1
    image: centos-7
    backup: false
    sshKeys:
      - siw
    labels:
        project: replicas.io
        stage: prod
        location: helsinki
    volumes:
      - name: test0.nodes.replicas.io-data0
        state: absent # (present|absent)
        size: 10
        automount: true
        format: xfs # (xfs|ext4)

License


GNU General Public License v3.0

Author Information


Created by Robin 'siw36' Klussmann (07/2019)

Informazioni sul progetto

Role to deploy servers on Hetzner Cloud

Installa
ansible-galaxy install siw36.ansible_hcloud_vm
Licenza
gpl-3.0
Download
166
Proprietario
Platform & DevOps Engineer