웹사이트 검색

RHEL/CentOS 8에서 PXE 네트워크 부팅을 사용하여 여러 Linux 배포판 설치


PXE 서버Preboot eXecution Environment는 PXE 지원 네트워크 인터페이스를 사용하여 여러 Linux 운영 체제를 부팅, 실행 또는 설치하도록 클라이언트 시스템에 지시하는 표준화된 클라이언트-서버 아키텍처입니다. 귀하의 네트워크 인프라에서.

요구사항

    • CentOS 8 최소 서버 설치
    • RHEL 8 최소 서버 설치
    • RHEL/CentOS 8에서 고정 IP 주소 구성

이 문서에서는 CentOS 8에서 제공하는 미러링된 로컬 설치 저장소를 사용하여 CentOS/RHEL 8PXE 네트워크 부팅 서버를 설치하고 구성하는 방법을 알아봅니다. Strong> 및 RHEL 8 ISO 이미지.

PXE 네트워크 부팅 설정을 위해 시스템에 다음 패키지를 설치합니다.

  • DNSMASQPXE 지원과 함께 DNSDHCP 서비스를 제공하는 경량 DNS 전달자 TFTP 서버.
  • Syslinux – 네트워크 부팅을 위한 부트 로더를 제공하는 Linux 부트 로더입니다.
  • TFTP 서버 – 네트워크를 통해 다운로드할 수 있는 부팅 가능한 이미지를 생성하는 간단한 잠금 단계 파일 전송 프로토콜입니다.
  • VSFTPD 서버 - 로컬에 마운트된 미러 DVD 이미지를 호스팅하는 보안 파일 전송 프로토콜로, 설치 프로그램이 필요한 패키지를 가져오는 공식 RHEL/CentOS 8 미러 설치 저장소 역할을 합니다.

1단계: DNSMASQ 서버 설치 및 구성

1. 네트워크 인터페이스 중 하나는 PXE 서비스를 제공하는 동일한 네트워크 IP 범위의 고정 IP 주소로 구성되어야 한다는 점을 기억하는 것이 중요합니다.

고정 IP 주소를 구성한 후에는 시스템 소프트웨어 패키지를 업데이트하고 DNSMASQ 데몬을 설치하세요.

dnf install dnsmasq

2. DNSMASQ가 설치되면 /etc/dnsmasq.conf 디렉토리에서 기본 구성 파일을 찾을 수 있습니다. 설명이 많이 설명되어 있어 구성하기가 어렵습니다.

먼저 나중에 검토해야 할 경우를 대비해 이 파일을 백업한 다음 표시된 대로 즐겨 사용하는 편집기를 사용하여 새 구성 파일을 만듭니다.

mv /etc/dnsmasq.conf  /etc/dnsmasq.conf.backup
nano /etc/dnsmasq.conf

3. 이제 /etc/dnsmasq.conf 파일에 다음 구성을 복사하여 붙여넣고 네트워크 설정에 따라 구성 매개변수를 변경합니다.

interface=enp0s3,lo
#bind-interfaces
domain=tecmint
DHCP range-leases
dhcp-range= enp0s3,192.168.1.3,192.168.1.253,255.255.255.0,1h
PXE
dhcp-boot=pxelinux.0,pxeserver,192.168.1.2
Gateway
dhcp-option=3,192.168.1.1
DNS
dhcp-option=6,92.168.1.1, 8.8.8.8
server=8.8.4.4
Broadcast Address
dhcp-option=28,10.0.0.255
NTP Server
dhcp-option=42,0.0.0.0

pxe-prompt="Press F8 for menu.", 60
pxe-service=x86PC, "Install CentOS 8 from network server 192.168.1.2", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot

