[이것이 리눅스다(CentOS 8)] 19장. PXE 설치 서버

2023. 4. 7. 12:42·🐧 Linux/이것이 리눅스다(CentOS 8)

📝 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
'🐧 Linux/이것이 리눅스다(CentOS 8)' 카테고리의 다른 글
  • [이것이 리눅스다(CentOS 8)] 18장. 방화벽 컴퓨터를 만들자
  • [이것이 리눅스다(CentOS 8)] 17장. 프록시 서버 설치와 운영
  • [이것이 리눅스다(CentOS 8)] 16장. DHCP 서버 설치와 운영
  • [이것이 리눅스다(CentOS 8)] 15장. Samba 서버 설치와 운영
Baeg-won
Baeg-won
  • Baeg-won
    좋았다면 추억이고 나빴다면 경험이다.
    Baeg-won
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 🍃 Spring, Spring Boot
        • 스프링 프레임워크 기초
        • 스프링 핵심 원리 - 기본편
        • 자바 ORM 표준 JPA 프로그래밍 - 기본편
        • 스프링 MVC
        • 실전! 스프링 부트와 JPA 활용1 - 웹 애플리..
      • 🥑 Web Technoloy
      • 🚗 Backend Toy Project
        • 스프링 부트 게시판
        • Photogram
        • Baeg-won Clothing Gallery
      • 🥇 Problem Solving
        • Breadth-First Search
        • Depth-First Search
        • Backtracking
        • Simulation
        • Two-pointer
        • Binary Search
        • Greedy
        • Dynamic Programming
        • Minimum Spanning Tree
        • Dijkstra
        • Floyd warshall
      • ☕ Java
        • 명품 자바 에센셜
        • Applications
      • 🍦 JavaScript
        • JavaScript 기초
      • 🐧 Linux
        • 이것이 리눅스다(CentOS 8)
      • 📟 Database
        • 혼자 공부하는 SQL
      • 🧬 Data Structure
      • 🎬 HTML
      • 🎤 Tech Interview
      • 📌 etc
        • Unity 2D Raising Jelly Game
        • C++
        • 영어 쉐도잉
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Baeg-won
[이것이 리눅스다(CentOS 8)] 19장. PXE 설치 서버
상단으로

티스토리툴바