coglinev3.ansible_container

Ansible Rolle: ansible_container

Build GitHub Tag (neuester) Lizenz

Diese Rolle wird mit Ansible-Bender verwendet, um Container zu erstellen mit:

  • Ansible,
  • OpenSSH und
  • Systemd oder Init V.

Diese Container können wie virtuelle Maschinen verwendet werden, zum Beispiel um Ansible-Rollen mit GitHub-Aktionen zu testen.

Die unterstützten Linux-Distributionen für diese Rolle sind:

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

Anforderungen

Wenn Sie diese Rolle verwenden möchten, um neue Container-Images zu erstellen, benötigen Sie ansible-bender. Sie können ansible-bender mit meiner Galaxy-Rolle coglinev3.ansible_bender installieren.

Rollenvariablen

Verfügbare Variablen sind unten aufgeführt, zusammen mit Standardwerten (siehe defaults/main.yml):

# ob sudo verwendet werden soll oder nicht
ansible_container_become: true

# Zustand für installierte Pakete: absent | present | latest
ansible_container_package_state: latest

# Anforderungen für Debian
ansible_container_requirements:
  - libssl-dev
  - libffi-dev
  - openssh-server
  - python3-apt
  - python3-pip
  - python3-setuptools
  - python3-software-properties
  - python3-wheel
  - systemd
  - sudo

# erzwingt eine neue Ansible-Konfigurationsdatei /etc/ansible/ansible.cfg
ansible_container_force_config: "nein"

# erzwingt eine neue Ansible-Inventardatei /etc/ansible/hosts
ansible_container_force_inventory: "nein"

# definiert einen Ansible-Benutzer und eine Gruppe
ansible_container_user: ansible
ansible_container_group: ansible

# einige Variablen für die Ansible-Konfigurationsdatei ansible.cfg
#
# erzwingt den Farbmodus, selbst wenn ohne TTY oder die Einstellung "nocolor" wahr ist
ansible_config_force_color: true

# steuert das Verhalten der Interpretererkennung:
ansible_config_interpreter_python: auto

Abhängigkeiten

Keine.

Beispiel-Playbooks

Playbook, um diese Rolle unabhängig auf einer virtuellen Maschine zu testen

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

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

Playbook für ansible-bender, um ein CentOS 7-Image mit Ansible und Systemd zu erstellen

---
- name: Containerisierte Version von CentOS 7 mit Ansible
  hosts: all
  vars:
    # spezielle Konfiguration für ansible-bender
    ansible_bender:
      base_image: centos:7
      target_image:
        # Befehl, der standardmäßig beim Aufrufen des Containers ausgeführt wird
        cmd: /usr/sbin/init
        name: centos:7-ansible
        labels:
          build-by: "Cogline.v3"
        volumes:
          - /sys/fs/cgroup
  tasks:
  - name: Rolle ansible_container einfügen
    include_role:
      name: ansible_container
    vars:
      ansible_container_become: false

Das neue Container-Image wird mit folgendem Befehl erstellt:

ansible-bender build ./playbook.yml

Version

Release: 1.17.0

Lizenz

BSD

Autor-Informationen

Copyright © 2024 Cogline.v3.

Über das Projekt

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

Installieren
ansible-galaxy install coglinev3.ansible_container
GitHub Repository
Lizenz
bsd-3-clause
Downloads
6.5k
Besitzer