coglinev3.ansible_bender
Ansible-Rolle: ansible_bender
Haben Sie genug davon, Container mit Dockerfiles zu erstellen?
Diese Rolle installiert ansible-bender, ein Werkzeug, das Container mit Ansible-Playbooks erstellt und in Container-Images verwandelt.
Mit ansible-bender müssen Sie Container nicht mehr anders erstellen und konfigurieren als traditionelle virtuelle Maschinen oder physische Systeme. Sie können jetzt die Leistungsfähigkeit von Ansible nutzen und Ihre bestehenden Ansible-Inhalte für Ihr containerbasiertes System wiederverwenden. Verwenden Sie Vorlagen, kopieren Sie Dateien, fügen Sie verschlüsselte Daten ein, behandeln Sie Fehler, fügen Sie Bedingungen hinzu und mehr. Alles, was Ansible zur Orchestrierung Ihrer Infrastruktur bietet, kann jetzt auf den Prozess des Erstellens von Images angewendet werden.
Die unterstützten Linux-Distributionen für diese Rolle sind:
- 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).
HINWEIS
Der Rootless-Modus für Podman erfordert, dass das Programm newuidmap installiert ist. Enterprise Linux 7 (RHEL 7 / CentOS 7) unterstützt dies erst seit Version 7.7.
Anforderungen
Ansible-bender benötigt einige Binaries, die auf Ihrem Host-System vorhanden sein müssen:
- Buildah
- Podman
- Python 3.6 oder später (python 3.5 oder früher werden nicht unterstützt und funktionieren bekanntlich nicht)
- Ansible (Ansible muss gegen Python 3 gebaut werden)
Alle Anforderungen werden mit dieser Rolle installiert.
Rollenvariablen
Verfügbare Variablen sind unten aufgeführt, zusammen mit den Standardwerten (siehe defaults/main.yml):
# Abhängigkeiten für ansible-bender (wie buildah, podman und python3.6 oder höher)
ab_dependencies:
- buildah
- podman
- python3
- python3-pip
- python3-setuptools
- python3-software-properties
- python3-virtualenv
- procps
- runc
- slirp4netns
# Paketstatus für Abhängigkeiten: ( present ) | latest
ab_dependencies_package_state: present
# Pakete, die mit dem Python3-Installer pip3 installiert werden.
ab_python_packges:
- wheel
- ansible
- ansible-bender
# Paketstatus für Python-Pakete: ( present ) | latest
ab_python_packge_state: present
# durch Kommas getrennte Liste von Container-Registrierungen
ab_container_search_registry: "'docker.io', 'registry.fedoraproject.org', 'quay.io', 'registry.access.redhat.com', 'registry.centos.org'"
# eine Liste von Benutzern, die den Rootless-Modus verwenden können:
ab_users: []
Abhängigkeiten
Keine.
Beispiel-Playbook
---
# Datei: roles/ansible-bender/tests/test.yml
- hosts: all
vars:
ab_users:
- dein_benutzername
roles:
- { role: coglinev3.ansible_bender }
Beispiel, wie man ansible-bender verwendet
Erstellen eines Images
Wenn Sie ansible-bender testen möchten, benötigen Sie zuerst ein Ansible-Playbook. Sie können eine Vorlagenvorlage mit folgendem Befehl erstellen:
ansible-bender init
Öffnen Sie nun die Datei playbook.yml
, ändern Sie die Variable des Wörterbuchs ansible_bender und fügen Sie einige Aufgaben hinzu. Das folgende einfache Beispiel-Playbook erstellt einen nginx-Container basierend auf Alpine Linux.
---
- name: Containerisierte Version von nginx
hosts: all
vars:
# Konfiguration, die speziell für ansible-bender ist
ansible_bender:
# ansible-bender benötigt ein Image mit vorinstalliertem Python 3
base_image: python:3-alpine
target_image:
# Standardbefehl beim Starten des Containers
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:
# Dieses Git-Repository im Arbeitscontainer unter /src mounten
- "{{ playbook_dir }}:/src:Z"
tasks:
- name: Abhängigkeiten installieren, die benötigt werden, um das Projekt bender-nginx auszuführen
apk:
name: nginx
state: present
- name: Sicherstellen, dass das Verzeichnis /run/nginx existiert
file:
path: /run/nginx
state: directory
mode: '0750'
owner: nginx
group: nginx
Und jetzt können Sie das Beispiel-Image mit folgendem Befehl erstellen:
ansible-bender build ./playbook.yml
Container ausführen
Nachdem das Image erfolgreich erstellt wurde, können Sie einen neuen Container mit Podman starten.
podman run -d -p 8080:80 bender-nginx
Schließlich können Sie curl verwenden, um zu testen, ob der nginx-Container ordnungsgemäß funktioniert.
curl http://127.0.0.1:8080/
Wenn Sie die Antwort "404 Not Found" erhalten, funktioniert nginx einwandfrei. Nginx informiert Sie, dass die angeforderte Seite nicht gefunden wurde.
Version
Version: 1.5.0
Lizenz
BSD
Autorinformationen
Copyright © 2024 Cogline.v3.
Installs ansible-bender, a tool which bends containers using Ansible playbooks and turns them into container images.
ansible-galaxy install coglinev3.ansible_bender