14.4. HTTP 부팅을 위한 HTTP 서버 구성

서버에서 네트워크에서 HTTP 부팅 리소스를 제공할 수 있도록 httpd 서비스를 설치하고 활성화해야 합니다.

사전 요구 사항

  • 서버의 네트워크 주소를 찾습니다.

    다음 예제에서 서버에는 192.168.124.2 IPv4 주소가 있는 네트워크 카드가 있습니다.

절차

  1. HTTP 서버를 설치합니다.

    # yum install httpd
  2. /var/www/html/redhat/ 디렉터리를 생성합니다.

    # mkdir -p /var/www/html/redhat/
  3. RHEL DVD ISO 파일을 다운로드합니다. 모든 Red Hat Enterprise Linux 다운로드를 참조하십시오.
  4. ISO 파일의 마운트 지점을 생성합니다.

    # mkdir -p /var/www/html/redhat/iso/
  5. ISO 파일을 마운트합니다.

    # mount -o loop,ro -t iso9660 path-to-RHEL-DVD.iso /var/www/html/redhat/iso
  6. 마운트된 ISO 파일의 부트 로더, kernel 및 initramfs 를 HTML 디렉터리로 복사합니다.

    # cp -r /var/www/html/redhat/iso/images /var/www/html/redhat/
    # cp -r /var/www/html/redhat/iso/EFI /var/www/html/redhat/
  7. 부트 로더 구성을 편집할 수 있도록 합니다.

    # chmod 644 /var/www/html/redhat/EFI/BOOT/grub.cfg
  8. /var/www/html/redhat/EFI/BOOT/grub.cfg 파일을 편집하고 해당 콘텐츠를 다음으로 바꿉니다.

    set default="1"
    
    function load_video {
      insmod efi_gop
      insmod efi_uga
      insmod video_bochs
      insmod video_cirrus
      insmod all_video
    }
    
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_gpt
    insmod ext2
    
    set timeout=60
    # END /etc/grub.d/00_header #
    
    search --no-floppy --set=root -l 'RHEL-9-3-0-BaseOS-x86_64'
    
    # BEGIN /etc/grub.d/10_linux #
    menuentry 'Install Red Hat Enterprise Linux 9.3' --class fedora --class gnu-linux --class gnu --class os {
        linuxefi ../../images/pxeboot/vmlinuz inst.repo=http://192.168.124.2/redhat/iso quiet
        initrdefi ../../images/pxeboot/initrd.img
    }
    menuentry 'Test this media & install Red Hat Enterprise Linux 9.3' --class fedora --class gnu-linux --class gnu --class os {
        linuxefi ../../images/pxeboot/vmlinuz inst.repo=http://192.168.124.2/redhat/iso quiet
        initrdefi ../../images/pxeboot/initrd.img
    }
    submenu 'Troubleshooting -->' {
        menuentry 'Install Red Hat Enterprise Linux 9.3 in text mode' --class fedora --class gnu-linux --class gnu --class os {
       	 linuxefi ../../images/pxeboot/vmlinuz inst.repo=http://192.168.124.2/redhat/iso inst.text quiet
       	 initrdefi ../../images/pxeboot/initrd.img
        }
        menuentry 'Rescue a Red Hat Enterprise Linux system' --class fedora --class gnu-linux --class gnu --class os {
       	 linuxefi ../../images/pxeboot/vmlinuz inst.repo=http://192.168.124.2/redhat/iso inst.rescue quiet
       	 initrdefi ../../images/pxeboot/initrd.img
        }
    }

    이 파일에서 다음 문자열을 교체합니다.

    RHEL-9-3-0-BaseOS-x86_64Red Hat Enterprise Linux 9.3
    다운로드한 RHEL 버전과 일치하도록 버전 번호를 편집합니다.
    192.168.124.2
    를 서버의 IP 주소로 바꿉니다.
  9. EFI 부팅 파일을 실행 가능하게 만듭니다.

    # chmod 755 /var/www/html/redhat/EFI/BOOT/BOOTX64.EFI
  10. HTTP(80), DHCP(67, 68) 및 DHCPv6(546, 547) 트래픽을 허용하도록 방화벽에서 포트를 엽니다.

    # firewall-cmd --zone public \
                   --add-port={80/tcp,67/udp,68/udp,546/udp,547/udp}
    참고

    이 명령은 다음 서버가 재부팅될 때까지 임시 액세스를 활성화합니다. 영구 액세스를 활성화하려면 명령에 --permanent 옵션을 추가합니다.

  11. 방화벽 규칙을 다시 로드합니다.

    # firewall-cmd --reload
  12. HTTP 서버를 시작합니다.

    # systemctl enable --now httpd
  13. html 디렉토리와 해당 콘텐츠를 읽을 수 있고 실행 가능하게 만듭니다.

    # chmod -cR u=rwX,g=rX,o=rX /var/www/html
  14. html 디렉터리의 SELinux 컨텍스트를 복원합니다.

    # restorecon -FvvR /var/www/html