coglinev3.ansible_bender

Rol de Ansible: ansible_bender

Construcción Etiqueta de GitHub (última por fecha) Licencia

¿Estás cansado de crear contenedores con Dockerfiles?

Este rol instala ansible-bender, una herramienta que utiliza playbooks de Ansible para crear contenedores y convertirlos en imágenes de contenedor.

Con ansible-bender, ya no tienes que construir y configurar contenedores de manera diferente a las máquinas virtuales tradicionales o sistemas físicos. Ahora puedes aplicar el poder de Ansible y reutilizar tu contenido existente de Ansible para tu ecosistema de contenedores. Usa plantillas, copia archivos, agrega datos encriptados, maneja errores, añade condicionales y más. Todo lo que Ansible ofrece para orquestar tu infraestructura ahora se puede aplicar al proceso de creación de imágenes.

Las distribuciones de Linux admitidas para este rol son:

  • Alpine Linux 3.14,
  • Alpine Linux 3.15,
  • Alpine Linux 3.16,
  • Alpine Linux 3.17,
  • Alpine Linux 3.18,
  • Alpine Linux 3.19,
  • Enterprise Linux 8,
  • Enterprise Linux 9,
  • Debian 11 (Bullseye),
  • Debian 12 (Bookworm),
  • Linux Mint 20 (Ulyana),
  • Ubuntu 20.04 LTS (Focal Fossa),
  • Ubuntu 22.04 LTS (Jammy Jellyfish).

NOTA

El modo sin root para Podman requiere que el programa newuidmap esté instalado. Enterprise Linux 7 (RHEL 7 / CentOS 7) solo lo admite desde la versión 7.7.


Requisitos

Ansible-bender necesita algunos binarios en tu sistema host:

  • Buildah
  • Podman
  • Python 3.6 o superior (no se admiten ni funcionan versiones anteriores a Python 3.5)
  • Ansible (Ansible debe estar construido contra Python 3)

Todos los requisitos se instalan con este rol.

Variables del Rol

Las variables disponibles se enumeran a continuación, junto con los valores predeterminados (ver defaults/main.yml):


# dependencias para ansible-bender (como buildah, podman y python3.6 o más)
ab_dependencies:
  - buildah
  - podman
  - python3
  - python3-pip
  - python3-setuptools
  - python3-software-properties
  - python3-virtualenv
  - procps
  - runc
  - slirp4netns

# estado del paquete para dependencias: (presente) | última
ab_dependencies_package_state: presente

# Paquetes que se instalan con el instalador de Python3 pip3.
ab_python_packges:
  - wheel
  - ansible
  - ansible-bender

# estado del paquete para paquetes de python: (presente) | última
ab_python_packge_state: presente

# lista separada por comas de registros de contenedores
ab_container_search_registry: "'docker.io', 'registry.fedoraproject.org', 'quay.io', 'registry.access.redhat.com', 'registry.centos.org'"

# una lista de usuarios que pueden usar el modo sin root:
ab_users: []

Dependencias

Ninguna.

Ejemplo de Playbook

---
# archivo: roles/ansible-bender/tests/test.yml

- hosts: all
  vars:
    ab_users:
      - tu_nombre_de_usuario
  roles:
    - { role: coglinev3.ansible_bender }

Ejemplo de uso de ansible-bender

Crear una imagen

Si deseas probar ansible-bender, primero necesitas un playbook de Ansible. Puedes crear una plantilla de playbook con:

ansible-bender init

Ahora abre el archivo playbook.yml, cambia la variable del diccionario ansible_bender y añade algunas tareas. El siguiente ejemplo simple crea un contenedor de nginx basado en Alpine Linux.

---
- name: Versión contenedorizada de nginx
  hosts: all
  vars:
    # configuración específica para ansible-bender
    ansible_bender:
      # ansible-bender necesita una imagen con Python 3 preinstalado para funcionar
      base_image: python:3-alpine
      target_image:
        # comando que se ejecuta por defecto al invocar el contenedor
        cmd: "nginx -g \"daemon off;\""
        name: bender-nginx
        ports: ['80', '443']
        working_dir: /var/www/localhost/htdocs
        labels:
          build-by: "{{ ansible_user }}"
      working_container:
        volumes:
        # monta este repositorio git en el contenedor de trabajo en /src
        - "{{ playbook_dir }}:/src:Z"
  tasks:
  - name: instalar dependencias necesarias para ejecutar el proyecto bender-nginx
    apk:
      name: nginx
      state: present
  - name: Asegurarse de que el directorio /run/nginx exista
    file:
      path: /run/nginx
      state: directory
      mode: '0750'
      owner: nginx
      group: nginx

Y ahora puedes construir la imagen de ejemplo con:

ansible-bender build ./playbook.yml

Ejecutar el contenedor

Después de que la imagen se crea correctamente, puedes iniciar un nuevo contenedor con podman.

podman run -d -p 8080:80 bender-nginx

Finalmente, puedes usar curl para probar si el contenedor de nginx está funcionando correctamente.

curl http://127.0.0.1:8080/ 

Si obtienes una respuesta con "404 Not Found", nginx funcionará bien. Nginx te informa que la página solicitada no fue encontrada.

Versión

Lanzamiento: 1.5.0

Licencia

BSD

Información del Autor

Copyright © 2024 Cogline.v3.

Acerca del proyecto

Installs ansible-bender, a tool which bends containers using Ansible playbooks and turns them into container images.

Instalar
ansible-galaxy install coglinev3.ansible_bender
Licencia
bsd-3-clause
Descargas
6k
Propietario