coglinev3.ansible_container

Rôle Ansible : ansible_container

Build GitHub tag (latest by date) License

Ce rôle est utilisé avec Ansible-Bender pour créer des conteneurs avec :

  • Ansible,
  • OpenSSH et
  • Systemd ou Init V.

Ces conteneurs peuvent être utilisés comme des machines virtuelles, par exemple pour tester des rôles Ansible avec des actions GitHub.

Les distributions Linux prises en charge pour ce rôle sont :

  • 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) et
  • Ubuntu 22.04 LTS (Jammy Jellyfish).

Exigences

Si vous souhaitez utiliser ce rôle pour créer de nouvelles images de conteneurs, vous avez besoin de ansible-bender. Vous pouvez installer ansible-bender avec mon rôle galaxy coglinev3.ansible_bender.

Variables du Rôle

Les variables disponibles sont listées ci-dessous, avec des valeurs par défaut (voir defaults/main.yml) :

# utiliser sudo ou non
ansible_container_become: true

# état des paquets installés : absent | présent | dernier
ansible_container_package_state: latest

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

# forcer un nouveau fichier de configuration Ansible /etc/ansible/ansible.cfg
ansible_container_force_config: "no"

# forcer un nouveau fichier d'inventaire Ansible /etc/ansible/hosts
ansible_container_force_inventory: "no"

# définir un utilisateur et un groupe Ansible
ansible_container_user: ansible
ansible_container_group: ansible

# certaines variables pour le fichier de configuration Ansible ansible.cfg
#
# force le mode couleur même en cas d'exécution sans TTY ou si le paramètre "nocolor" est vrai
ansible_config_force_color: true

# contrôler le comportement de découverte de l'interpréteur :
ansible_config_interpreter_python: auto

Dépendances

Aucune.

Exemples de Playbooks

Playbook pour tester ce rôle indépendamment sur une machine virtuelle

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

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

Playbook pour ansible-bender pour créer une image CentOS 7 avec Ansible et Systemd

---
- name: Version conteneurisée de CentOS 7 avec ansible
  hosts: all
  vars:
    # configuration spécifique à ansible-bender
    ansible_bender:
      base_image: centos:7
      target_image:
        # commande à exécuter par défaut lors de l'invocation du conteneur
        cmd: /usr/sbin/init
        name: centos:7-ansible
        labels:
          build-by: "Cogline.v3"
        volumes:
          - /sys/fs/cgroup
  tasks:
  - name: inclure le rôle ansible_container
    include_role:
      name: ansible_container
    vars:
      ansible_container_become: false

La nouvelle image de conteneur est construite avec :

ansible-bender build ./playbook.yml

Version

Version : 1.17.0

Licence

BSD

Informations sur l'Auteur

Droit d'auteur © 2024 Cogline.v3.

À propos du projet

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

Installer
ansible-galaxy install coglinev3.ansible_container
Licence
bsd-3-clause
Téléchargements
6.5k
Propriétaire