변경해야 하는 구성 명령문은 다음과 같습니다.

  • 인터페이스 – 서버의 네트워크 인터페이스는 서비스를 수신하고 제공해야 합니다.
  • bind-interfaces – 지정된 네트워크 카드에 인터페이스를 바인딩하려면 주석 처리를 제거합니다.
  • 도메인 – 도메인 이름으로 바꿉니다.
  • dhcp-range – 네트워크 IP 범위로 변경합니다.
  • dhcp-boot – 네트워크 인터페이스 IP 주소로 바꾸세요.
  • dhcp-option=3,192.168.1.1 – 네트워크 게이트웨이로 교체하세요.
  • dhcp-option=6,92.168.1.1 – DNS 서버 IP로 바꾸세요.
  • server=8.8.4.4 – DNS 전달자 IP 주소를 추가합니다.
  • dhcp-option=28,10.0.0.255 – 선택적으로 네트워크 브로드캐스트 IP 주소로 바꾸세요.
  • dhcp-option=42,0.0.0.0 - 네트워크 시간 서버를 추가합니다(0.0.0.0 주소는 자체 참조용입니다).
  • pxe-prompt – 기본값으로 유지합니다.
  • pxe=service – 32비트/64비트 아키텍처에 x86PC를 사용하고 문자열 따옴표 아래에 메뉴 설명 프롬프트를 추가합니다.
  • enable-tftp – 내장 TFTP 서버를 활성화합니다.
  • tftp-root – 네트워크 부팅 파일 위치 /var/lib/tftpboot를 추가합니다.

구성 파일과 관련된 기타 고급 옵션에 대해서는 dnsmasq 매뉴얼을 자유롭게 읽어보세요.

2단계: SYSLINUX 부트로더 설치

4. DNSMASQ 기본 구성이 완료되면 다음 명령을 사용하여 Syslinx PXE 부트로더 패키지를 설치합니다.

dnf install syslinux

5. Syslinx PXE 부트로더는 /usr/share/syslinux에 설치되어 있으며, 표시된 대로 ls 명령을 실행하여 확인할 수 있습니다.

ls /usr/share/syslinux

3단계: TFTP 서버 설치 및 SYSLINUX 부트로더를 사용하여 복사

6. 이제 TFTP-Server를 설치하고 모든 Syslinux 부트로더를 /usr/share/syslinux/에서 /var/lib로 복사합니다. /tftpboot는 다음과 같습니다.

