Some checks failed
API CI / API Lint (push) Successful in 47s
API CI / API Type Check (push) Failing after 47s
API CI / API Test (push) Successful in 1m0s
API CI / API Build (push) Failing after 50s
API CI / Build Docker Image (push) Has been skipped
Build Crossplane Provider / build (push) Failing after 5m51s
CD Pipeline / Deploy to Staging (push) Failing after 29s
CI Pipeline / Lint and Type Check (push) Failing after 36s
CI Pipeline / Build (push) Has been skipped
CI Pipeline / Test Backend (push) Failing after 1m33s
CI Pipeline / Test Frontend (push) Failing after 30s
CI Pipeline / Security Scan (push) Failing after 1m16s
Crossplane Provider CI / Go Test (push) Failing after 3m23s
Crossplane Provider CI / Go Lint (push) Failing after 7m27s
Crossplane Provider CI / Go Build (push) Failing after 3m27s
Deploy to Staging / Deploy to Staging (push) Failing after 30s
Portal CI / Portal Lint (push) Failing after 21s
Portal CI / Portal Type Check (push) Failing after 21s
Portal CI / Portal Test (push) Failing after 21s
Portal CI / Portal Build (push) Failing after 22s
Test Suite / frontend-tests (push) Failing after 30s
Test Suite / api-tests (push) Failing after 49s
Test Suite / blockchain-tests (push) Failing after 30s
Type Check / type-check (map[directory:. name:root]) (push) Failing after 23s
Type Check / type-check (map[directory:api name:api]) (push) Failing after 21s
Type Check / type-check (map[directory:portal name:portal]) (push) Failing after 19s
Validate Configuration Files / validate (push) Failing after 1m52s
CD Pipeline / Deploy to Production (push) Has been skipped
Co-authored-by: Cursor <cursoragent@cursor.com>
134 lines
4.3 KiB
Bash
Executable File
134 lines
4.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Complete Ceph uninstall, cleanup, and reinstall
|
|
set -e
|
|
|
|
echo "=== CEPH COMPLETE REINSTALL SCRIPT ==="
|
|
echo "WARNING: This will destroy all Ceph data and configuration!"
|
|
echo ""
|
|
|
|
# Backup critical configs first
|
|
echo "=== Step 1: Backing up critical configurations ==="
|
|
BACKUP_DIR="/root/ceph-backup-$(date +%Y%m%d-%H%M%S)"
|
|
mkdir -p "$BACKUP_DIR"
|
|
cp -a /etc/ceph/ "$BACKUP_DIR/ceph-config/" 2>/dev/null || true
|
|
cp -a /etc/pve/ceph.conf "$BACKUP_DIR/" 2>/dev/null || true
|
|
cp -a /var/lib/ceph/bootstrap-osd/ "$BACKUP_DIR/bootstrap-osd/" 2>/dev/null || true
|
|
echo "Backup created at: $BACKUP_DIR"
|
|
|
|
echo ""
|
|
echo "=== Step 2: Stopping all Ceph services ==="
|
|
systemctl stop ceph-osd@*.service 2>/dev/null || true
|
|
systemctl stop ceph-mon@*.service 2>/dev/null || true
|
|
systemctl stop ceph-mgr@*.service 2>/dev/null || true
|
|
systemctl stop ceph-mds@*.service 2>/dev/null || true
|
|
systemctl stop ceph.target 2>/dev/null || true
|
|
sleep 3
|
|
|
|
echo ""
|
|
echo "=== Step 3: Disabling all Ceph services ==="
|
|
systemctl disable ceph-osd@*.service 2>/dev/null || true
|
|
systemctl disable ceph-mon@*.service 2>/dev/null || true
|
|
systemctl disable ceph-mgr@*.service 2>/dev/null || true
|
|
systemctl disable ceph-mds@*.service 2>/dev/null || true
|
|
systemctl disable ceph.target 2>/dev/null || true
|
|
|
|
echo ""
|
|
echo "=== Step 4: Unmounting OSD directories ==="
|
|
# Unmount all OSD tmpfs mounts
|
|
for osd_dir in /var/lib/ceph/osd/ceph-*; do
|
|
if mountpoint -q "$osd_dir" 2>/dev/null; then
|
|
echo "Unmounting $osd_dir..."
|
|
umount -f "$osd_dir" 2>/dev/null || true
|
|
fi
|
|
done
|
|
sleep 2
|
|
|
|
echo ""
|
|
echo "=== Step 5: Removing Ceph packages (Ceph only, not Proxmox) ==="
|
|
# Only remove Ceph packages, not Proxmox dependencies
|
|
apt-get remove --purge -y ceph ceph-base ceph-common ceph-mgr ceph-mon ceph-osd ceph-mds ceph-fuse ceph-volume 2>/dev/null || true
|
|
apt-get remove --purge -y libcephfs2 librados2 librbd1 python3-cephfs python3-rados python3-rbd 2>/dev/null || true
|
|
apt-get autoremove -y 2>/dev/null || true
|
|
|
|
echo ""
|
|
echo "=== Step 6: Cleaning up Ceph directories ==="
|
|
# Force remove OSD directories
|
|
for osd_dir in /var/lib/ceph/osd/ceph-*; do
|
|
if [ -d "$osd_dir" ]; then
|
|
umount -f "$osd_dir" 2>/dev/null || true
|
|
rm -rf "$osd_dir" 2>/dev/null || true
|
|
fi
|
|
done
|
|
rm -rf /var/lib/ceph/mon/*
|
|
rm -rf /var/lib/ceph/mgr/*
|
|
rm -rf /var/lib/ceph/mds/*
|
|
rm -rf /var/lib/ceph/bootstrap-osd/*
|
|
rm -rf /var/log/ceph/*
|
|
rm -rf /etc/ceph/*
|
|
rm -rf /etc/pve/ceph.conf
|
|
rm -rf /run/ceph/*
|
|
|
|
echo ""
|
|
echo "=== Step 7: Removing Ceph LVM volumes ==="
|
|
# Find and remove all Ceph LVs
|
|
for vg in $(vgs --noheadings -o vg_name | grep ceph); do
|
|
echo "Removing volume group: $vg"
|
|
vgremove -f "$vg" 2>/dev/null || true
|
|
done
|
|
|
|
# Remove Ceph physical volumes
|
|
for pv in $(pvs --noheadings -o pv_name | grep -E "(sdc|sdd|sde|sdf|sdg|sdh)"); do
|
|
echo "Removing physical volume: $pv"
|
|
pvremove -f "$pv" 2>/dev/null || true
|
|
done
|
|
|
|
echo ""
|
|
echo "=== Step 8: Wiping Ceph drives ==="
|
|
for disk in sdc sdd sde sdf sdg sdh; do
|
|
if [ -e "/dev/$disk" ]; then
|
|
echo "Wiping /dev/$disk..."
|
|
wipefs -a /dev/$disk 2>/dev/null || true
|
|
dd if=/dev/zero of=/dev/$disk bs=1M count=100 2>/dev/null || true
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "=== Step 9: Flushing kernel caches ==="
|
|
sync
|
|
echo 3 > /proc/sys/vm/drop_caches
|
|
|
|
echo ""
|
|
echo "=== Step 10: Reinstalling Ceph ==="
|
|
apt-get update
|
|
apt-get install -y ceph ceph-common ceph-base
|
|
|
|
echo ""
|
|
echo "=== Step 11: Restoring bootstrap keyring if available ==="
|
|
if [ -d "$BACKUP_DIR/bootstrap-osd" ]; then
|
|
mkdir -p /var/lib/ceph/bootstrap-osd/ceph/
|
|
cp -a "$BACKUP_DIR/bootstrap-osd/"* /var/lib/ceph/bootstrap-osd/ceph/ 2>/dev/null || true
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== Step 12: Restoring Ceph configuration if available ==="
|
|
if [ -d "$BACKUP_DIR/ceph-config" ]; then
|
|
mkdir -p /etc/ceph/
|
|
cp -a "$BACKUP_DIR/ceph-config/"* /etc/ceph/ 2>/dev/null || true
|
|
fi
|
|
|
|
if [ -f "$BACKUP_DIR/ceph.conf" ]; then
|
|
cp "$BACKUP_DIR/ceph.conf" /etc/pve/ceph.conf 2>/dev/null || true
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== COMPLETE ==="
|
|
echo "Ceph has been uninstalled, cleaned, and reinstalled."
|
|
echo "Backup location: $BACKUP_DIR"
|
|
echo ""
|
|
echo "Next steps:"
|
|
echo "1. Review /etc/ceph/ceph.conf and /etc/pve/ceph.conf"
|
|
echo "2. Reinitialize Ceph cluster if needed: pveceph init"
|
|
echo "3. Create monitors: pveceph mon create <node>"
|
|
echo "4. Create OSDs: ceph-volume lvm create --data /dev/<disk>"
|
|
|