131 lines
5.0 KiB
YAML
131 lines
5.0 KiB
YAML
---
|
|
- name: Operations Toolkit - Unified Management Dashboard
|
|
hosts: all
|
|
gather_facts: yes
|
|
|
|
vars:
|
|
# 可用的运维脚本
|
|
available_scripts:
|
|
- { name: "system-update", desc: "System package updates", file: "system-update.yml" }
|
|
- { name: "system-cleanup", desc: "System cleanup and maintenance", file: "system-cleanup.yml" }
|
|
- { name: "service-health", desc: "Service health monitoring", file: "service-health-check.yml" }
|
|
- { name: "security-hardening", desc: "Security hardening and backup", file: "security-hardening.yml" }
|
|
- { name: "docker-management", desc: "Docker container management", file: "docker-management.yml" }
|
|
- { name: "network-connectivity", desc: "Network connectivity check", file: "network-connectivity.yml" }
|
|
- { name: "certificate-management", desc: "SSL certificate monitoring", file: "certificate-management.yml" }
|
|
|
|
tasks:
|
|
# 显示系统概览
|
|
- name: Display system overview
|
|
debug:
|
|
msg: |
|
|
🖥️ System Overview for {{ inventory_hostname }}:
|
|
📊 OS: {{ ansible_distribution }} {{ ansible_distribution_version }}
|
|
💾 Memory: {{ (ansible_memtotal_mb/1024)|round(1) }}GB total, {{ (ansible_memfree_mb/1024)|round(1) }}GB free
|
|
💿 CPU: {{ ansible_processor_vcpus }} cores
|
|
🏠 Architecture: {{ ansible_architecture }}
|
|
🌐 IP: {{ ansible_default_ipv4.address }}
|
|
⏰ Uptime: {{ ansible_uptime_seconds//86400 }}d {{ (ansible_uptime_seconds%86400)//3600 }}h {{ ((ansible_uptime_seconds%3600)//60) }}m
|
|
|
|
# 快速系统状态检查
|
|
- name: Quick system status check
|
|
shell: |
|
|
echo "=== DISK USAGE ==="
|
|
df -h | grep -E "(Filesystem|/dev/)"
|
|
echo ""
|
|
echo "=== MEMORY USAGE ==="
|
|
free -h
|
|
echo ""
|
|
echo "=== LOAD AVERAGE ==="
|
|
uptime
|
|
echo ""
|
|
echo "=== TOP PROCESSES ==="
|
|
ps aux --sort=-%cpu | head -6
|
|
register: quick_status
|
|
|
|
- name: Display quick status
|
|
debug:
|
|
msg: "{{ quick_status.stdout_lines }}"
|
|
|
|
# 检查关键服务状态
|
|
- name: Check critical services
|
|
systemd:
|
|
name: "{{ item }}"
|
|
register: service_status
|
|
loop:
|
|
- ssh
|
|
- systemd-resolved
|
|
- cron
|
|
failed_when: false
|
|
|
|
- name: Display service status
|
|
debug:
|
|
msg: "🔧 {{ item.item }}: {{ item.status.ActiveState if item.status is defined else 'NOT FOUND' }}"
|
|
loop: "{{ service_status.results }}"
|
|
|
|
# 检查最近的系统日志错误
|
|
- name: Check recent system errors
|
|
shell: journalctl --since "1 hour ago" --priority=err --no-pager | tail -10
|
|
register: recent_errors
|
|
failed_when: false
|
|
|
|
- name: Display recent errors
|
|
debug:
|
|
msg: "🚨 Recent Errors: {{ recent_errors.stdout_lines if recent_errors.stdout_lines else ['No recent errors found'] }}"
|
|
|
|
# 检查网络连接
|
|
- name: Quick network check
|
|
shell: |
|
|
echo "=== NETWORK INTERFACES ==="
|
|
ip -br addr show
|
|
echo ""
|
|
echo "=== DEFAULT ROUTE ==="
|
|
ip route | grep default
|
|
echo ""
|
|
echo "=== DNS TEST ==="
|
|
nslookup google.com | grep -A1 "Name:" || echo "DNS resolution failed"
|
|
register: network_check
|
|
failed_when: false
|
|
|
|
- name: Display network status
|
|
debug:
|
|
msg: "🌐 Network Status: {{ network_check.stdout_lines }}"
|
|
|
|
# 显示可用的运维脚本
|
|
- name: Display available operations scripts
|
|
debug:
|
|
msg: |
|
|
🛠️ Available Operations Scripts:
|
|
{% for script in available_scripts %}
|
|
{{ loop.index }}. {{ script.name }}: {{ script.desc }}
|
|
{% endfor %}
|
|
|
|
💡 Usage Examples:
|
|
ansible-playbook -i inventory.ini system-cleanup.yml --limit {{ inventory_hostname }}
|
|
ansible-playbook -i inventory.ini docker-management.yml --limit lxc
|
|
ansible-playbook -i inventory.ini network-connectivity.yml --limit proxmox
|
|
|
|
# 生成运维建议
|
|
- name: Generate maintenance recommendations
|
|
debug:
|
|
msg: |
|
|
💡 Maintenance Recommendations for {{ inventory_hostname }}:
|
|
|
|
🔄 Regular Tasks (Weekly):
|
|
- Run system-cleanup.yml to free up disk space
|
|
- Check service-health-check.yml for service status
|
|
- Review certificate-management.yml for expiring certificates
|
|
|
|
🔒 Security Tasks (Monthly):
|
|
- Execute security-hardening.yml for security updates
|
|
- Review network-connectivity.yml for network security
|
|
|
|
🐳 Container Tasks (As needed):
|
|
- Use docker-management.yml for Docker maintenance
|
|
|
|
📊 Monitoring Tasks (Daily):
|
|
- Quick check with ops-toolkit.yml (this script)
|
|
|
|
⚡ Emergency Tasks:
|
|
- Use system-update.yml for critical security patches
|
|
- Run network-connectivity.yml for connectivity issues |