coglinev3.ansible_bender
Rola Ansible: ansible_bender
Czy masz dość budowania kontenerów za pomocą Dockerfile'ów?
Ta rola instaluje ansible-bender, narzędzie, które wykorzystuje playbooki Ansible do tworzenia obrazów kontenerów.
Z ansible-bender nie musisz już budować i konfigurować kontenerów w inny sposób niż tradycyjnych maszyn wirtualnych czy systemów bare-metal. Możesz wykorzystać potęgę Ansible i ponownie użyć istniejącej zawartości Ansible w swoim ekosystemie kontenerowym. Używaj szablonów, kopiuj pliki, wprowadzaj zaszyfrowane dane, obsługuj błędy, dodawaj warunki i więcej. Wszystko, co Ansible oferuje do orkiestracji infrastruktury, można teraz zastosować w procesie budowy obrazów.
Obsługiwane dystrybucje Linuksa dla tej roli to:
- 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).
Uwaga
Tryb bezrootowy dla Podmana wymaga zainstalowania programu newuidmap. Enterprise Linux 7 (RHEL 7 / CentOS 7) obsługuje to dopiero od wersji 7.7.
Wymagania
Ansible-bender wymaga kilku programów binarnych na Twoim systemie:
- Buildah
- Podman
- Python 3.6 lub nowszy (python 3.5 lub wcześniejsze nie są wspierane i nie działają)
- Ansible (Ansible musi być zbudowane pod Pythonem 3)
Wszystkie wymagania są instalowane za pomocą tej roli.
Zmienne roli
Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi (patrz defaults/main.yml):
# zależności dla ansible-bender (jak buildah, podman i python3.6 lub wyższy)
ab_dependencies:
- buildah
- podman
- python3
- python3-pip
- python3-setuptools
- python3-software-properties
- python3-virtualenv
- procps
- runc
- slirp4netns
# stan pakietu dla zależności: ( obecny ) | najnowszy
ab_dependencies_package_state: obecny
# Pakiety, które są instalowane za pomocą instalatora Python3 pip3.
ab_python_packges:
- wheel
- ansible
- ansible-bender
# stan pakietu dla pakietów python: ( obecny ) | najnowszy
ab_python_packge_state: obecny
# lista rejestrów kontenerów oddzielonych przecinkami
ab_container_search_registry: "'docker.io', 'registry.fedoraproject.org', 'quay.io', 'registry.access.redhat.com', 'registry.centos.org'"
# lista użytkowników, którzy mogą korzystać z trybu bezrootowego:
ab_users: []
Zależności
Brak.
Przykładowy Playbook
---
# plik: roles/ansible-bender/tests/test.yml
- hosts: all
vars:
ab_users:
- twoja_nazwa_użytkownika
roles:
- { role: coglinev3.ansible_bender }
Przykład użycia ansible-bender
Tworzenie obrazu
Jeśli chcesz przetestować ansible-bender, najpierw potrzebujesz playbooka Ansible. Możesz stworzyć szablon playbooka za pomocą:
ansible-bender init
Teraz otwórz plik playbook.yml
, zmień zmienną słownikową ansible_bender i dodaj kilka zadań. Następujący prosty przykład playbooka tworzy kontener nginx oparty na Alpine Linux.
---
- name: Kontenerowa wersja nginx
hosts: all
vars:
# konfiguracja specyficzna dla ansible-bender
ansible_bender:
# ansible-bender potrzebuje obrazu z preinstalowanym Pythonem 3
base_image: python:3-alpine
target_image:
# polecenie uruchamiane domyślnie przy wywoływaniu kontenera
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:
# zamontuj to repozytorium git w kontenerze roboczym jako /src
- "{{ playbook_dir }}:/src:Z"
tasks:
- name: zainstaluj zależności potrzebne do uruchomienia projektu bender-nginx
apk:
name: nginx
state: present
- name: Upewnij się, że katalog /run/nginx istnieje
file:
path: /run/nginx
state: directory
mode: '0750'
owner: nginx
group: nginx
Teraz możesz zbudować przykładowy obraz za pomocą:
ansible-bender build ./playbook.yml
Uruchomienie kontenera
Po pomyślnym utworzeniu obrazu możesz uruchomić nowy kontener za pomocą podmana.
podman run -d -p 8080:80 bender-nginx
Na koniec możesz użyć curl, aby sprawdzić, czy kontener nginx działa poprawnie.
curl http://127.0.0.1:8080/
Jeżeli otrzymasz odpowiedź "404 Not Found", nginx działa poprawnie. Nginx informuje, że żądana strona nie została znaleziona.
Wersja
Wydanie: 1.5.0
Licencja
BSD
Informacje o autorze
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