coglinev3.ansible_bender

Rola Ansible: ansible_bender

Budowa Ostatnia wersja GitHub Licencja

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.

O projekcie

Installs ansible-bender, a tool which bends containers using Ansible playbooks and turns them into container images.

Zainstaluj
ansible-galaxy install coglinev3.ansible_bender
Licencja
bsd-3-clause
Pobrania
6k
Właściciel