19장. PXE 설치 서버 설치 및 운영 - PXE 설치 서버 설정

728x90
반응형

출처 : https://www.youtube.com/watch?v=FVb1P3YEDuc&list=PLVsNizTWUw7FqN2gq79Cb3R6qkS7mqOJk&index=74

 

 

PXE 설치 서버 개요

  • 시나리오
    • 회사에서 이번에 리눅스 전용의 교육장을 구축하려고 한다. 그래서 100대의 컴퓨터에 가상 머신이 아닌 직접 Rocky Linux를 설치하려고 한다. 처음에는 Rocky Linux DVD 몇 개를 준비한 후, 들고 왔다갔다하면서 설치할 계획이었다. 시간이 오래 걸리겠지만 가능한 방법이다. 그런데 보안 문제 때문에 교육장 컴퓨터는 입/출력을 할 수 있는 Floppy / DVD / USB 장치를 모두 제거했다는 문제가 있다. 이 상태로는 3장에서 배운 설치 방법으로 설치할 방법이 없다.
  • 해결책
    • PXE(Preboot eXecution Environment) 설치 서버 + 킥스타트(Kickstart)

 

PXE 설치 서버의 개념과 구현

PXE 설치 서버 개념도

 

  1. PXE 설치 서버를 준비한다. PXE 설치 서버의 패키지가 별도로 있는 것은 아니다. IP 주소를 자동으로 할당하는 DHCP 서버, syslinux 부팅 파일을 전송할 TFTP 서버, 그리고 Rocky Linux DVD의 설치 파일을 전송할 FTP 서버 또는 웹 서버로 PXE 설치 서버를 구성한다.
  2. 아무것도 설치되지 않은 PC에 전원을 켜면 그 PC가 자동으로 PXE 설치 서버를 찾는다.
  3. PXE 설치 서버에 설정한 대로 해당 PC에 자동으로 설치가 진행된다.

특정 PC에 PXE를 통해 운영체제를 설치하려면 PXE 설치 서버와 해당 PC가 같은 네트워크 안에 있어야 한다.

 

 

PXE 설치 서버 구현

 

실습 목표

  • Server에 PXE 설치 서버를 구현한다.

 

패키지 설치 및 관련 설정

 

Server 가상 머신을 초기화한 후 부팅하고, root 사용자로 접속한다.

 

 

syslinux, dhcp-server, tftp-server, vsftpd 서비스 패키지를 설치한다.

dnf -y install syslinux dhcp-server tftp-server vsftpd

 

여러 가지 포트를 열어야 하는데 복잡하므로 그냥 방화벽을 끄고 진행하자.

systemctl stop firewalld
systemctl disable firewalld

 

 

gedit 에디터로 /etc/dhcp/dhcpd.conf 파일을 열고 다음 내용을 추가한다. 

gedit /etc/dhcp/dhcpd.conf

subnet 192.168.111.0 netmask 255.255.255.0 {
	option	routers	192.168.111.2;
	option	subnet-mask	255.255.255.0;
	range	dynamic-bootp	192.168.111.120	192.168.111.199;
	option	domain-name-servers	192.168.111.2;
	allow	booting;			-> 부팅 허용
	allow	bootp;				-> 부팅 프로토콜 허용
	next-server	192.168.111.100;	-> 부팅 파일이 있는 서버의 주소
	filename	"pxelinux.0";		-> 부팅 파일 이름
}

 

저장하고 에디터를 닫는다.

 

 

익명 사용자(anonymous)의 접속을 허용하도록 하기 위해 gedit 에디터로 /etc/vsftpd/vsftpd.conf 파일을 수정한다.

gedit /etc/vsftpd/vsftpd.conf

12행: anonymous_enable=YES

 

저장하고 에디터를 닫는다.

 

tftp 서버는 클라이언트 PC에게 부팅될 파일을 전송하는 역할을 한다. 특별히 설정은 하지 않아도 된다.

 

 

Virtual Machine Settings의 CD/DVD에서 Device status를 모두 체크해주고 Use ISO Image file에서 Rocky Linux ISO 파일을 연결한다.

 

 

쓰기가 방지된 읽기 전용으로 마운트하기 위해 마운트를 해제하고 /var/ftp/pub/로 새로 마운트한다.

umount /dev/cdrom
mount /dev/cdrom /var/ftp/pub

 

 

tftp 서버의 디렉토리인 /var/lib/tftpboot 디렉토리에 DVD의 부팅 이미지 및 syslinux 부팅 파일을 복사한다.

cp /var/ftp/pub/images/pxeboot/vmlinuz /var/lib/tftpboot/
cp /var/ftp/pub/images/pxeboot/initrd.img /var/lib/tftpboot/
cp /var/ftp/pub/isolinux/ldlinux.c32 /var/lib/tftpboot/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
ls -l /var/lib/tftpboot/

 

 

부팅 관련 디렉토리와 설정 파일을 생성하고 gedit 에디터로 작성한다.

mkdir /var/lib/tftpboot/pxelinux.cfg
cd /var/lib/tftpboot/pxelinux.cfg
touch default
gedit default

 

 

gedit 에디터로 default 설정 파일을 열고 내용을 작성한다.

DEFAULT	Rocky9_Auto_Install		-> 기본 부팅 Label 지정. 이름은 내 마음대로 지어주면 된다.

LABEL		Rocky9_Auto_Install	-> Label 시작
	kernel	vmlinuz			-> 커널을 지정(/var/lib/tftpboot/ 디렉토리에 복사해 놓았음)
	APPEND	initrd=initrd.img	inst.repo=ftp://192.168.111.100/pub/	-> Rocky Linux 패키지 저장소 지정

 

저장하고 에디터를 닫는다.

 

 

관련된 서버를 시작한다. PXE 설치 서버와 관련된 dhcpd, vsftpd, tftp 서비스를 재시작하고 상시 가동되도록 설정한다.

systemctl restart dhcpd
systemctl restart vsftpd
systemctl restart tftp
systemctl enable dhcpd
systemctl enable vsftpd
systemctl enable tftp

 

 

우리가 server 가상 머신에 구축한 DHCP 서버를 사용해야 하므로 VMware에서 제공하는 DHCP 서버는 잠시 종료시키자.

VMware Workstation Pro를 실행하고 [Edit]->[Virtual Network Editor]에서 우측 하단의 [Change Settings]를 클릭한다.

VMnet8을 선택하고 Use local DHCP service to distribute IP address to VMs'를 체크 해제한다.

 

Apply를 클릭하고 OK를 누른다. workstation pro도 닫는다.

 

 

테스트해볼 새 가상 머신을 생성한다. 100대는 솔직히 너무 많으니까 한 대만 생성하자.

VMware Player를 새로 실행하고 Create a New Virtual Machine을 클릭하고 가상 머신을 새로 생성한다.

 

 

새로 만든 가상 머신(New Computer라고 부르겠디)의 [Edit Virtual Machine Settings]를 클릭해 Memory, Processor, Hard Disk, Network Adapter, Display를 제외하고 모두 제거한다. 기존의 Hard disk를 제거하고 SCSI용 하드 디스크를 새로 생성한다.

 

OK를 클릭해서 설정을 저장하고 New Computer를 부팅한다.

 

그러면 Rocky Linux 설치화면이 나온다.

 

 

728x90
반응형