jasonheecs.digitalocean
Ansible Role: Creación de Droplets en DigitalOcean
Un rol de ansible que crea un droplet en DigitalOcean y añade la dirección IP del droplet al archivo de inventario.
Requisitos
Ninguno.
Instalación
ansible-galaxy install jasonheecs.digitalocean
Variables del Rol
Las variables del rol están listadas en defaults/main.yml
, y las variables sensibles (como tu token de API de DigitalOcean) deben estar en vars/private.yml
.
Las variables disponibles se enumeran a continuación, junto con los valores predeterminados (consulta defaults/main.yml
y vars/private.yml.example
):
# Identificador de la clave SSH en tu cuenta de DigitalOcean
do_ssh_key_name: Clave SSH de Ansible
# Clave pública SSH que se añadirá a tu cuenta
do_ssh_pub_key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
# Clave privada utilizada para acceder por SSH a tu droplet
do_ssh_private_key: "~/.ssh/id_rsa"
# Nombre del droplet
droplet_name: test-droplet
# Este es el identificador de la región donde te gustaría crear tu servidor.
droplet_region_id: sgp1
# Este es el identificador del tamaño con el que te gustaría que se creara el droplet.
droplet_size_id: 512mb
# Este es el identificador de la imagen con la que te gustaría que se creara el droplet.
droplet_image_id: ubuntu-18-04-x64
# Ubicación de tu archivo de inventario de ansible
ansible_inventory_file: hosts.ini
# El nombre del grupo que se usa para agrupar tus droplets en tu archivo de inventario
droplets_inventory_group: do_droplets
# Tu token de acceso personal de DigitalOcean (https://www.digitalocean.com/community/tutorials/how-to-use-the-digitalocean-api-v2)
do_api_token: inserttokenhere
# Claves SSH adicionales para añadir al droplet durante el proceso de creación (https://developers.digitalocean.com/documentation/v2/#ssh-keys)
droplet_additional_ssh_key_ids: []
Dependencias
Ninguna.
Ejemplos de Playbooks
Un playbook que ejecuta este rol en una máquina remota:
- hosts: all
become: no
roles:
- { role: jasonheecs.digitalocean }
Un playbook que ejecuta este rol en tu máquina local:
- hosts: localhost
connection: local
become: no
roles:
- { role: jasonheecs.digitalocean }
Consulta un ejemplo de playbook aquí.
Pruebas
Las pruebas automatizadas se realizan a través de Test Kitchen, Kitchen Ansible y Kitchen Docker.
Para ejecutar las pruebas, asegúrate de que Ruby y Docker estén instalados y ejecuta lo siguiente:
gem install bundler && bundle exec kitchen test
Consulta el archivo travis.yml y los registros de construcción de Travis para detalles sobre el proceso de construcción de la prueba y los resultados esperados.
Plataformas Soportadas
Este rol de ansible ha sido probado en las siguientes plataformas:
- macOS Sierra
- macOS High Sierra
- Ubuntu 16.04
- Ubuntu 14.04
- CentOS 7
- Debian 9
Licencia
MIT
Información del Autor
ansible-galaxy install jasonheecs.digitalocean