D11.2 Εγκατάσταση Podman με Ansible 🔧

Cross-distro εγκατάσταση

---
# roles/podman_install/tasks/main.yml

- name: "🦭 Install Podman (RedHat/Fedora)"
  ansible.builtin.package:
    name:
      - podman
      - podman-compose
      - podman-docker    # ← docker CLI shim
      - buildah          # ← image builder
      - skopeo           # ← image inspector
    state: present
  when: ansible_facts['os_family'] in ["RedHat"]

- name: "🦭 Install Podman (openSUSE)"
  ansible.builtin.package:
    name:
      - podman
      - podman-compose
      - buildah
    state: present
  when: ansible_facts['os_family'] == "Suse"

- name: "🦭 Install Podman (Ubuntu)"
  ansible.builtin.package:
    name:
      - podman
      - podman-compose
      - buildah
    state: present
  when: ansible_facts['os_family'] == "Debian"

# ── Rootless prerequisites ─────────────────────
- name: Install slirp4netns (rootless networking)
  ansible.builtin.package:
    name:
      - slirp4netns
      - fuse-overlayfs    # ← rootless overlay storage
    state: present

- name: Enable user lingering (auto-start on boot)
  ansible.builtin.command:
    cmd: "loginctl enable-linger {{ podman_user | default('ansible') }}"
  changed_when: true

# ── /etc/subuid & /etc/subgid ─────────────────
- name: subuid για rootless
  ansible.builtin.lineinfile:
    path:   /etc/subuid
    line:   "{{ podman_user | default('ansible') }}:100000:65536"
    regexp: "^{{ podman_user | default('ansible') }}:"
    create: true
    mode:   '0644'

- name: subgid για rootless
  ansible.builtin.lineinfile:
    path:   /etc/subgid
    line:   "{{ podman_user | default('ansible') }}:100000:65536"
    regexp: "^{{ podman_user | default('ansible') }}:"
    create: true
    mode:   '0644'

# ── Verification ──────────────────────────────
- name: Podman version
  ansible.builtin.command: podman version
  changed_when: false
  register: podman_ver
  become: false

- name: " Podman installed"
  ansible.builtin.debug:
    msg: "{{ podman_ver.stdout_lines[0] }}"

containers.podman collection

# Εγκατάσταση collection
ansible-galaxy collection install containers.podman

# ή requirements.yml:
# collections:
#   - name: containers.podman
#     version: ">=1.10.0"

Σύνοψη D11.2

Podman Installation
│
├── Packages: podman, podman-compose, buildah, skopeo
├── Rootless deps: slirp4netns, fuse-overlayfs
├── subuid/subgid: user namespace mapping
├── loginctl enable-linger: auto-start on boot
└── Collection: containers.podman