coglinev3.ansible_container

Rol de Ansible: ansible_container

Construir Etiqueta de GitHub (última por fecha) Licencia

Este rol se utiliza con Ansible-Bender para construir contenedores con:

  • Ansible,
  • OpenSSH y
  • Systemd o Init V.

Estos contenedores se pueden usar como máquinas virtuales, por ejemplo, para probar roles de Ansible con acciones de GitHub.

Las distribuciones de Linux compatibles con este rol son:

  • Alpine Linux 3.12,
  • Alpine Linux 3.13,
  • Alpine Linux 3.14,
  • Alpine Linux 3.15,
  • Alpine Linux 3.16,
  • Alpine Linux 3.17,
  • Alpine Linux 3.18,
  • Alpine Linux 3.19,
  • Amazon Linux 2023,
  • Debian 10 (Buster),
  • Debian 11 (Bullseye),
  • Debian 12 (Bookworm),
  • Enterprise Linux 7,
  • Enterprise Linux 8,
  • Enterprise Linux 9,
  • Fedora 34,
  • Fedora 35,
  • Fedora 36,
  • Fedora 37,
  • Fedora 38,
  • Fedora 39,
  • Ubuntu 18.04 LTS (Bionic Beaver),
  • Ubuntu 20.04 LTS (Focal Fossa) y
  • Ubuntu 22.04 LTS (Jammy Jellyfish).

Requisitos

Si quieres usar este rol para crear nuevas imágenes de contenedor, necesitas ansible-bender. Puedes instalar ansible-bender con mi rol de galaxy coglinev3.ansible_bender.

Variables del Rol

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

# usar sudo o no
ansible_container_become: true

# estado para los paquetes instalados: absent | present | latest
ansible_container_package_state: latest

# requisitos para Debian
ansible_container_requirements:
  - libssl-dev
  - libffi-dev
  - openssh-server
  - python3-apt
  - python3-pip
  - python3-setuptools
  - python3-software-properties
  - python3-wheel
  - systemd
  - sudo

# forzar nuevo archivo de configuración de Ansible /etc/ansible/ansible.cfg
ansible_container_force_config: "no"

# forzar nuevo archivo de inventario de Ansible /etc/ansible/hosts
ansible_container_force_inventory: "no"

# definir un usuario y grupo de Ansible
ansible_container_user: ansible
ansible_container_group: ansible

# algunas variables para el archivo de configuración de Ansible ansible.cfg
#
# forzar modo color incluso cuando se ejecuta sin TTY o la configuración "nocolor" es True
ansible_config_force_color: true

# controlar el comportamiento de descubrimiento del intérprete:
ansible_config_interpreter_python: auto

Dependencias

Ninguna.

Ejemplos de Playbooks

Playbook para probar este rol independientemente en una máquina virtual

---
# archivo: roles/ansible_container/tests/test.yml

- hosts: localhost
  remote_user: root
  roles:
    - { role: coglinev3.ansible_container }
  vars:
    ansible_container_become: true

Playbook para ansible-bender para crear una imagen de CentOS 7 con Ansible y Systemd

---
- name: Versión en contenedor de CentOS 7 con ansible
  hosts: all
  vars:
    # configuración específica para ansible-bender
    ansible_bender:
      base_image: centos:7
      target_image:
        # comando que se ejecuta por defecto al invocar el contenedor
        cmd: /usr/sbin/init
        name: centos:7-ansible
        labels:
          build-by: "Cogline.v3"
        volumes:
          - /sys/fs/cgroup
  tasks:
  - name: incluir rol ansible_container
    include_role:
      name: ansible_container
    vars:
      ansible_container_become: false

La nueva imagen de contenedor se construye con:

ansible-bender build ./playbook.yml

Versión

Versión: 1.17.0

Licencia

BSD

Información del Autor

Copyright © 2024 Cogline.v3.

Acerca del proyecto

This role is used with Ansible-Bender to create Ansible Containers for CI/CD tests with Travis-CI.

Instalar
ansible-galaxy install coglinev3.ansible_container
Licencia
bsd-3-clause
Descargas
6.5k
Propietario