설치 서버 설정

이 부록은 이전에 리눅스 경험이 있는 사용자를 대상으로 합니다. 만약 신규 사용자인 경우에, 대신에 최소 부트 미디어 또는 배포용 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. `/etc/dhcp/dhcpd.conf`에 있는 서브넷 구성을 제공하는 이들 부트로더와 서버에서 클라이언트를 지시하도록 항목을 추가합니다. DHCP 클라이언트는 주소 요청과 함께 식별 정보를 서버에 제공하기 때문에, 바이오스와 UEFI 클라이언트는 각각 정확한 부트로더로 연결될 수 있습니다. IANA DHCPv6 등록 부분에서 찾을 수 있는 최신 프로세서 구조 옵션 코드를 사용하면, 여러 구조를 단일 DHCP 서버로 공유 할 수 있습니다.

    # 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 34
    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 34 64-bit
    kernel f34/vmlinuz
    append initrd=f34/initrd.img inst.stage2=https://download.fedoraproject.org/pub/fedora/linux/releases/34/Server/x86_64/os/ ip=dhcp
    
    label server
    menu label ^Install Fedora 34 ( Minimal Image )
    kernel f34/vmlinuz
    append initrd=f34/initrd.img inst.stage2=https://download.fedoraproject.org/pub/fedora/linux/releases/34/Server/x86_64/os/ ip=dhcp ks=https://example.com/fedora/kickstarts/minimal.ks
  2. `/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/f34/vmlinuz ip=dhcp inst.repo=https://download.fedoraproject.org/pub/fedora/linux/releases/34/Server/x86_64/os/
    	initrd $fw_path/f34/initrd.img
    }
    
    menuentry 'Install Fedora 34 Server'  --class fedora --class gnu-linux --class gnu --class os {
    	kernel f34/vmlinuz
    	append initrd=f34/initrd.img inst.repo=https://download.fedoraproject.org/pub/fedora/linux/releases/34/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/f34
  2. 커널 내려받기.

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

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

HTTP 설치 개요

HTTP/HTTPS 부트는 셈틀(컴퓨터)이 네트워크를 통해 제공되는 자원에서 직접 부트 할 수 있도록 하는 기술입니다. 서버의 HTTPS 신뢰성과 함께 사용되어 검증 될 때에, HTTP의 사용은 PXE의 TFTP 보다 더 안정적인 전송 원리를 제공합니다. 이와 같은 방식으로 페도라 설치는 설치 미디어 생성을 방지하고 여러 셈틈(컴퓨터)을 동시에 설치 할 수 있습니다. 페도라의 가상화 해결책과 함께 탑재되는 EDK2 기반 펌웨어를 포함하여, 현재의 많은 UEFI 구현은 HTTP 원천에서 직접 부트 할 수 있습니다. UEFI 부트 항목은 펌웨어 메뉴를 통해 HTTP 원천을 지정하여 수동으로 추가 될 수 있습니다. 대안으로, DHCP 서버는 필요한 HTTP 경로를 자동으로 제공 할 수도 있습니다.

인증서II 등록하기

많은 장비가 HTTP 부트뿐만 아니라 HTTPS 부트도 가능하지만, 이는 먼저 등록된 인증 기관(CA)을 가져야 하는 경우가 많습니다. CA는 HTTPS 서버에서 제공되는 인증서의 유효성을 검증하는 데 사용됩니다. 이는 공식 미러 또는 로컬 HTTPS 부트 서버의 인증서를 위해 제공된 페도라에서 적절한 파일 등록에 의해 수행 될 수도 있습니다.

HTTP를 위한 DHCP 서버 구성

HTTP 부트용 DHCP 서버의 설치와 구성은 HTTP 클라이언트를 위해 옵션 구조 상태를 수정해야 한다는 점을 제외하고 PXE의 구성과 동일합니다

....

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/34/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/34/Server/x86_64/os/images/boot.iso";
} else {
filename "pxelinux.0";
next-server 192.168.1.2;
}

...

저장소 제공하기

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

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

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

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

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

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