dnf install tftp-server
cp -r /usr/share/syslinux/* /var/lib/tftpboot

4단계: PXE 서버 구성 파일 설정

7. 기본적으로 PXE 서버pxelinux.cfg에 있는 특정 파일 세트에서 구성을 읽습니다. 위 DNSMASQ 구성 파일의 tftp-root 설정에 설명된 디렉터리입니다.

먼저 다음 명령을 실행하여 pxelinux.cfg 디렉터리를 만들고 기본 파일을 만듭니다.

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

8. 이제 올바른 Linux 배포 설치 옵션을 사용하여 PXE 기본 구성 파일을 열고 편집하세요. 또한 이 파일에 설정된 경로는 /var/lib/tftpboot 디렉터리에 상대적이어야 한다는 점을 기억하세요.

nano /var/lib/tftpboot/pxelinux.cfg/default

다음은 사용할 수 있는 구성 파일의 예입니다. 그러나 그에 따라 네트워크 설치 소스 리포지토리 및 위치를 반영하도록 설치 이미지, 프로토콜 및 IP를 변경해야 합니다.

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local

menu title ########## PXE Boot Menu ##########

label 1
menu label ^1) Install CentOS 8 x64 with Local Repo
kernel centos8/vmlinuz
append initrd=centos7/initrd.img method=ftp://192.168.1.2/pub devfs=nomount

label 2
menu label ^2) Install CentOS 8 x64 with http://mirror.centos.org Repo
kernel centos8/vmlinuz
append initrd=centos8/initrd.img method=http://mirror.centos.org/centos/8/BaseOS/x86_64/os/ devfs=nomount ip=dhcp

label 3
menu label ^3) Install CentOS 8 x64 with Local Repo using VNC
kernel centos8/vmlinuz
append  initrd=centos8/initrd.img method=ftp://192.168.1.2/pub devfs=nomount inst.vnc inst.vncpassword=password

label 4
menu label ^4) Boot from local drive

위 구성에서 CentOS 8 부팅 이미지(커널initrd)가 centos7 /var/lib/tftpboot에 상대적인 디렉토리(예: /var/lib/tftpboot/centos7) 및 설치 프로그램 저장소는 192.168.1.2/pub (PXE 서버의 IP 주소).

또한 메뉴 라벨 2는 공식 CentOS 8 설치 소스 미러 저장소(클라이언트 시스템에서 인터넷 연결이 필수임)를 설명하고 메뉴 라벨 3은 클라이언트 설치가 완료되어야 함을 설명합니다. 원격 VNC를 통해(여기서 VNC 비밀번호를 강력한 비밀번호로 대체)

중요: 위 구성에서 볼 수 있듯이 데모용으로 CentOS 8 이미지를 사용했지만 RHEL 8 이미지.

5단계: PXE 서버에 CentOS 8 부팅 이미지 추가

9. CentOS 8 이미지를 PXE 서버에 추가하려면 wget 명령을 사용하여 CentOS 8 DVD ISO 이미지를 로컬로 다운로드하고 마운트해야 합니다.

wget http://centos.mirrors.estointernet.in/8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-dvd1.iso
mount -o loop CentOS-8.2.2004-x86_64-dvd1.iso /mnt

10. CentOS 8을 다운로드한 후에는 centos8 디렉토리를 생성하고 부팅 가능한 커널 및 initrd 이미지를 복사해야 합니다.

mkdir /var/lib/tftpboot/centos8
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/centos8
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/centos8

이 접근 방식을 사용하는 이유는 나중에 전체 디렉터리 구조를 망칠 필요 없이 /var/lib/tftpboot 아래에 각각의 새로운 Linux 배포판에 대해 별도의 디렉터리를 가질 수 있기 때문입니다.

6단계: CentOS 8 로컬 미러 설치 소스 생성

11. 설정에 사용할 수 있는 다양한 프로토콜(HTTP, HTTPS 또는 NFS)이 있습니다. CentOS 8 로컬 설치 소스 미러링이 있지만 vsftpd 서버를 사용하면 설정이 쉽기 때문에 FTP 프로토콜을 선택했습니다.

Vsftpd 서버를 설치하고 모든 CentOS 8 DVD 콘텐츠를 그림과 같이 FTP 디렉터리 /var/ftp/pub에 복사해 보겠습니다.

dnf install vsftpd
cp -r /mnt/*  /var/ftp/pub/ 
chmod -R 755 /var/ftp/pub

12. 이제 모든 PXE 서버 구성이 완료되었으므로 DNSMASQVSFTPD 서버의 상태를 시작, 활성화 및 확인할 수 있습니다.

systemctl start dnsmasq
systemctl status dnsmasq
systemctl start vsftpd
systemctl status vsftpd
systemctl enable dnsmasq
systemctl enable vsftpd

13. 다음으로 클라이언트 시스템이 PXE 서버에 연결하여 부팅할 수 있도록 방화벽에서 포트를 열어야 합니다.

firewall-cmd --add-service=ftp --permanent  	## Port 21
firewall-cmd --add-service=dns --permanent  	## Port 53
firewall-cmd --add-service=dhcp --permanent  	## Port 67
firewall-cmd --add-port=69/udp --permanent  	## Port for TFTP
firewall-cmd --add-port=4011/udp --permanent  ## Port for ProxyDHCP
firewall-cmd --reload  ## Apply rules

14. FTP 설치 소스 네트워크 위치를 확인하려면 브라우저를 열고 FTP 프로토콜과 함께 PXE 서버 IP 주소와 /pub 네트워크 위치를 입력하세요.

ftp://192.168.1.2/pub

7단계: 네트워크에서 부팅하도록 클라이언트 구성

15. 이제 BIOS 메뉴에서 네트워크 부팅을 기본 부팅 장치로 구성하여 시스템에 CentOS 8을 부팅하고 설치하도록 클라이언트 시스템을 구성합니다.

시스템이 부팅되면 PXE 프롬프트가 표시됩니다. 여기서 F8 키를 눌러 프레젠테이션에 들어간 다음 Enter 키를 눌러 PXE 메뉴로 진행해야 합니다.

CentOS/RHEL 8에 최소 PXE 서버를 설정하는 것이 전부입니다.