배경
클라우드 데이터 센터에서 수십대 이상의 서버를 일괄적으로 배치할 경우 시스템 설치 및 구성 작업은 매우 복잡해집니다. 각각의 서버에 운영체제를 설치하고 필요한 설정을 수행하는 것은 인력 및 시간 측면에서 큰 부담이 됩니다. VMware, FusionCompute 등의 가상화 플랫폼에서는 일반적으로 ISO 이미지로 개별 설치하거나 제조사 제공 도구를 사용해야 하며, 이는 관리자에게 많은 번거로움을 초래합니다.
PXE란?
Pre-Boot Execution Environment는 네트워크 기반으로 운영체제를 설치할 수 있도록 하는 기술입니다. PXE를 구현하려면 다음 조건이 충족되어야 합니다:
- BIOs 지원
- 네트워크 카드 호환성
- BIOs 설정에서 해당 기능을 활성화해야 함
- DHCP와 TFTP 또는 HTTP 서비스를 제공하는 서버가 필요
PXE 네트워크 부트 프로세스
- 클라이언트가 네트워크 카드를 통해 부팅되도록 설정하여 DHCP와 TFTP/HTTP 서버를 준비
- syslinux 패키지에서 pxelinux.0 파일을 /var/lib/tftpboot 디렉토리로 복사
- reboot.c32 파일도 동일 디렉토리에 복사하여 재시작 기능 제공
- pxelinux.0 파일은 DHCP 서버로부터 IP 주소, TFTP 서버 주소 및 네트워크 부트 프로그램 정보를 수신
- 메모리에 로드된 pxelinux.0 파일이 실행되어 부트 프로세스 시작
- pxelinux.cfg/default 파일을 통해 부트 옵션 정의
- isolinux.cfg 파일을 default 이름으로 복사하여 구성 파일 생성
- default 파일에서 참조하는 다른 구성 파일을 /var/lib/tftpboot에 복사
- vmlinux 커널 및 initrd.img 드라이버 파일을 특정 OS에 맞게 준비
- 다양한 OS별 커널 폴더를 /var/lib/tftpboot에 생성 후 default 파일 수정
- system-config-kickstart 도구를 사용하여 자동 설치 구성
DHCP 및 TFTP 서비스 설치
ISO 이미지를 마운트하고 YUM 리포지토리 설정:
# mount -o loop /path/to/cdrom.iso /mnt
# vim /etc/yum.repos.d/custom.repo
[custom-repo]
name=Custom Repository
baseurl=file:///mnt
enabled=1
gpgcheck=0
필요 패키지 설치:
# yum -y install dhcp tftp-server
DHCP 구성 파일 설정:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option domain-name-servers 8.8.8.8;
option routers 192.168.1.1;
next-server 192.168.1.20; # TFTP 서버 주소
filename "pxelinux.0";
}
syslinux 패키지 설치 확인:
# rpm -q syslinux
# yum -y install syslinux
TFTP 서비스 구성:
service tftp {
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
}
시스템 서비스 재시작:
# systemctl restart xinetd
Kickstart 자동 설치 구성
자동 설치 파일 생성:
# system-config-kickstart
# cp /path/to/ks.cfg /var/www/html/
설치 구성 옵션:
- 그래픽 인터페이스 비활성화
- 파티션 자동 분할
- SSH 서버 활성화
- 시간대 설정
- 리포지토리 경로 지정
- 최종 저장 위치 설정