Automatización de Tareas con API de Digital Ocean y Postman
Resumen
¿Cómo podemos automatizar tareas con la API de DigitalOcean?
Hoy te enseñaremos cómo automatizar tareas y gestionar recursos en la nube utilizando la API de DigitalOcean. Utilizaremos herramientas como Postman para realizar peticiones HTTP y obtener respuestas en formato JSON. Esto facilitará la creación y gestión de recursos de manera eficiente y automatizada. Prepárate para descubrir lo emocionante que puede ser integrar la automatización en tus proyectos.
¿Qué es Postman y cómo nos ayuda?
Postman es una aplicación que permite realizar peticiones a una API de manera sencilla y organizada. Su interfaz amigable y sus funcionalidades avanzadas permiten no solo realizar peticiones, sino también crear colecciones, que son series de peticiones agrupadas para un proyecto en particular. Esto hace que Postman sea ideal para trabajar con la API de DigitalOcean.
Para empezar, descarga e instala Postman en tu ordenador. Aquí te guiaremos en cómo crear colecciones y realizar peticiones específicas, como obtener llaves SSH y crear Droplets en DigitalOcean.
¿Cómo creamos nuestra primera colección en Postman?
Iniciar Postman: Inicia la aplicación y espera a que cargue por completo.
Crear una colección: Dentro de Postman, crea una nueva colección. Por ejemplo, puedes llamarla "Platzi DigitalOcean API". Esto te ayudará a mantener tus peticiones organizadas.
Añadir una petición para obtener la llave SSH:
Crea una nueva petición dentro de tu colección.
Nombra la petición como "Obtener llave SSH".
Selecciona el tipo de petición HTTP adecuado (normalmente GET).
Configurar la autenticación:
Para autenticarte y demostrar que tienes permiso para hacer la solicitud, debes añadir un encabezado llamado Authorization. El valor de este encabezado debe ser Bearer <tu_token>, donde <tu_token> es tu token de autenticación previamente generado.
¿Cómo usamos la API para crear un Droplet?
Crear un Droplet es muy sencillo con la API de DigitalOcean. Aquí te mostramos cómo hacerlo:
Prepara la petición POST:
Crea una nueva petición en Postman con el tipo POST.
Añade la URL de la API para crear un Droplet, algo similar a: https://api.digitalocean.com/v2/droplets.
Autenticación: Usa el mismo método de autenticación que usaste para obtener la llave SSH.
Configura los parámetros necesarios:
Nombre del Droplet: Provea un nombre significativo, por ejemplo, "creado desde la API".
Región: Establece la región del centro de datos, como nyc1 para Nueva York.
Tamaño: Selecciona el tamaño del Droplet, por ejemplo, un Droplet pequeño (1vCPU y 1GB RAM).
Imagen: Selecciona la imagen del sistema operativo, por ejemplo, ubuntu-18-04-x64.
SSH Key: Añade el ID de tu llave SSH para autenticación directa; esta información la obtuviste en la petición anterior.
Aquí tienes un ejemplo de cómo se vería una petición:
{"name":"creado desde la API","region":"nyc1","size":"s-1vcpu-1gb","image":"ubuntu-18-04-x64","ssh_keys":[ <ID_llave_SSH> ],"backups":false,"ipv6":true,"user_data":null,"private_networking":null}
Envía la petición: Revisa que todos los parámetros estén configurados correctamente y envía la petición. Si todo está configurado bien, recibirás una respuesta con los detalles del Droplet creado.
¿Qué más podemos hacer con la API de DigitalOcean?
La API de DigitalOcean no solo sirve para crear Droplets, sino que también permite:
Escalamiento vertical: Cambiar las características del Droplet según tus necesidades.
Gestión de volúmenes: Crear y adjuntar volúmenes de almacenamiento.
Automatización completa: Automatizar casi cualquier tarea relacionada con la gestión de tus recursos en la nube.
Estas capacidades te permiten integrar la API de DigitalOcean en aplicaciones personalizadas para una gestión eficiente de los recursos de procesamiento. La automatización no solo aumenta la eficiencia, sino que también reduce errores manuales. Anímate a seguir explorando y aprovechando al máximo estas herramientas en tus proyectos futuros. ¡Nos vemos en la próxima lección para construir un servidor web usando Droplets!
A los que usen Docker pueden interactuar con la API de Digital Ocean a través del driver de DO que tiene docker-machine, el cual me permite administrar droplets via consola de manera bastante intuitiva.
Hola, tengo una pregunta.
En caso de que tenga varios proyectos ¿Cómo puedo especificar en que proyecto quiero que se me cree el Droplet?
Hola al momento de crear el droplet, cuando indicas las especificaciones que quieres que tenga tu droplet al final de la página esta la opción
Ahí te salen los proyectos que tienes, (En este caso sólo tengo 1) y seleccionas en el que quieres que se cree tu droplet
Como que automatizaciones nomas se pueden hacer? aparte de creación de Droplets
Hola, no he revisado toda la documentación del API de DigitalOcean, pero de un vistazo rápido me ha parecido ver que se puede hacer "todas" las configuraciones al igual que por el panel web
Segui los pasos del ejemplo, me creo el droplet pero por fuera de mi proyecto inicial; desde la interfaz gráfica pude reubicarlo…pero desde el aPI como puedo hacerlo? vi la documentación del API no veo parámetro de "project_id2.. o algo así
Actualmente la documentación de la API no provee un parámetro para crear el droplet dentro del proyecto
Segui los pasos del ejemplo, me creo el droplet pero por fuera de mi proyecto inicial; desde la interfaz gráfica pude reubicarlo..pero desde el API como se podría indicar de una vez el proyecto?
Según la documentación, no hay un parámetro de project_id
Entonces,¿No es posible crear un droplet dentro de un proyecto en específico?
Una pregunta, ¿de dónde copia la autorización? Authorization
no se si ya lo hicieron pero quien es el buen hombre que comparte los cURLs de los request de esta clase ?
Los requests los puedes obtener usando Postman en la parte derecha donde dice: save
En el examen vino una pregunta donde pide los parámetros para la creación de un droplet, seleccione, "nombre, region,tamaño imagen y ssh keys", como lo menciona en el minuto 7:26 pero me dio error en la respuesta, podrian aclararme, cual fue mi error? por favor
Hola Kevinmendozap, efectivamente esa es la respuesta, podrías mostrarme cómo te salió en el examen ?
{
"id": "unprocessable_entity",
"message": "You specified an invalid image for Droplet creation."
}
me sale este error alguien me ayuda!!!
Jesús podrías mostrarnos cómo hiciste la petición a la API? parece que la imagen de SO que estás enviando tiene algo incorrecto
Si desean ver los posibles nombres de imagenes con regiones disponibles pueden usar este endpoint:
Metodo: GET
Parametros: Authorization Valor= Bearer y(su token api)
"Yo no lo descargo porque ya lo tengo"
Muy buena esta clase, después de esto me haré el curso de Terraform para automatizar todo más fácil
El password del droplet , llega en un correo junto con otros datos. Porfavor no debes compartirlo al momento de generarlo.
Me encanto
esta clase me da ideas para hacer mi propia herrmaienta de despliegue de apps pequeñas