출처 : 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 설치 서버를 준비한다. PXE 설치 서버의 패키지가 별도로 있는 것은 아니다. IP 주소를 자동으로 할당하는 DHCP 서버, syslinux 부팅 파일을 전송할 TFTP 서버, 그리고 Rocky Linux DVD의 설치 파일을 전송할 FTP 서버 또는 웹 서버로 PXE 설치 서버를 구성한다.
- 아무것도 설치되지 않은 PC에 전원을 켜면 그 PC가 자동으로 PXE 설치 서버를 찾는다.
- 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 설치화면이 나온다.
'Study > 이것이 리눅스다 with Rocky Linux 9' 카테고리의 다른 글
20장. 리눅스 가상화 기술 - 도커 설치와 운영 (2) | 2024.01.14 |
---|---|
18장. 방화벽 컴퓨터 생성 및 운영 (2) - 리눅스 방화벽 구축 (1) | 2024.01.12 |
18장. 방화벽 컴퓨터 생성 및 운영 (1) - 방화벽 개요 (0) | 2024.01.12 |
17장. 프록시 서버 설치 및 운영 - 프록시 서버 구축 (0) | 2024.01.11 |
16장. DHCP 서버 설치 및 운영 - DHCP 서버 구축 (1) | 2024.01.10 |