77 lines
2.6 KiB
YAML
77 lines
2.6 KiB
YAML
---
|
|
- name: 升级 Podman 到最新版本 (warden 节点测试)
|
|
hosts: warden
|
|
become: yes
|
|
gather_facts: yes
|
|
|
|
tasks:
|
|
- name: 检查当前 Podman 版本
|
|
shell: podman --version
|
|
register: current_podman_version
|
|
ignore_errors: yes
|
|
|
|
- name: 显示当前版本
|
|
debug:
|
|
msg: "当前 Podman 版本: {{ current_podman_version.stdout if current_podman_version.rc == 0 else '未安装或无法获取' }}"
|
|
|
|
- name: 备份现有 Podman 配置
|
|
shell: |
|
|
if [ -d /etc/containers ]; then
|
|
cp -r /etc/containers /etc/containers.backup.$(date +%Y%m%d)
|
|
fi
|
|
if [ -d /usr/share/containers ]; then
|
|
cp -r /usr/share/containers /usr/share/containers.backup.$(date +%Y%m%d)
|
|
fi
|
|
ignore_errors: yes
|
|
|
|
- name: 添加 Kubic 仓库 (HTTP 跳过签名)
|
|
shell: |
|
|
# 添加仓库并跳过签名验证
|
|
echo "deb [trusted=yes] http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_22.04/ /" > /etc/apt/sources.list.d/kubic-containers.list
|
|
|
|
- name: 更新包列表 (跳过签名验证)
|
|
shell: apt-get update -o Acquire::AllowInsecureRepositories=true -o Acquire::AllowDowngradeToInsecureRepositories=true
|
|
|
|
- name: 检查仓库中可用的 Podman 版本
|
|
shell: apt-cache policy podman
|
|
register: podman_versions
|
|
|
|
- name: 显示可用的 Podman 版本
|
|
debug:
|
|
msg: "{{ podman_versions.stdout }}"
|
|
|
|
- name: 安装 Podman 5.x (强制跳过签名)
|
|
shell: apt-get install -y --allow-unauthenticated --allow-downgrades --allow-remove-essential --allow-change-held-packages podman
|
|
|
|
- name: 验证 Podman 5.x 安装
|
|
shell: |
|
|
podman --version
|
|
podman info --format json | jq -r '.Version.Version'
|
|
register: podman_5_verify
|
|
|
|
- name: 显示升级结果
|
|
debug:
|
|
msg: |
|
|
✅ Podman 升级完成
|
|
🚀 新版本: {{ podman_5_verify.stdout_lines[0] }}
|
|
📊 详细版本: {{ podman_5_verify.stdout_lines[1] }}
|
|
|
|
- name: 测试基本功能
|
|
shell: |
|
|
podman run --rm hello-world
|
|
register: podman_test
|
|
ignore_errors: yes
|
|
|
|
- name: 显示测试结果
|
|
debug:
|
|
msg: "Podman 功能测试: {{ '成功' if podman_test.rc == 0 else '失败 - ' + podman_test.stderr }}"
|
|
|
|
- name: 检查相关服务状态
|
|
shell: |
|
|
systemctl status podman.socket 2>/dev/null || echo "podman.socket 未运行"
|
|
systemctl status containerd 2>/dev/null || echo "containerd 未运行"
|
|
register: service_status
|
|
|
|
- name: 显示服务状态
|
|
debug:
|
|
msg: "{{ service_status.stdout }}" |