83 lines
2.0 KiB
YAML
83 lines
2.0 KiB
YAML
---
|
|
- name: System Cleanup and Maintenance
|
|
hosts: all
|
|
become: yes
|
|
gather_facts: yes
|
|
|
|
tasks:
|
|
# 清理包缓存和孤立包
|
|
- name: Clean package cache (Debian/Ubuntu)
|
|
apt:
|
|
autoclean: yes
|
|
autoremove: yes
|
|
when: ansible_os_family == "Debian"
|
|
|
|
- name: Remove orphaned packages (Debian/Ubuntu)
|
|
shell: apt-get autoremove --purge -y
|
|
when: ansible_os_family == "Debian"
|
|
|
|
# 清理日志文件
|
|
- name: Clean old journal logs (keep 7 days)
|
|
shell: journalctl --vacuum-time=7d
|
|
|
|
- name: Clean old log files
|
|
find:
|
|
paths: /var/log
|
|
patterns: "*.log.*,*.gz"
|
|
age: "7d"
|
|
recurse: yes
|
|
register: old_logs
|
|
|
|
- name: Remove old log files
|
|
file:
|
|
path: "{{ item.path }}"
|
|
state: absent
|
|
loop: "{{ old_logs.files }}"
|
|
when: old_logs.files is defined
|
|
|
|
# 清理临时文件
|
|
- name: Clean /tmp directory (files older than 7 days)
|
|
find:
|
|
paths: /tmp
|
|
age: "7d"
|
|
recurse: yes
|
|
register: tmp_files
|
|
|
|
- name: Remove old temp files
|
|
file:
|
|
path: "{{ item.path }}"
|
|
state: absent
|
|
loop: "{{ tmp_files.files }}"
|
|
when: tmp_files.files is defined
|
|
|
|
# Docker 清理 (如果存在)
|
|
- name: Check if Docker is installed
|
|
command: which docker
|
|
register: docker_check
|
|
failed_when: false
|
|
changed_when: false
|
|
|
|
- name: Clean Docker system
|
|
shell: |
|
|
docker system prune -f
|
|
docker image prune -f
|
|
docker volume prune -f
|
|
when: docker_check.rc == 0
|
|
|
|
# 磁盘空间检查
|
|
- name: Check disk usage
|
|
shell: df -h
|
|
register: disk_usage
|
|
|
|
- name: Display disk usage
|
|
debug:
|
|
msg: "{{ disk_usage.stdout_lines }}"
|
|
|
|
# 内存使用检查
|
|
- name: Check memory usage
|
|
shell: free -h
|
|
register: memory_usage
|
|
|
|
- name: Display memory usage
|
|
debug:
|
|
msg: "{{ memory_usage.stdout_lines }}" |