설치 서버 설정

이 부록은 이전에 리눅스 경험이 있는 사용자를 대상으로 합니다. 만약 신규 사용자인 경우에, 대신에 최소 부트 미디어 또는 배포용 DVD를 사용하여 설치 할 수 있습니다.

PXE 설치 개요

사전부트 실행 환경, 또는 PXE는 네트워크를 통해 제공되는 자원에서 직접 부팅 하는 컴퓨터를 사용하는 기술입니다. 네트워크를 통해 페도라 설치는 당신이 미디어를 생성 할 필요가 없는 것을 의미하고, 그리고 당신은 동시에 여러 컴퓨터 또는 가상 장비에 설치 할 수 있습니다. 처리는 요구되는 자원을 공급하는 것과 함께 동작하는 수많은 구성과 기능을 포함합니다.

PXE-가능 컴퓨터

대부분 현대적인 컴퓨터는 네트워크 부팅하는 기능을 갖고 있습니다. 전형적으로, 부트 할 때에 기능키를 누르면 부트 선택 메뉴가 나타날 것입니다. 무인 관리를 위해 설계된 환경에서, 시스템은 종종 우선 네트워크에서 부팅을 시도하도록 한 다음에 로컬 저장소에서 부팅 하도록 구성 될 것이며, 그리고 설치 서버는 다만 필요 할 때에 설치를 제공하도록 구성됩니다. 당신의 컴퓨터 설명서는 설정 부트 우선순위에서 지정한 지시를 제공 할 것입니다.

DHCP 서버

시스템은 네트워크 부팅 중 주소를 요청 할 때에, DHCP 서버는 또한 부팅으로 파일의 위치를 또한 제공합니다. 내트워크는 하나의 DHCP 서버만 가져야 합니다.

FTP 서버

왜냐하면 사전-부트 환경은 매우 단순하기 때문에, 파일은 매우 빠른 방식으로 제공되어야 합니다. 간단한 파일 통신규약 또는 TFTP는 설치 처리를 진행 할 때에 필요한 부트로더에서 제공됩니다.

부트로더

운영 체제 부팅 작업은 사전-부팅 환경에 비해 너무 복잡하기 때문에, 부트로더는 커널과 관련 파일을 적재해 사용됩니다. 이는 또한 설치자에서 구성 정보를 제공하고, 그리고 다른 구성에서 선택하는 메뉴를 제공 할 수 있습니다.

커널과 Initramfs

커널은 리눅스 운영체제의 핵심이며, 그리고 initramfs는 필요한 도구와 자원을 커널에세 제공합니다. 이들 파일은 또한 tftp에 의해 제공될 수 있습니다.

꾸러미 저장소

페도라 저장소는 설치를 위해 사용 가능해야만 합니다. 이 부분에서 예제는 저장소 원천으로 공식 페도라 미러를 사용해야 하지만, NFS, FTP 또는 HTTP를 통해 제공되는 로컬 네트워크에 있는 저장소 또한 사용 할 수 있습니다. 저장소는 상세히 확인을 위하여 inst.repo= boot option; see 설치 원천 지정하기를 사용하여 구성 할 수 있습니다.

DHCP 서버 구성

