jasonheecs.digitalocean
Ansible-Rolle: Erstellung von DigitalOcean Droplets
Eine Ansible-Rolle, die einen DigitalOcean-Droplet erstellt und die IP-Adresse des Droplets zur Inventardatei hinzufügt.
Voraussetzungen
Keine.
Installation
ansible-galaxy install jasonheecs.digitalocean
Rollenvariablen
Rollenspezifische Variablen sind in defaults/main.yml
aufgeführt, und sensible Variablen (wie dein DigitalOcean API-Token) sollten in vars/private.yml
aufgeführt werden.
Verfügbare Variablen sind unten aufgelistet, zusammen mit Standardwerten (siehe defaults/main.yml
und vars/private.yml.example
):
# SSH-Schlüsselidentifikator in deinem DigitalOcean-Konto
do_ssh_key_name: Ansible SSH Schlüssel
# Öffentlicher SSH-Schlüssel, der zu deinem Konto hinzugefügt wird
do_ssh_pub_key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
# Privater Schlüssel zum SSH-Zugriff auf deinen Droplet
do_ssh_private_key: "~/.ssh/id_rsa"
# Name des Droplets
droplet_name: test-droplet
# Dies ist der Slug der Region, in der du deinen Server erstellen möchtest.
droplet_region_id: sgp1
# Dies ist der Slug der Größe, mit der der Droplet erstellt werden soll.
droplet_size_id: 512mb
# Dies ist der Slug des Images, mit dem der Droplet erstellt werden soll.
droplet_image_id: ubuntu-18-04-x64
# Speicherort deiner Ansible-Inventardatei
ansible_inventory_file: hosts.ini
# Der Gruppenname, der für die Gruppierung deiner Droplets in deiner Inventardatei verwendet wird
droplets_inventory_group: do_droplets
# Dein persönlicher DigitalOcean-Zugangstoken (https://www.digitalocean.com/community/tutorials/how-to-use-the-digitalocean-api-v2)
do_api_token: inserttokenhere
# Zusätzliche SSH-Schlüssel, die während des Erstellungsprozesses zum Droplet hinzugefügt werden (https://developers.digitalocean.com/documentation/v2/#ssh-keys)
droplet_additional_ssh_key_ids: []
Abhängigkeiten
Keine.
Beispiel-Playbooks
Ein Playbook, das diese Rolle auf einem Remote-Computer ausführt:
- hosts: all
become: no
roles:
- { role: jasonheecs.digitalocean }
Ein Playbook, das diese Rolle auf deinem lokalen Computer ausführt:
- hosts: localhost
connection: local
become: no
roles:
- { role: jasonheecs.digitalocean }
Siehe ein Beispiel-Playbook hier.
Tests
Automatisierte Tests werden über Test Kitchen, Kitchen Ansible und Kitchen Docker durchgeführt.
Um die Tests auszuführen, stelle sicher, dass Ruby und Docker installiert sind, und führe Folgendes aus:
gem install bundler && bundle exec kitchen test
Siehe die travis.yml-Datei und Travis-Baulinien für Details zum Testprozess und den erwarteten Ausgaben.
Unterstützte Plattformen
Diese Ansible-Rolle wurde auf folgenden Plattformen getestet:
- macOS Sierra
- macOS High Sierra
- Ubuntu 16.04
- Ubuntu 14.04
- CentOS 7
- Debian 9
Lizenz
MIT
Autor Informationen
ansible-galaxy install jasonheecs.digitalocean