siw36.ansible_hcloud_vm
ansible-hcloud-vm
Ce rôle déploie une ou plusieurs machines virtuelles avec des disques supplémentaires dans le cloud Hetzner.
Ce qui se passe :
- La clé SSH publique spécifiée sera créée dans votre compte.
- La liste des serveurs sera créée avec un accès pour la clé SSH spécifiée en tant que root (tant que vous utilisez les images Hetzner).
- La liste des volumes pour chaque serveur sera créée et les volumes seront attachés au serveur correspondant.
Problèmes actuels du module/API :
Lorsque vous supprimez un serveur puis immédiatement après, les volumes attachés à ce serveur, l'API signale que ces volumes sont encore attachés à un serveur et ne peuvent pas être supprimés.
Cela se produit lorsque vous exécutez ce rôle et que vous définissez l'état d'un serveur sur absent
et que vous définissez également l'état du volume qui était/est attaché au serveur sur absent
.
Obtenez ce rôle
ansible-galaxy install --roles-path ./roles/ siw36.ansible_hcloud_vm
Exigences
- Module Python :
hcloud
(Ce rôle l'installera automatiquement dans le répertoire de modules Python de l'utilisateur)
Variables du Rôle
Nom | Description | Valeur par défaut |
---|---|---|
getInfoOnly | Obtenir les valeurs possibles pour le type de serveur, l'image et l'emplacement. Seules les informations seront imprimées lorsque cette variable est définie sur vrai. | faux |
hcloudBearer | Votre clé API Hetzner Cloud. Peut être trouvée dans votre projet dans l'onglet de clé SSH. | <aucun - __doit être défini__> |
sshKey | Dictionnaire contenant les informations sur la clé SSH root | <aucun - __doit être défini__> |
deployments | Liste des déploiements et de leurs disques | <aucun - __doit être défini__> |
Voir l'exemple ci-dessous pour les détails sur la manière de spécifier les variables
Exemple de 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)
Licence
Licence Publique Générale GNU v3.0
Informations sur l'Auteur
Créé par Robin 'siw36' Klussmann (07/2019)
Role to deploy servers on Hetzner Cloud
ansible-galaxy install siw36.ansible_hcloud_vm