45 lines
1.1 KiB
Bash
45 lines
1.1 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# Complete Ceph setup script - run on each node
|
||
|
|
set -e
|
||
|
|
|
||
|
|
HOSTNAME=$(hostname -s)
|
||
|
|
PUBLIC_NETWORK="192.168.11.0/24"
|
||
|
|
CLUSTER_NETWORK="192.168.11.0/24"
|
||
|
|
|
||
|
|
echo "=== Ceph Setup on $HOSTNAME ==="
|
||
|
|
|
||
|
|
# Step 1: Install Ceph
|
||
|
|
echo "Installing Ceph packages..."
|
||
|
|
apt-get update
|
||
|
|
apt-get install -y ceph ceph-common ceph-base
|
||
|
|
|
||
|
|
# Step 2: Initialize cluster (only on ml110-01)
|
||
|
|
if [ "$HOSTNAME" = "ml110-01" ]; then
|
||
|
|
if [ ! -f "/etc/pve/ceph.conf" ]; then
|
||
|
|
echo "Initializing Ceph cluster..."
|
||
|
|
pveceph init --network $PUBLIC_NETWORK --cluster-network $CLUSTER_NETWORK
|
||
|
|
else
|
||
|
|
echo "Ceph already initialized"
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Step 3: Create monitor
|
||
|
|
echo "Creating monitor..."
|
||
|
|
pveceph mon create 2>&1 || echo "Monitor may already exist"
|
||
|
|
|
||
|
|
# Step 4: Start monitor
|
||
|
|
echo "Starting monitor service..."
|
||
|
|
systemctl enable ceph-mon@$HOSTNAME
|
||
|
|
systemctl start ceph-mon@$HOSTNAME
|
||
|
|
sleep 5
|
||
|
|
|
||
|
|
# Step 5: Verify
|
||
|
|
echo "Checking status..."
|
||
|
|
systemctl status ceph-mon@$HOSTNAME --no-pager | head -15
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=== Setup Complete ==="
|
||
|
|
echo "Run 'ceph quorum_status' to verify quorum"
|
||
|
|
echo "Run 'ceph -s' to check cluster status"
|
||
|
|
|