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.

BUILD LIGHTOS OFFLINE KIT 3.18.3 — node AlmaLinux 9.6

Bản riêng cho node AlmaLinux 9.6. Flow giống hệt [Phần 5.1] Offline KIT - AlmaLinux 9.0, chỉ khác URL vault. Build trên chính máy 9.0 (172.16.102.2) — không cần máy build 9.6, vì mọi RPM resolve theo vault qua --disablerepo=* + --repofrompath.

Vì sao không dùng chung kit 9.0 cho node 9.6

Test dnf --installroot trên rootfs 9.6 @core, chỉ bật repo kit 9.0: - Install 38 gói nhưng Downgrade 3: iptables-libs + iptables-nft 1.8.10 → 1.8.7, pciutils-libs. - Nguyên nhân: management-node-manager cần iptables-services; bản el9_0 trong kit đòi đúng iptables-libs 1.8.7. - nvme-cli cài bản 1.16 (el9_0) thay vì 2.x của 9.6.

→ Node chạy minor nào thì dùng kit resolve theo đúng minor đó.

Khác so với Phần 5.1 (9.0)

  • V=https://vault.almalinux.org/9.6 (BaseOS/AppStream/CRB), tên repofrompath v96base/v96app/v96crb.
  • Thư mục kit: ~/lightos-offline-kit-alma96 (không đè kit 9.0).
  • Repo 9.6 cũng không có drpm → deps chỉ chrony mdadm createrepo_c (createrepo_c-0.20.1-2.el9).
  • Dùng lại nguyên từ kit 9.0 (không phụ thuộc OS): 02-ansible, 03-controller/ansible (wheels + PyJWT + collections), 03-controller/node-exporter, monitoring-docker-images.tar.
  • Controller 9.6: python3.12 có sẵn trong AppStream 9.6 (kit không kèm).

Lệnh build (chạy sau khi đã có kit 9.0 + các repo lightos/epel-kit/docker-ce như Phần 5.1)

SRC=~/lightos-offline-kit; KIT=~/lightos-offline-kit-alma96; V=https://vault.almalinux.org/9.6
mkdir -p $KIT/{01-repo/target_rpms,01-repo/deps,03-controller/{lbcli,docker,monitoring},04-docs}

# Phan khong phu thuoc OS: lay tu kit 9.0
cp -a $SRC/02-ansible $KIT/
cp -a $SRC/03-controller/ansible $SRC/03-controller/node-exporter $KIT/03-controller/
cp -a $SRC/03-controller/monitoring/monitoring-docker-images.tar $KIT/03-controller/monitoring/

R96="--disablerepo=* --repofrompath=v96base,$V/BaseOS/x86_64/os/ --repofrompath=v96app,$V/AppStream/x86_64/os/ --repofrompath=v96crb,$V/CRB/x86_64/os/ --setopt=v96base.gpgcheck=0 --setopt=v96app.gpgcheck=0 --setopt=v96crb.gpgcheck=0"

dnf $R96 --enablerepo=lightos,epel-kit download --resolve --alldeps --destdir=$KIT/01-repo/target_rpms \
  lightos duroslight management-node-manager management-cluster-manager management-api-service \
  management-profile-generator discovery-service discovery-client management-lightbox-exporter \
  management-upgrade-manager etcd userlbe klight_utils nvme-cli
dnf $R96 download --resolve --alldeps --destdir=$KIT/01-repo/deps chrony mdadm createrepo_c
createrepo_c $KIT/01-repo/target_rpms && createrepo_c $KIT/01-repo/deps

dnf $R96 --enablerepo=lightos download --resolve --alldeps --destdir=$KIT/03-controller/lbcli management-lbcli
dnf $R96 --enablerepo=lightos download --resolve --alldeps --destdir=$KIT/03-controller/monitoring \
  lightos-monitoring-images lightos-monitoring-clustering
dnf $R96 --enablerepo=docker-ce-stable download --resolve --alldeps --destdir=$KIT/03-controller/docker \
  docker-ce docker-ce-cli containerd.io docker-ce-rootless-extras

# README: copy tu kit 9.0, doi 9.0 -> 9.6

→ Lần build 2026-10-19: target=126, deps=118, lbcli=21, monitoring=40, docker=129, el9_7/el9_8 = 0. Core: glibc-2.34-168.el9_6.24, openssl-libs-3.2.2-6.el9_5.1, iptables-libs-1.8.10-11.el9_5, nvme-cli-2.11-7.el9_6.

Đóng gói + checksum

cd ~
tar -czf lightos-offline-kit-alma96.tar.gz lightos-offline-kit-alma96
sha256sum lightos-offline-kit-alma96.tar.gz > lightos-offline-kit-alma96.tar.gz.sha256

→ Lần build 2026-10-19: 856M, sha256 f72c988f5dddb12871e60048663b56ec8df900ac4fa68e113bd1b8d3c67fb19d.

Test cài đặt không cần node thật (dnf --installroot)

Dựng rootfs 9.6 Minimal (@core), rồi resolve chỉ với repo kit — y như playbook offline (disablerepo: *):

V=https://vault.almalinux.org/9.6; R=/root/r96
dnf -y --installroot=$R --releasever=9.6 --setopt=reposdir=/dev/null --nogpgcheck \
  --repofrompath=b,$V/BaseOS/x86_64/os/ --repofrompath=a,$V/AppStream/x86_64/os/ install @core

K=~/lightos-offline-kit-alma96/01-repo
dnf --installroot=$R --releasever=9.6 --setopt=reposdir=/dev/null --nogpgcheck \
  --repofrompath=kt,file://$K/target_rpms --repofrompath=kd,file://$K/deps \
  install --assumeno lightos createrepo_c chrony mdadm

# Controller RPM (cai bang file, khong co repodata)
C=~/lightos-offline-kit-alma96/03-controller
for d in lbcli monitoring docker; do
  dnf --installroot=$R --releasever=9.6 --setopt=reposdir=/dev/null --disablerepo="*" --nogpgcheck \
    install --assumeno $C/$d/*.rpm
done

Kết quả 2026-10-19 — bắt buộc không có dòng Upgrade/Downgrade/Remove:

Rootfs @core Kit Kết quả
9.6 kit 9.6 — node Install 38, Downgrade 0 ✓
9.6 kit 9.6 — lbcli / monitoring / docker Install 6 / 2 / 8 ✓
9.6 kit 9.0 — node Install 38, Downgrade 3 ✗
9.0 kit 9.0 — node Install 36, Downgrade 0 ✓

Chưa test: chạy playbook deploy thật trên node 9.6, docker load image tar.