운영 중인 x86 서버의 OS 를 밀고 다시 까는 작업은 되돌릴 수 없다. 재설치 자체는 한 시간이면 끝나지만, 빠뜨린 정보 하나 때문에 복구가 며칠씩 늘어진다. 아래는 재설치 전에 채집해 둘 것과 설치 후 확인할 것을 순서대로 정리한 것이다. 클러스터 노드(Hadoop · 쿠버네티스 등) 라면 그 노드가 맡은 역할에 따라 추가로 할 일이 있다.
hostnamectl
cat /etc/os-release
uname -r
timedatectl
ip -br addr
ip route
cat /etc/resolv.conf
nmcli connection show
cat /etc/hosts
본딩이나 VLAN 이 걸려 있으면 구성 파일을 통째로 챙긴다.
tar czf /backup/network-$(hostname)-$(date +%F).tgz /etc/sysconfig/network-scripts /etc/NetworkManager
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,UUID
df -hT
pvs; vgs; lvs
cat /etc/fstab
blkid
LVM 구성과 마운트 지점은 그대로 복원해야 하는 경우가 많다. 스크린샷이 아니라 텍스트로 남긴다.
cp -a /etc/passwd /etc/group /etc/shadow /etc/gshadow /backup/
cp -a /etc/sudoers /etc/sudoers.d /backup/
cp -a /etc/security/limits.conf /etc/security/limits.d /backup/
UID 와 GID 는 특히 중요하다. 데이터 디스크를 그대로 붙일 계획이라면 재설치 후 계정의 UID 가 달라지면 파일 소유자가 전부 어긋난다.
cp -a /etc/ssh /backup/
sestatus
firewall-cmd --list-all-zones > /backup/firewall.txt
chronyc sources
crontab -l -u root > /backup/root-crontab.txt
systemctl list-unit-files --state=enabled > /backup/enabled-units.txt
rpm -qa --qf '%{NAME}\n' | sort > /backup/installed-packages.txt
SSH 호스트 키를 챙겨 두면 재설치 후에도 클라이언트가 경고를 내지 않는다. 다만 보안 정책상 새로 만드는 편이 나은 경우도 있으므로 사전에 정한다.
서버 역할에 따라 다르다. 클러스터 노드라면 에이전트 설정과 로컬 데이터 경로를 확인한다.
ls -l /opt /etc/*/conf 2>/dev/null
데이터 디렉터리가 OS 디스크에 있는지 별도 디스크에 있는지 반드시 확인한다. OS 디스크에 있다면 재설치로 사라진다.
cat /etc/os-release
hostnamectl set-hostname <hostname>
ip -br addr
ip route
cat /etc/hosts
cat /etc/resolv.conf
getent hosts <peer-hostname>
dig +short <peer-hostname>
클러스터 노드는 정방향과 역방향이 모두 맞아야 하는 경우가 많다.
dig +short -x <ip>
timedatectl set-timezone Asia/Seoul
systemctl enable --now chronyd
chronyc sources -v
chronyc tracking
시간이 어긋나면 Kerberos 인증이 실패하고 로그 분석이 불가능해진다. 우선순위가 높다.
dnf -y install vim wget curl net-tools lsof bind-utils tar unzip rsync sysstat
sestatus
firewall-cmd --list-all
systemctl status firewalld
사전에 채집한 규칙을 복원하고, 필요한 포트만 연다.
id <appuser>
cat /etc/fstab
mount -a
df -hT
UID 와 GID 가 채집해 둔 값과 같은지 확인한다. 다르면 지금 고친다. 데이터 디스크를 붙인 뒤에는 늦다.
systemctl status sshd
ss -tlnp | grep :22
ssh -o BatchMode=yes <peer> true
reboot
재부팅 후에 서비스가 자동으로 뜨는지, 마운트가 모두 살아 있는지 확인한다. 설정만 해 두고 재부팅 시험을 건너뛰면 다음 정기 점검 때 문제가 드러난다.
systemctl --failed
df -hT