79 lines
2.1 KiB
YAML
79 lines
2.1 KiB
YAML
---
|
|
- name: Fix Podman installation on remaining nodes
|
|
hosts: semaphore,master,ash3c,hcs
|
|
become: yes
|
|
serial: 1 # 逐个处理,避免同时影响多个节点
|
|
|
|
tasks:
|
|
- name: Current node status
|
|
debug:
|
|
msg: "🔧 修复节点: {{ inventory_hostname }}"
|
|
|
|
- name: Check if Podman is already installed
|
|
shell: podman --version 2>/dev/null || echo "NOT_INSTALLED"
|
|
register: podman_check
|
|
|
|
- name: Install Podman if not present (semaphore special handling)
|
|
apt:
|
|
name:
|
|
- podman
|
|
- buildah
|
|
- skopeo
|
|
state: present
|
|
update_cache: yes
|
|
force_apt_get: yes
|
|
when: inventory_hostname == 'semaphore' and 'NOT_INSTALLED' in podman_check.stdout
|
|
ignore_errors: yes
|
|
|
|
- name: Install Podman on other nodes
|
|
apt:
|
|
name:
|
|
- podman
|
|
- buildah
|
|
- skopeo
|
|
state: present
|
|
when: inventory_hostname != 'semaphore'
|
|
ignore_errors: yes
|
|
|
|
- name: Install Python dependencies for podman-compose
|
|
apt:
|
|
name:
|
|
- python3-pip
|
|
- python3-setuptools
|
|
- python3-yaml
|
|
- python3-dotenv
|
|
state: present
|
|
ignore_errors: yes
|
|
|
|
- name: Install podman-compose via pip
|
|
pip:
|
|
name:
|
|
- podman-compose
|
|
state: present
|
|
executable: pip3
|
|
ignore_errors: yes
|
|
|
|
- name: Alternative podman-compose installation via apt
|
|
apt:
|
|
name: podman-compose
|
|
state: present
|
|
ignore_errors: yes
|
|
|
|
- name: Verify installations
|
|
shell: |
|
|
echo "Podman: $(podman --version 2>/dev/null || echo 'FAILED')"
|
|
echo "Podman Compose: $(podman-compose --version 2>/dev/null || echo 'FAILED')"
|
|
register: verify_result
|
|
|
|
- name: Display verification results
|
|
debug:
|
|
msg: |
|
|
✅ 节点 {{ inventory_hostname }} 验证结果:
|
|
{{ verify_result.stdout }}
|
|
|
|
- name: Enable Podman socket
|
|
systemd:
|
|
name: podman.socket
|
|
enabled: yes
|
|
state: started
|
|
ignore_errors: yes |