dhcp 설치
dnf -y install dhcp-server
dhcp-server 설치된 리스트 확인
rpm -ql dhcp-server
dhcp ip 정보 내용 복사 (46번째 행)
vi /usr/share/doc/dhcp-server/dhcpd.conf.example
subnet 10.5.5.0 netmask 255.255.255.224 {
range 10.5.5.26 10.5.5.30;
option domain-name-servers ns1.internal.example.org;
option domain-name "internal.example.org";
option routers 10.5.5.1;
option broadcast-address 10.5.5.31;
default-lease-time 600;
max-lease-time 7200;
}
dhcp 서버 설정에서 편집
vi /etc/dhcp/dhcpd.conf
subnet 192.168.111.0 netmask 255.255.255.0 {
range 192.168.111.52 192.168.111.60;
option domain-name-servers 1.1.1.1;
option routers 192.168.111.2;
option broadcast-address 192.168.111.255;
default-lease-time 43200;
max-lease-time 86400;
}
dhcp 설정 적용
systemctl --now enable dhcpd
systemctl restat dhcpd
방화벽 개방
firewall-cmd --add-service=dhcp
클라이언트에서 dhcp로 ip 받아오기
VMware Edit > Virtual Network Editor > Use local DHCP 체크 해제
nmcli con mod ens33 ipv4.addr "" ipv4.dns "" ipv4.gateway "" ipv4.method auto connection.autoconnect yes
nmcli con down ens33
nmcli con up ens33
이전에 생성한 새로운 winserver_test에서 dhcp 확인
(암호 p@ssw0rd)
껐다 키기
설치용으로 사용할 서버에 필요한 패키지 설치
Server A
dnf -y install dhcp-server syslinux tftp-server vsftpd
syslinux - PXE 부팅 시에 클라이언트가 사용할 부트로더 제공
(pxelinux.0, ldlinux.c32등의 파일이 필요한데 해당 파일들을 제공)
pxelinux.0 - PXE 환경의 부트로더
(클라이언트가 dhcp로 네트워크 연결 후 가장 먼저 tftp로 받아올 파일)
(어떤 형태의 커널을 가지고 부팅을 시작할지 결정)
ldlinux.c32 - pxelinux.0 파일 실행 시 필요한 라이브러리
tftp-server - 단순한 파일 전송 프로그램
(69번 upd 포트 사용 - 아주 작은 크기의 파일을 인증없이 빠르게 전송 가능)
dhcp 설정 파일 추가 기입
vi /etc/dhcp/dhcpd.conf
allow booting;
allow bootp;
next-server 192.168.111.100;
filename "pxelinux.0";
데몬 재시작
systemctl restart dhcpd
설치 디스크 확인
df
만약 없다면 connected 체크 여부와 파일이 해당 위치에 존재하는지 확인

디스크가 FTP 서버에서 배포될 수 있는 경로에 추가적으로 마운트
/var/ftp/pub에 디스크를 마운트
mount /dev/sr0 /var/ftp/pub
lsblk
cd /var/ftp/pub
images/pxeboot의 initrd.img, vmlinuz를 tftp 기본 경로로 복사
/var/lib/tftpboot
cp ./images/pxeboot/initrd.img /var/lib/tftpboot
cp ./images/pxeboot/vmlinuz /var/lib/tftpboot
isolinux/ldlinux.c32 파일을 /var/lib/tftpboot로 복사
cp ./isolinux/ldlinux.c32 /var/lib/tftpboot
마지막으로 부트로더 파일 pxelinux.0을 /var/lib/tftpboot로 복사
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
pxelinux.0 부트 로더 파일을 /var/lib/tftpboot/pxelinux.cfg/default 파일을 기본 설정 파일로서 읽음
cd /var/lib/tftpboot
mkdir pxelinux.cfg
touch pxelinux.cfg/default
vi pxelinux.cfg/defaultDEFAULT rocky_4gl_pxe
LABEL rocky_4gl_pxe
KERNEL vmlinuz
APPEND initrd=initrd.img repo=ftp://192.168.111.100/pub
익명 계정 사용 여부 설정
anonymous 설정
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
데몬 실행
systemctl --now enable vsftpd tftp dhcpd
systemctl restart vsftpd tftp dhcpd
방화벽 오픈
firewall-cmd --add-service={tftp,ftp}
새로운 VM으로 테스트(만들고 켜기만 하되, 사양 조금 높게 지정)
Server A에서 anaconda-ks.cfg 내용과 동일
vi anaconda-ks.cfg
repo 주석처리 후 ftp 주소 등록
cdrom 주석 처리
처음 Server A 세팅하며 설정했던 파티션 설정 부분 확인 (내용만 확인 수정X)
혹시 모르니 해당 파일 백업
cp anaconda-ks.cfg anaconda-ks.cfg.backup
수정한 킥스타트 파일은 FTP 서버에서 읽을 수 있도록 복사
cp anaconda-ks.cfg /var/ftp/rocky8.ks
다른 사용자도 읽을 수 있게 권한 부여
chmod 644 /var/ftp/rocky8.ks
킥스타트 파일의 경로를 /var/lib/tftpboot/pxelinux.cfg/default에 명시
vi /var/lib/tftpboot/pxelinux.cfg/default
DEFAULT rocky_4gl_pxe
LABEL rocky_4gl_pxe
KERNEL vmlinuz
APPEND initrd=initrd.img repo=ftp://192.168.111.100/pub ks=ftp://192.168.111.100/rocky8.ks
새로운 장비에서 실행하여 정상적으로 설치되면 성공
B에 DHCP + PXE 구성 후 테스트용 서버를 재부팅하여 설치 화면까지 진입
dnf -y install dhcp-server syslinux tftp-server vsftpd
vi /etc/dhcp/dhcpd.conf
subnet 192.168.111.0 netmask 255.255.255.0 {
range 192.168.111.210 192.168.111.220;
option domain-name-servers 1.1.1.1;
option routers 192.168.111.2;
option broadcast-address 192.168.111.255;
default-lease-time 600;
max-lease-time 7200;
allow booting;
allow bootp;
next-server 192.168.111.200;
filename "pxelinux.0";
}mount /dev/sr0 /var/ftp/pub
cd /var/ftp/pub
cp ./images/pxeboot/initrd.img /var/lib/tftpboot
cp ./images/pxeboot/vmlinuz /var/lib/tftpboot
cp ./isolinux/ldlinux.c32 /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpbootcd /var/lib/tftpboot
mkdir pxelinux.cfg
vi pxelinux.cfg/defaultDEFAULT rocky_4gl_pxe
LABEL rocky_4gl_pxe
KERNEL vmlinuz
APPEND initrd=initrd.img repo=ftp://192.168.111.200/pubvi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
systemctl --now enable vsftpd tftp dhcpd
systemctl restart vsftpd tftp dhcpdfirewall-cmd --add-service={dhcp,tftp,ftp}