67 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
| ---
 | |
| - 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 '安装失败' }}" |