📝 PXE 서버
- OS를 설치할 때 DVD-ROM을 만들거나 USB 플래시 드라이브로 설치하는 방법이 가장 일반적이긴 하나, 네트워크 어댑터의 PXE 부트 기능을 이용하여 설치할 수도 있다.
- 이러한 PXE 부트 기능을 통해 OS 설치 환경 혹은 diskless 부트 환경을 제공하는 서버를 통상적으로 PXE 서버라고 부른다.
- PXE Booting이란 네트워크 인터페이스를 이용하여 컴퓨터를 부팅할 수 있게 만들어주는 기능으로써, CD-ROM이나 USB와 같은 데이터 저장소에 구애받지 않고 운영체제를 설치할 수 있도록 해주는 기능이다.
- 이런 경우, 다음과 같은 장점을 생각해 볼 수 있다.
- 여러 버전의 OS 설치 환경을 만들 수 있다.
- 동시에 여러 시스템에 OS를 설치할 수 있다.
- Kickstart 기능을 통해 설치 과정을 완전히 자동화할 수 있고, 커스터마이징할 수 있다.
PXE 설치를 위해서는 PXE 서버와 컴퓨터가 모두 같은 네트워크 안에 있어야 한다.
📝 PXE 서버 구현
📜 패키지 설치
- PXE 서버 구현을 위해 관련 패키지를 설치해준다.
# dnf -y install syslinux dhcp-server tftp-server vsftpd
📜 설정 파일 수정
- 이후 각각의 서버 설정 파일을 수정해준다.
- 먼저
dhcpd.conf
(/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";
}
- 다음으로는
vsftpd.conf
(/etc/vsftpd/vsftpd.conf
) 파일을 열고 12행의 내용을 아래와 같이 수정해준다.
anonymous_enable=YES
📜 마운트 및 FTP 서버 설정
- 다음으로 CD/DVD 장치의 설정을 아래와 같이 바꾸어주고, 배포할 OS를 지정해준다.
- 이후 자동으로 마운트된 정보를 해제하고, FTP 서버의 홈 디렉터리로 다시 마운트함으로써 FTP 서버를 통해 OS 파일을 배포하여 설치할 수 있도록 한다.
# umount /dev/cdrom
# mount /dev/cdrom /var/ftp/pub
- 이후 부팅 관련 파일을 복사하여 FTP 서버의 홈 디렉터리에 저장한다.
# 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
- 다음으로 부팅 관련 디렉터리와 설정 파일을 생성한다.
# mkdir /var/lib/tftpboot/pxelinux.cfg
# cd /var/lib/tftpboot/pxelinux.cfg
# touch default
# vi default
default
파일의 내용은 아래와 같다.
DEFAULT CentOS8_Auto_Install
LABEL CentOS8_Auto_Install
kernel vmlinuz
APPEND initrd=initrd.img repo=ftp://192.168.111.100/pub
- 이렇게 하여 PC가 켜지면 DHCP 서버를 통해 IP 주소를 할당받고, TFTP 서버의 부팅 관련 파일을 통해 부팅된 후, FTP 서버에 저장되어 있는 파일을 통해 OS 설치를 수행할 수 있게 되었다.
- 마지막으로 서비스를 시작시키고 마무리한다.
- 참고로 리눅스에서 기본으로 제공하는 DHCP 서버는 비활성화 해준다.
# systemctl restart dhcpd
# systemctl restart vsftpd
# systemctl restart tftp
# systemctl enable dhcpd
# systemctl enable vsftpd
# systemctl enable tftp
📜 테스트
- 이후 가상머신을 새롭게 생성하여 부팅해보면 DHCP 서버에서 IP를 할당받고, TFTP 서버의 부팅 파일을 확인 및 다운로드하여 부팅한 후에 FTP 서버에서 OS 설치 파일을 다운로드하여 운영체제 설치 과정을 수행하는 것을 확인할 수 있다.
📝 Kickstart
- 다만 위와 같은 방법을 사용해서 여러 대의 PC에서 동시에 OS를 설치할 수 있다고 하더라도, 운영체제 설치 과정에서 설정은 모두 따로 해주어야하기 때문에 매우 귀찮은 상황이 발생하게 된다.
- 이를 해결하기 위한 것이 바로 Kickstart 기능이다.
- Kickstart란 PXE 서버를 이용할 때, 부팅 후에 필요한 작업까지 미리 설정해서 원격 설치시에 편리하게 설치할 수 있도록 도와주는 기능이다.
📜 Kickstart 기능 추가
- 운영체제 설치 과정에서 사용자가 설정한 내용이 저장되어 있는 파일은
anaconda-ks.cfg
(/root/anaconda-ks.cfg
)이다. - 즉, 해당 파일만 FTP 서버를 통해 추가로 배포해주면 된다.
- 이를 위해 위 파일을
/var/ftp/centos.ks
로 복사해주었다.(ks는 kickstart의 약자)
# cp /root/anaconda-ks.cfg /var/ftp/centos.ks
- 이후 복사한 파일을 열고 7행의 내용을 지우고 아래와 같이 수정해준다.
url --url=ftp://192.168.111.100/pub
- 다음으로
%packages
와%end
구문 사이의 내용을 지우고 아래와 같이 수정해주었다.
%packages
@^Server with GUI
@GNOME Applications
mc
%end
@^Server with GUI
는 패키지 환경 그룹,@GNOME Applications
는 패키지 그룹,mc
는 설치할 패키지를 의미한다.- 필요하다면 더 추가하여도 상관 없다.
- 마지막으로 위에서 생성한 부팅 관련 설정 파일(
default
)을 아래와 같이 수정해준다.
DEFAULT CentOS8_Auto_Install
LABEL CentOS8_Auto_Install
kernel vmlinuz
APPEND initrd=initrd.img repo=ftp://192.168.111.100/pub ks=ftp://192.168.111.100/centos.ks
- 이후 새로운 가상머신을 생성하여 테스트를 수행해보면 부팅 후 별도의 설정 과정 없이 운영체제가 설치되는 것을 확인할 수 있다.
'🐧 Linux > 이것이 리눅스다(CentOS 8)' 카테고리의 다른 글
[이것이 리눅스다(CentOS 8)] 18장. 방화벽 컴퓨터를 만들자 (0) | 2023.04.07 |
---|---|
[이것이 리눅스다(CentOS 8)] 17장. 프록시 서버 설치와 운영 (0) | 2023.04.06 |
[이것이 리눅스다(CentOS 8)] 16장. DHCP 서버 설치와 운영 (0) | 2023.04.06 |
[이것이 리눅스다(CentOS 8)] 15장. Samba 서버 설치와 운영 (0) | 2023.04.06 |
[이것이 리눅스다(CentOS 8)] 14장. NFS 서버 설치와 운영 (0) | 2023.04.05 |