MicroK8s

Configurar Microk8s para usar repositorios de AWS ECR

Continuando con un post anterior de cómo probar Ansible AWX con Microk8s (en AWS EC2). Bueno, pues resulta que me creé una imagen personalizada para el contener awx_task para instalar una serie de librerías y comandos que necesitaba para lanzar unos playbooks; el fichero Dockerfile es similar a éste:

FROM ansible/awx_task:9.1.1

# Switch user to become root
USER 0

# Additional software
RUN cd && \
    set -x && \
    dnf install -y nmap-ncat htop && \
    dnf clean all

# Ansible venv additional dependencies
RUN cd && \
    source /var/lib/awx/venv/ansible/bin/activate && \
    umask 0022 && \
    pip install --upgrade pypsrp pysocks && \
    deactivate

# Restore the original user
# https://github.com/ansible/awx/blob/devel/installer/roles/image_build/templates/Dockerfile.task.j2
USER 1000

Leer más...

Probando Ansible AWX con MicroK8s

AVISO: Post largo (intro a Ansible, AWX, MicroK8s)

Actualización 2020-01-14: Actualizado a Ansible AWX 9.1.1

Ansible (/ánsibol/) es el gestor de configuración de moda, y por méritos propios. Aunque no es perfecto (en determinadas ocasiones se puede preferir un modelo cliente/servidor en lugar de una conexión SSH ad-hoc), ofrece una buena combinación entre funcionalidad y simplicidad. Siempre y cuando tengamos conectividad SSH con la máquina a gestionar (o no, a través de bastiones), en el caso de equipos Linux, o conectividad WinRM o o PSRP para equipos Windows, podremos realizar infinidad de acciones o tareas sobre las máquinas a gestionar.

Uno de los problemas de Ansible (hablando correctamente, Ansible Engine) es que no tiene una forma de ejecutar de forma automatizada playbooks, para mantener la configuración sincronizada de forma periódica, ejecutar tareas planificadas o incluso auto-provisionar equipos. Aquí es donde entra Ansible Tower, que es la versión con soporte de Ansible AWX, al estilo de lo que Red Hat hace con Wildfly y JBoss. Ansible Tower/AWX en básicamente una API REST con una interfaz web que se comunica con ella. Utilizando esta API, se pueden definir inventarios, credenciales, equipos, plantillas de trabajo, flujos de trabajo, etc. así como asignar permisos por usarios/grupos mediante su sistema RBAC.

Leer más...