126 lines
3.0 KiB
YAML
126 lines
3.0 KiB
YAML
---
|
|
- name: 移除 Docker 并安装带 Compose 功能的 Podman
|
|
hosts: all
|
|
become: yes
|
|
gather_facts: yes
|
|
|
|
tasks:
|
|
- name: 显示当前处理的节点
|
|
debug:
|
|
msg: "🔧 正在处理节点: {{ inventory_hostname }}"
|
|
|
|
- name: 检查 Docker 服务状态
|
|
shell: systemctl is-active docker 2>/dev/null || echo "inactive"
|
|
register: docker_status
|
|
changed_when: false
|
|
|
|
- name: 停止 Docker 服务
|
|
systemd:
|
|
name: docker
|
|
state: stopped
|
|
enabled: no
|
|
ignore_errors: yes
|
|
when: docker_status.stdout == "active"
|
|
|
|
- name: 停止 Docker socket
|
|
systemd:
|
|
name: docker.socket
|
|
state: stopped
|
|
enabled: no
|
|
ignore_errors: yes
|
|
|
|
- name: 移除 Docker 相关包
|
|
apt:
|
|
name:
|
|
- docker-ce
|
|
- docker-ce-cli
|
|
- containerd.io
|
|
- docker-buildx-plugin
|
|
- docker-compose-plugin
|
|
- docker.io
|
|
- docker-doc
|
|
- docker-compose
|
|
- docker-registry
|
|
- containerd
|
|
- runc
|
|
state: absent
|
|
purge: yes
|
|
ignore_errors: yes
|
|
|
|
- name: 清理 Docker 数据目录
|
|
file:
|
|
path: "{{ item }}"
|
|
state: absent
|
|
loop:
|
|
- /var/lib/docker
|
|
- /var/lib/containerd
|
|
- /etc/docker
|
|
- /etc/containerd
|
|
ignore_errors: yes
|
|
|
|
- name: 清理 Docker 用户组
|
|
group:
|
|
name: docker
|
|
state: absent
|
|
ignore_errors: yes
|
|
|
|
- name: 更新包缓存
|
|
apt:
|
|
update_cache: yes
|
|
cache_valid_time: 3600
|
|
|
|
- name: 安装 Podman 及相关工具
|
|
apt:
|
|
name:
|
|
- podman
|
|
- buildah
|
|
- skopeo
|
|
- python3-pip
|
|
- python3-setuptools
|
|
state: present
|
|
retries: 3
|
|
delay: 10
|
|
|
|
- name: 安装 Podman Compose via pip
|
|
pip:
|
|
name: podman-compose
|
|
state: present
|
|
ignore_errors: yes
|
|
|
|
- name: 启用 Podman socket 服务
|
|
systemd:
|
|
name: podman.socket
|
|
enabled: yes
|
|
state: started
|
|
ignore_errors: yes
|
|
|
|
- name: 创建 Podman 用户服务目录
|
|
file:
|
|
path: /etc/systemd/user
|
|
state: directory
|
|
mode: '0755'
|
|
|
|
- name: 验证 Podman 安装
|
|
shell: podman --version
|
|
register: podman_version
|
|
|
|
- name: 验证 Podman Compose 安装
|
|
shell: podman-compose --version 2>/dev/null || echo "未安装"
|
|
register: podman_compose_version
|
|
|
|
- name: 检查 Docker 清理状态
|
|
shell: systemctl is-active docker 2>/dev/null || echo "已移除"
|
|
register: final_docker_status
|
|
|
|
- name: 显示节点处理结果
|
|
debug:
|
|
msg: |
|
|
✅ 节点 {{ inventory_hostname }} 处理完成
|
|
🐳 Docker 状态: {{ final_docker_status.stdout }}
|
|
📦 Podman 版本: {{ podman_version.stdout }}
|
|
🔧 Compose 状态: {{ podman_compose_version.stdout }}
|
|
|
|
- name: 清理 apt 缓存
|
|
apt:
|
|
autoclean: yes
|
|
autoremove: yes |