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:
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user