--- - name: 强制升级 Podman 到最新版本 hosts: warden become: yes gather_facts: yes tasks: - name: 检查当前 Podman 版本 shell: podman --version register: current_podman_version ignore_errors: yes - name: 显示当前版本 debug: msg: "升级前版本: {{ current_podman_version.stdout if current_podman_version.rc == 0 else '未安装' }}" - name: 卸载现有 Podman shell: apt-get remove -y --purge podman* containerd* runc* ignore_errors: yes - name: 清理残留配置 shell: | rm -rf /etc/containers rm -rf /usr/share/containers rm -rf /var/lib/containers ignore_errors: yes - name: 直接下载并安装最新版Podman二进制文件 shell: | # 清理可能存在的旧版本 rm -f /tmp/podman-latest.tar.gz rm -f /usr/local/bin/podman # 获取最新版本号 LATEST_VERSION="v5.6.1" # 硬编码最新版本避免网络问题 echo "安装版本: $LATEST_VERSION" # 使用GitHub镜像站点下载二进制文件 echo "使用GitHub镜像站点下载..." wget -O /tmp/podman-latest.tar.gz "https://gh.git4ta.fun/github.com/containers/podman/releases/download/${LATEST_VERSION}/podman-linux-static-amd64.tar.gz" # 检查文件是否下载成功,如果失败尝试直接下载 if [ ! -f /tmp/podman-latest.tar.gz ]; then echo "镜像下载失败,尝试直接下载..." wget -O /tmp/podman-latest.tar.gz "https://github.com/containers/podman/releases/download/${LATEST_VERSION}/podman-linux-static-amd64.tar.gz" fi # 解压并安装 tar -xzf /tmp/podman-latest.tar.gz -C /usr/local/bin/ --strip-components=1 chmod +x /usr/local/bin/podman # 更新PATH echo 'export PATH=/usr/local/bin:$PATH' >> /etc/profile . /etc/profile # 验证安装 /usr/local/bin/podman --version ignore_errors: yes - name: 验证安装结果 shell: podman --version register: new_podman_version ignore_errors: yes - name: 显示最终版本 debug: msg: "升级后版本: {{ new_podman_version.stdout if new_podman_version.rc == 0 else '安装失败' }}"