bruno e9708f7a05 fix: Cockpit 允许 root 用户登录
- 修复 Cockpit 默认禁止 root 登录的问题
- 在安装脚本中自动从 disallowed-users 移除 root
- 已在两台服务器上应用修复并重启服务

问题: 用户无法使用 root 登录 Cockpit Web 界面
解决: 从 /etc/cockpit/disallowed-users 移除 root 并重启服务
2025-12-21 16:08:40 +08:00

Contabo 服务器管理解决方案

三层管理架构:系统监控 + 容器管理 + 自动化运维

🎯 项目简介

为三台Contabo云服务器提供统一的可视化管理方案,整合Cockpit、Portainer和Ansible AWX,实现从系统层到应用层的全栈管理。

服务器配置

IP 角色 用途
84.247.162.131 主节点 管理工具部署节点
173.212.254.252 工作节点 K3s应用运行节点
85.239.237.116 工作节点 K3s应用运行节点

✨ 核心功能

🖥️ Layer 1: Cockpit - 系统监控

  • 实时CPU/内存/磁盘/网络监控
  • 多服务器统一Dashboard
  • Web终端访问
  • 系统日志查看

访问: https://84.247.162.131:9090

🐳 Layer 2: Portainer - 容器管理

  • K3s集群可视化管理
  • 容器/镜像/卷/网络管理
  • Docker Compose Stack部署
  • 多环境支持

访问: https://84.247.162.131:30776

🤖 Layer 3: Ansible AWX - 自动化运维

  • PlayBook可视化执行
  • 批量配置管理
  • 任务调度和审计
  • 与Gitea集成实现GitOps

访问: https://84.247.162.131:30443

🚀 快速开始

一键部署

cd /Users/brunogao/work/codes/tools/macos/contabo
./scripts/deploy-all.sh

⏱️ 部署时间:10-15分钟

手动部署

# 1. 部署Cockpit(所有节点)
./scripts/install-cockpit.sh

# 2. 部署Portainer(主节点)
kubectl apply -f k3s/portainer-deployment.yaml

# 3. 部署Portainer Agent(工作节点)
kubectl apply -f k3s/portainer-agent.yaml

# 4. 部署AWX(主节点)
kubectl apply -f k3s/awx-deployment.yaml

📁 项目结构

contabo/
├── README.md                    # 项目说明(当前文件)
├── QUICK-START.md              # 快速开始指南
├── SERVER-MANAGEMENT.md        # 详细管理文档
├── k3s/                        # K3s部署配置
│   ├── portainer-deployment.yaml    # Portainer主节点
│   ├── portainer-agent.yaml         # Portainer Agent
│   └── awx-deployment.yaml          # Ansible AWX
└── scripts/                    # 部署脚本
    ├── deploy-all.sh               # 一键部署
    └── install-cockpit.sh          # Cockpit安装

🎨 架构图

┌─────────────────────────────────────────────────────────────┐
│                     本地 macOS 环境                          │
│  Harbor (镜像仓库) | Gitea (Git+CI/CD) | K8s (本地集群)      │
└───────────────────────────┬─────────────────────────────────┘
                            │ 推送镜像/触发CI/CD
                            ↓
┌─────────────────────────────────────────────────────────────┐
│             Contabo 云服务器集群 (3台)                       │
├─────────────────────────────────────────────────────────────┤
│  📊 Cockpit (系统层监控)                                     │
│     ├─ 84.247.162.131:9090  (主节点)                        │
│     ├─ 173.212.254.252:9090 (工作节点1)                     │
│     └─ 85.239.237.116:9090  (工作节点2)                     │
├─────────────────────────────────────────────────────────────┤
│  🐳 Portainer (容器层管理)                                   │
│     └─ 84.247.162.131:30776 (统一入口)                      │
│         ├─ 管理主节点K3s集群                                 │
│         ├─ 连接工作节点1 Agent (173.212.254.252:30779)      │
│         └─ 连接工作节点2 Agent (85.239.237.116:30779)       │
├─────────────────────────────────────────────────────────────┤
│  🤖 Ansible AWX (自动化运维层)                               │
│     └─ 84.247.162.131:30443                                 │
│         ├─ PlayBook批量执行                                 │
│         ├─ 三台服务器统一配置                                │
│         └─ 与Gitea集成触发自动化任务                         │
└─────────────────────────────────────────────────────────────┘

💡 使用场景

1️⃣ 日常监控

打开Cockpit Dashboard,实时查看三台服务器的资源使用情况,快速定位性能瓶颈。

2️⃣ 应用部署

在Portainer中选择目标环境,通过Stack一键部署应用栈,支持docker-compose格式。

3️⃣ 批量配置

在AWX中创建PlayBook模板,批量更新三台服务器的配置、软件包或环境变量。

4️⃣ GitOps工作流

在Gitea中提交代码 → Actions触发 → 调用AWX API → 自动部署到Contabo集群。

🔐 安全性

  • ✅ 所有Web界面支持HTTPS
  • ✅ SSH密钥认证(禁用密码登录)
  • ✅ 防火墙规则限制端口访问
  • ✅ RBAC权限控制(K3s/AWX)
  • ✅ 定期备份(AWX/Portainer数据)

📊 性能指标

组件 CPU 内存 存储
Cockpit ~50MB ~100MB 最小
Portainer 500m-1 512MB-1GB 10GB
AWX 1-2核 2-4GB 30GB

🛠️ 故障排查

Portainer无法访问

kubectl get pods -n portainer
kubectl logs -n portainer deployment/portainer

AWX部署失败

kubectl get pods -n awx
kubectl logs -n awx deployment/awx-operator-controller-manager -f

Cockpit无法连接

systemctl status cockpit.socket
journalctl -u cockpit -f

📚 文档索引

🔄 集成与扩展

与本地环境集成

Harbor镜像推送:

# 配置K3s使用本地Harbor
# 参考 SERVER-MANAGEMENT.md → 集成与工作流

Gitea Actions远程部署:

# .gitea/workflows/deploy-to-contabo.yaml
# 参考 QUICK-START.md → 进阶配置

扩展监控

# 部署Prometheus + Grafana
kubectl apply -f monitoring/prometheus-stack.yaml

# 访问Grafana
kubectl port-forward -n monitoring svc/grafana 3000:3000

🎯 下一步计划

  • 配置AlertManager告警
  • 集成ELK/Loki日志聚合
  • 配置WireGuard VPN访问
  • 添加定时备份任务
  • 创建常用PlayBook模板库

📝 版本历史

版本 日期 更新内容
v1.0 2025-12-21 初始版本,三层管理架构

👥 维护者

  • Bruno Gao - 初始创建和维护

📄 许可证

本项目仅供内部使用


快速访问链接 ⚡

问题反馈 💬

如有问题,请查看 SERVER-MANAGEMENT.md 中的故障排查章节

S
Description
No description provided
Readme
83 KiB
Languages
Shell 86.9%
Makefile 13.1%