Logo

Personal Ops Runbook

Personal runbook covering infrastructure operations for Cloud, Kubernetes, OpenStack, and Ceph environments. Includes deployment and teardown procedures, node management, cluster monitoring setup, and incident response workflows compiled from day-to-day operational work. Intended strictly for personal reference — configurations and scripts are environment-specific and not guaranteed to work as-is elsewhere.

BƯỚC 1 — Dừng service + gỡ package + xóa jwt/CA cũ trên node

NODES="10.237.94.101 10.237.94.102 10.237.94.103 10.237.94.104"

for ip in $NODES; do
echo "========== $ip =========="
ssh root@$ip '
# Stop LightOS services
systemctl stop api-service cluster-manager node-manager duroslight-0 gftl lightbox-exporter discovery-service etcd 2>/dev/null
systemctl disable --now discovery-client 2>/dev/null
# Remove all LightOS packages
dnf remove -y lightos duroslight management-node-manager management-cluster-manager management-api-service management-profile-generator management-lbcli discovery-service discovery-client management-lightbox-exporter management-upgrade-manager klight_utils userlbe etcd gftl 2>&1 | tail -1
# CRITICAL: remove leftover JWT + old CA/etcd data that poison next deploy
rm -f /root/lightos-system-jwt /root/lightos-default-admin-jwt
rm -rf /etc/lightos /etc/etcd/ssl /var/lib/etcd /var/lib/lightos* 2>/dev/null
echo -n "leftover jwt: "; ls /root/lightos-*jwt* 2>/dev/null | wc -l
echo -n "etcd ssl left: "; ls /etc/etcd/ssl 2>/dev/null | wc -l
rpm -qa | grep -icE "lightos|duros|node-manager|cluster-manager|api-service|discovery|etcd|gftl|userlbe" | grep -q "^0$" && echo "packages clean" || echo "PKG STILL THERE"
'
done

Kỳ vọng mỗi node leftover jwt: 0, etcd ssl left: 0, packages clean.

BƯỚC 2 — Reboot toàn bộ node để nó nhả md126

cat > /tmp/reboot_node.ini << 'EOF'
10.237.94.101
10.237.94.102
10.237.94.103
10.237.94.104
EOF

cd ~/light-app
ansible -i /tmp/reboot_node.ini all -m reboot -a "reboot_timeout=1200" -b -u root

BƯỚC 3 — Wipe 8 ổ NVMe mỗi node sau khi reboot xong

for ip in 10.237.94.101 10.237.94.102 10.237.94.103 10.237.94.104; do
echo "========== $ip =========="
ssh root@$ip '
# Stop leftover raid0 (NOT md127 = OS raid1)
for m in /dev/md12[0-6]; do
  [ -e "$m" ] && mdadm --detail "$m" 2>/dev/null | grep -q "raid0" && mdadm --stop "$m" && echo "stopped $m"
done
# Wipe 8 data drives (nvme0-7), NOT sda/sdb/md127
for d in 0 1 2 3 4 5 6 7; do wipefs -a /dev/nvme${d}n1 >/dev/null 2>&1; done
for d in 0 1 2 3 4 5 6 7; do nvme format /dev/nvme${d}n1 --lbaf=1 --force >/dev/null 2>&1; done
echo -n "data drives: "; lsblk | grep -cE "nvme[0-7]n1"
echo -n "md126: "; (grep -q md126 /proc/mdstat && echo YES || echo NO)
echo -n "md127 OS intact: "; (grep -q md127 /proc/mdstat && echo YES || echo NO)
'
done

Kỳ vọng mỗi node data drives: 8, md126: NO, md127 OS intact: YES.

BƯỚC 4 — Dọn admin (cert cluster mới lỗi + jwt)

rm -rf ~/lightos-certificates-clusterNew
rm -f /tmp/gen-jwt.yml ~/deploy-clusterNew.log
rm -f ~/lightos-system-jwt ~/lightos-default-admin-jwt