설치와 dhcpd 구성
  1. dhcp 서버 꾸러미 설치.

    # dnf install dhcp
  2. `/etc/dhcp/dhcpd.conf`에서 dhcp 서버를 위한 간단한 구성을 생성합니다

    subnet 192.168.1.0 netmask 255.255.255.0 {
    authoritative;
    default-lease-time 600;
    max-lease-time 7200;
    ddns-update-style none;
    
    option domain-name-servers 192.168.1.1;
    option routers 192.168.1.1;
    
    }
  3. 당신의 구성을 시험하고 당신이 발견한 문제를 해결하세요.

    systemctl start dhcpd
    journalctl --unit dhcpd --since -2m --follow
  4. Add entries to point clients to their bootloader and the server that provides it to your subnet configuration in /etc/dhcp/dhcpd.conf. Because DHCP clients provide the server with identifying information along with their address request, BIOS clients and UEFI clients can each be directed to the correct bootloader. Using latest processor architecture option codes, which may be found on the IANA DHCPv6 registration page, allows multiple architectures to share a single DHCP server.

    # refer to RFC4578 & IANA DHCPv6 for possible arch option values
    option arch code 93 = unsigned integer 16;
    
    subnet 192.168.1.0 netmask 255.255.255.0 {
    if option arch = 00:07 {
    # x64 UEFI
    filename "uefi/shimx64.efi";
    next-server 192.168.1.2;
    } else if option arch = 00:0b {
    # aarch64 UEFI
    filename "uefi/shimaa64.efi";
    server-name "192.168.1.2";
    } else {
    filename "pxelinux.0";
    next-server 192.168.1.2;
    }
    
    
    ...
  5. dhcp 서비스를 재시작 하려면 구성을 점검하고 필요하다면 변경하도록합니다.

    systemctl restart dhcpd
    journalctl --unit dhcpd --since -2m --follow

tftp 서버 설치하기

tftp 서버 설치하기
  1. tftp 서버 꾸러미를 설치합니다.

    # dnf install tftp-server
  2. `tftp socket`을 시작하고 활성화합니다. `systemd`는 요청 할 때에 `tftpd`를 자동으로 시작 할 것입니다.

    # systemctl start tftp.socket
    # systemctl enable tftp.socket

PXE 클라이언트를 위한 부트로더 제공과 구성하기

부트로더 파일 가져오기
  1. 바이오스 클라이언트에 syslinux 부트로더를 가져옵니다.

    1. syslinux 꾸러미를 설치합니다.

      # dnf install syslinux
    2. 부트로더 파일을 위해 디렉토리를 생성하고, 그 곳에 이를 사용 할 수 있도록 합니다.

      # mkdir -p /var/lib/tftpboot/pxelinux.cfg
      # cp /usr/share/syslinux/{pxelinux.0,menu.c32,vesamenu.c32,ldlinux.c32,libcom32.c32,libutil.c32} /var/lib/tftpboot/
  2. UEFI 시스템을 위한 부트로더 파일을 가져옵니다

    1. shim-64grub2-efi-x64 꾸러미를 설치합니다. 만약 자신의 서버가 바이오스 시스템이라면, 꾸러미를 임시 설치 root*로 설치해야만 합니다. 바이오스 장비에서 이들을 직접 설치하면 UEFI 부팅에 시스템 구성을 시도 할 수 있고 문제가 발생 할 것입니다.

      # dnf install shim-x64 grub2-efi-x64 --installroot=/tmp/fedora --releasever Rawhide
    2. 부트로더 파일을 위해 디렉토리를 생성하고, 그 곳에 이를 사용 할 수 있도록 합니다.

      # mkdir -p /var/lib/tftpboot/uefi
      # cp /tmp/fedora/boot/efi/EFI/fedora/{shimx64.efi,grubx64.efi} /var/lib/tftpboot/uefi/
클라이언트 부트로더 구성하기
  1. `/var/lib/tftpboot/pxelinux.cfg/default`에서 바이오스 클라이언트를 위한 부트 메뉴를 생성합니다.

    +

default vesamenu.c32
prompt 1
timeout 600

label local
menu label Boot from ^local drive
menu default
localboot 0xffff

label linux
menu label ^Install Fedora {PRODVER} 64-bit
kernel f{PRODVER}/vmlinuz
append initrd=f{PRODVER}/initrd.img inst.stage2=https://download.fedoraproject.org/pub/fedora/linux/releases/{PRODVER}/Server/x86_64/os/ ip=dhcp

label server
menu label ^Install Fedora {PRODVER} ( Minimal Image )
kernel f{PRODVER}/vmlinuz
append initrd=f{PRODVER}/initrd.img inst.stage2=https://download.fedoraproject.org/pub/fedora/linux/releases/{PRODVER}/Server/x86_64/os/ ip=dhcp ks=https://example.com/fedora/kickstarts/minimal.ks
  1. `/var/lib/tftpboot/uefi/grub.cfg`에서 UEFI 클라이언트를 위한 부트 메뉴를 생성합니다.

    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
    
    menuentry 'Exit this grub' {
            exit
    }
    
    menuentry 'Install Fedora 64-bit'  --class fedora --class gnu-linux --class gnu --class os {
    	linux $fw_path/fRawhide/vmlinuz ip=dhcp inst.repo=https://download.fedoraproject.org/pub/fedora/linux/releases/Rawhide/Server/x86_64/os/
    	initrd $fw_path/fRawhide/initrd.img
    }
    
    menuentry 'Install Fedora Rawhide Server'  --class fedora --class gnu-linux --class gnu --class os {
    	kernel fRawhide/vmlinuz
    	append initrd=fRawhide/initrd.img inst.repo=https://download.fedoraproject.org/pub/fedora/linux/releases/Rawhide/Server/x86_64/os/ ip=dhcp ks=https://git.fedorahosted.org/cgit/spin-kickstarts.git/plain/fedora-install-server.ks?h=f21
    }

커널과 initrd를 얻기

커널과 initrd 내려받기
  1. 파일을 위한 디렉토리를 생성합니다.

    # mkdir -p /var/lib/tftpboot/fRawhide
  2. 커널 내려받기.

    # wget https://download.fedoraproject.org/pub/fedora/linux/releases/Rawhide/Server/x86_64/os/images/pxeboot/vmlinuz -O /var/lib/tftpboot/fRawhide/vmlinuz
  3. initrd 내려받기

    # wget https://download.fedoraproject.org/pub/fedora/linux/releases/Rawhide/Server/x86_64/os/images/pxeboot/initrd.img -O /var/lib/tftpboot/fRawhide/initrd.img

HTTP Installation Overview

HTTP/HTTPS boot is a technology that allows computers to boot directly from resources provided over the network. When used in conjunction with HTTPS the authenticity of the server is validated, and the use of HTTP offers a more reliable transport mechanism than PXE’s TFTP. Installing Fedora this way avoids creating install media and allows multiple computers to install simultaneously. Many current UEFI implementations, including the EDK2 based firmware shipping with fedora’s virtualization solutions, can directly boot from HTTP sources. A UEFI boot entry may be manually added that specifies a HTTP source via firmware menus. Alternatively, a DHCP server may automatically provide the required HTTP path.

Enrolling Certificatesll

While many machines are capable of HTTPS boot as well as HTTP, they will frequently need to have a certificate authority (CA) enrolled first. The CA is used to validate the certificates presented by the HTTPS server. This may be accomplished by enrolling the appropriate files from the fedora provided ca-certificates for public mirrors or the local HTTPS boot server’s certificate.

DHCP Server Configuration for HTTP

The installation and configuration of a DHCP server for HTTP boot is identical to its configuration for PXE except that we need to amend the option arch conditions for HTTP clients

....

if option arch = 00:07 {
# x64 UEFI
filename "uefi/shim64.efi";
next-server 192.168.1.2;
} else if option arch = 00:0b {
# aarch64 UEFI
filename "uefi/shimaa64.efi";
server-name "192.168.1.2";
} else if option arch = 00:13 {
# aarch64 UEFI HTTP
option vendor-class-identifier "HTTPClient";
filename "http://download.fedoraproject.org/pub/fedora/linux/releases/Rawhide/Server/aarch64/os/images/boot.iso";
} else if option arch = 00:10 {
# x64 UEFI HTTP
option vendor-class-identifier "HTTPClient";
filename "http://download.fedoraproject.org/pub/fedora/linux/releases/Rawhide/Server/x86_64/os/images/boot.iso";
} else {
filename "pxelinux.0";
next-server 192.168.1.2;
}

...

저장소 제공하기

이 부분에서 예제는 꾸러미 원천처럼 공개 페도라 미러를 사용합니다. 빠른 설치, 많은 시스템 설치 할 때에, 또는 더 많은 독립된 환경을 위해서는 로컬 저장소를 유지하기 바랍니다.

페도라 인프라스트럭쳐는 인프라스트럭쳐 미러링에서 로컬 미러에 구성을 위한 지침을 유지 할 수 있습니다. 저장소를 제공하기 위해 선호하는 방법은 HTTP를 통하는 것이고, httpd 구성하는데 [citetitle]_Fedora 시스템 관리자 안내 부분을 참고 할 수 있습니다.

Cobbler를 사용한 고급 네트워크 설치

보다 복잡한 환경에서, Fedora는 cobbler 설치 서버를 제공합니다. 킥스타트 구성, 저장소 협조, dns 기록 유지, dhcp 서버와 심지어 puppet 메니페스트를 관리와 같은 업무는 [package]*cobbler*에 의해 효과적으로 자동화 되었습니다.

cobbler에 의해 제공되는 모든 기능을 활용하는 것은 상대적으로 간단 할 수 있지만, 이 강력한 도구의 모든 기능은 이 안내에서 너무 광범위하여 문서화 할 수 없습니다. cobbler 커뮤니티는 페도라 저장소에서 꾸러미를 동반하는 cobbler 웹에 있는 문서를 제공합니다.

상대적으로, 당신은 Foreman에 흥미를 느낄지 모릅니다. 당신은 FOREMAN 홈페이지에 있는 프로젝트 웹사이트에서 내려 받을 수 있는 공식 문서를 찾을 수 있습니다.