Como hacer login en SDDC con Ansible!

Como hacer login en SDDC con Ansible!

A Shiny New Way to Manage VMware Guests

Hace un tiempo estoy trabajando con VCF (VMware Cloud Foundation), es una plataforma que nos permite tener todo un data-center basado en software, de ahí unos de sus componentes se llama SDDC.

Me ha tocado automatizar muchas tareas que se realizan en las primeras horas de instalar SDDC, por ejemplo, crear un Entorno de Cargas (Wordkload Domain), creo que seria mejor no traducir ese termino nuevamente, de ahora en adelanta WD.

Para poder reazliar cualquier tarea via API en SDDC, necesitamos un token generado en SDDC el cual depende de vCenter ya que son las credenciales de vCenter las usadas para trabajar en SDDC. Inicialmente veia que todos usaban Postman (nada en contra de esta herramienta), si buscamos usar un API para realizar tareas de automatizacion, como por ejemplo enviar un JSON con valores que vamos a usar para crear un WD, con Ansible es mas facil ya que tenemos el modulo URI, es muuucho mas facil que abrir Postman y hacer click en varios lugares para luego poder postear un JSON al API.

Como se haria con Ansible URI.

---
# tasks file for sddc-token
- name: "Requesting token from SDDC"
ansible.builtin.uri:
 url: https://{{ sddc_hostname }}.{{ base_domain }}/v1/tokens
 method: POST
 follow_redirects: all
 return_content: yes
 validate_certs: false
 headers:
   Content-Type: application/json
   Accept: application/json
 body: '{
  "username": "{{ vcenter_username }}",
  "password": "{{ vcenter_password }}"
   }'
 body_format: raw
register: creation

- name: "Creating variable with token"
  set_fact:
   tokenid: "{{ input.accessToken }}"
  vars:
   input: "{{ creation.content | from_json }}"


Ya Podemos usar la variable accessToken en otros playbooks de Ansible los cuales tambien usarian el modulo de URI.

Autor: Ariel Antigua

Automation guy with a love for Containers!