PxE (Pre-boot eXecution Environment)

JY Lee·2023년 8월 14일
0
post-thumbnail
  • Preboot Execution Environment 의 줄임말로 사전-부팅 실행 환경 이라는 뜻
    일종의 시스템 환경으로, 클라이언트가 네트워크 인터페이스를 통해, 컴퓨터를 부팅할 수 있게 해주는 환경이다. 클라이언트가 부팅할 때, 네트워크 상에 저장된 OS를 가져와서 부팅하게끔 만들어 줌

PxE 서버

  • 베어메탈 서버에 OS를 깔기 위함
    1. 부트로더 파일 전송 → TFTP

    2. 운영체제 파일 전송 → FTP

      DHCP, TFTP, FTP , Kick Start 사용

실습

  • VM Settings
    램 4기가, yum dhcp, dhcp.conf, 방화벽, 셀리눅스 off, yum tftp-server

    DVD-rom을 커넥티드로 한다.
    • dvd-rom을 /media 폴더로 마운트한다
  • 필요한 패키지 설치
    syslinux = pxe 부팅에 필요한 파일이 들어있는 패키지
  1. ftp서버 구축 후  ftp에 기본적으로 존재하는 pub이라는 폴더에 운영체제 파일을 복사한다.

    cp -r /media/* /var/ftp/pub
  2. tftp 서버 및 syslinux 패키지를 설치.

    cp /var/ftp/pub/images/pxeboot/vmlinuz /var/lib/tftpboot/**
    #압축된 커널을 tftp폴더로 복사
    
    cp /var/ftp/pub/images/pxeboot/initrd.img /var/lib/tftpboot/**
    #임시 저장공간으로 사용할 파일
    
    cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/**
    #pxe 부팅에 필요한 파일
    
  3. dhcp 설치후 vi /etc/dhcp/dhcpd.conf 를 다음과 같이 수정한다.

    subnet 211.183.3.0 netmask 255.255.255.0
    
    {
    
    option routers 211.183.3.2;
    
    option subnet-mask 255.255.255.0;
    
    range dynamic-bootp 211.183.3.240 211.183.3.250; 
    #ip를 받아올 수 없는 상태(baremetal)여도 아이피를 부여
    option domain-name-servers 8.8.8.8;
    
    allow booting; #부팅을 허용
    
    allow bootp; # bootp 허용.
    
    next-server 211.183.3.69; # PxE 서버의 주소
    
    filename "pxelinux.0";
    
    }
  4. OS와 마운트 된 파일 위치를 지정할 디폴트 파일 생성

    mkdir /var/lib/tftpboot/pxelinux.cfg   # 폴더 생성
    
    cd /var/lib/tftpboot/pxelinux.cfg   # 이동
    
    touch default   #ftp 서버 및 설치할 커널을 지정하는 파일.
    
    vi default  #다음과 같이 내용을 수정
    #vi default
    DEFAULT         CentOS7_Auto_Install
    
    LABEL           CentOS7_Auto_Install     # 이 pxe의 이름은 ‘CentOS7_Auto_Install’ 이다
    
    kernel         vmlinuz                   # 커널정보는 여기에 담겨있다.
    
    APPEND         initrd=initrd.img repo=ftp://211.183.3.69/pub
    • #임시저장공간은 initrd.img라는 파일을 사용하고, 운영체제 정보는 ftp로 받아오는데, ftp서버의 주소는 211.183.3.69의 pub이라는 폴더에 들어있다.

PxE Kickstart

리눅스 설치시 사용자는 지역이나 시간, 패스워드, 언어지정, 마우스 설정등을 일일히 해야한다.
하지만 kickstart 는 이러한 설정들을 미리 파일에 지정하여 리눅스 설치 프로그램이 설정 파일을 보고 자동으로 알아서 설치를 하는 방법

생성한 vm으로 테스트한다.(설치 진행창까지 자동으로 진행되어야함)

실습 2

  • Settings

    yum -y groupinstall "GNOME Desktop" "Graphical Administration Tools"
    init 5 # GUI로 들어가달라, init 3 - CLI로 들어가달라
    #GUI 패키지 설치
    yum -y install system-config-kickstart system-config-keyboard
    #킥스타트 패키지 설치

    GUI 접속시에 user1 말고 꼭! root 계정으로 진입!

    • centos GUI 에서 킥스타트 클릭

    • 시간, 언어 및 암호 설정, 설치후 시스템이 재부팅 되도록 설정

    • FTP 서버의 주소와 설치될 운영체제가 존재하는 디렉토리를 지정 참고로 FTP로 접속시 기본 디렉토리는 /var/ftp 이고 우리는 이미 /var/ftp/pub 이라는 폴더에 운영체제를 복사해뒀다.

    • 부트로더란 운영체제 설치전 밑작업이라고 생각하면 좋다. 우리는 당연히 새로운 부트로더를 설치해야한다.

    • 스왑(swap)이란 가상메모리. 메모리가 부족할때 하드디스크를 메모리처럼 사용한다.

    • 남은 공간은 최상위 디렉토리 공간으로 지정한다.

    • 설정 확인

    • 설정이 끝났으면 /var/ftp 경로에 centos.ks 라는 이름으로 저장

      vi /var/ftp/centos.ks
      #파일을 열어서 맨밑에 다음과 같은 내용을 추가한다
      
      %packages
      @base
      @core
      @directory-client
      @fonts
      @gnome-desktop
      @input-methods
      @internet-browser
      @java-platform
      @multimedia
      @network-file-system-client
      @x11
      %end
      [root@pxe ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
      #의 pub오른쪽 한칸 띄고 
      
      ks=ftp://211.183.3.69/centos.ks
      #를 추가한다

  • 생성한 vm으로 테스트한다.(설치 진행창까지 자동으로 진행되어야함)

profile
배고픈 소크라테스

0개의 댓글