podman: переход на Podman, Minikube, локальные образы и док для новичков

- Molecule: драйвер delegated, коллекция containers.podman, create/destroy/verify на Podman
- Makefile: все вызовы docker заменены на podman, сокет /run/podman/podman.sock
- Сборка образов: podman build (без buildx), buildall/buildall-image — только локально без push
- Ansible-controller: Podman в образе, docker-compose на podman compose, сокет Podman
- K8s: Kind заменён на Minikube (драйвер podman), скрипты и Makefile обновлены
- Пресеты: проверка локальных образов, без podman pull (registry запрещён)
- Документация: docs/podman.md, docs/quickstart-for-dummies.md (роли, плейбук, линт, тесты, пресеты, инвентори)
- README: ссылка на quickstart-for-dummies

Made-with: Cursor
This commit is contained in:
Sergey Antropoff
2026-03-11 19:59:47 +03:00
parent 23e1a6037b
commit 05881e8d74
16 changed files with 859 additions and 790 deletions

View File

@@ -35,8 +35,12 @@ RUN apt-get install -y \
RUN wget -qO /usr/local/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_arm64 \
&& chmod +x /usr/local/bin/yq
# Устанавливаем Docker CLI
RUN apt-get install -y docker.io docker-compose
# Устанавливаем Podman (вместо Docker). Для Ubuntu 22.04 — из universe
RUN apt-get install -y software-properties-common \
&& add-apt-repository -y universe \
&& apt-get update \
&& apt-get install -y podman \
&& apt-get clean
# Устанавливаем kubectl
RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" \
@@ -46,10 +50,10 @@ RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/s
# Устанавливаем Helm
RUN curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
# Устанавливаем Kind
RUN curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.23.0/kind-linux-amd64 \
&& chmod +x ./kind \
&& mv ./kind /usr/local/bin/
# Устанавливаем Minikube (вместо Kind, для использования с драйвером podman)
RUN curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
&& chmod +x minikube-linux-amd64 \
&& mv minikube-linux-amd64 /usr/local/bin/minikube
## Устанавливаем Istio CLI
#RUN curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.22.1 sh - \
@@ -79,18 +83,17 @@ RUN chown -R ansible:ansible /ansible
# Переключаемся на пользователя ansible
USER ansible
# Устанавливаем дополнительные роли
RUN ansible-galaxy install geerlingguy.docker \
&& ansible-galaxy install geerlingguy.kubernetes
# Устанавливаем дополнительные роли (коллекция containers.podman в requirements.yml)
RUN ansible-galaxy install geerlingguy.kubernetes
# Устанавливаем molecule как root
RUN pip3 install ansible ansible-core ansible-lint molecule molecule-docker passlib
# Устанавливаем molecule как root (delegated driver для Podman)
RUN pip3 install ansible ansible-core ansible-lint molecule passlib
# Проверяем, что molecule установлен
RUN which molecule || echo "molecule not found"
# Настройки для работы с Docker
ENV DOCKER_HOST=unix:///var/run/docker.sock
# Настройки для работы с Podman (сокет монтируется с хоста)
ENV CONTAINER_HOST=unix:///run/podman/podman.sock
ENV ANSIBLE_FORCE_COLOR=1
ENV ANSIBLE_STDOUT_CALLBACK=yaml
ENV ANSIBLE_CALLBACKS_ENABLED=profile_tasks

View File

@@ -1,3 +1,6 @@
# Ansible Controller для Podman (сокет Podman)
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
version: "3.9"
services:
@@ -7,10 +10,10 @@ services:
privileged: true
command: sleep infinity
environment:
DOCKER_HOST: unix:///var/run/docker.sock
CONTAINER_HOST: unix:///run/podman/podman.sock
ANSIBLE_VAULT_PASSWORD_FILE: /ansible/vault/.vault
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /run/podman/podman.sock:/run/podman/podman.sock
- .:/ansible
working_dir: /ansible
networks:

View File

@@ -1,8 +1,10 @@
---
# Ansible Collections for Molecule Universal
# Ansible Collections for Molecule Universal (Podman)
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
collections:
- name: community.docker
version: ">=3.0.0"
- name: containers.podman
version: ">=1.10.0"
- name: community.general
version: ">=7.0.0"
- name: ansible.posix