Kurulum Sunucusu Ayarlama

Bu ek, daha önce Linux deneyimi olan kullanıcılar için hazırlanmıştır. Yeni bir kullanıcıysanız, bunun yerine asgari önyükleme ortamı veya dağıtım DVD’si kullanarak kurulum yapmak isteyebilirsiniz.

PXE Kurulumuna Genel Bakış

Preboot Execution Environment (Önyükleme Öncesi Yürütme Ortamı) veya PXE, bilgisayarların doğrudan ağ üzerinden sağlanan kaynaklardan önyükleme yapmasını sağlayan bir teknolojidir. Fedora’yı ağ üzerinden kurmak, kurulum ortamı oluşturmanız gerekmediği ve aynı anda birden fazla bilgisayara veya sanal makineye kurabilmeniz anlamına gelir. Süreç, gerekli kaynakları sağlamak için birlikte çalışan bir dizi bileşen ve özelliği içermektedir.

PXE özellikli bilgisayar

Çoğu modern bilgisayar, ağ üzerinden önyükleme özelliğine sahiptir. Genel olarak, önyükleme sırasında basılan bir işlev tuşu, bir önyükleme seçim menüsü getirecektir. Etkileşimsiz yönetim için tasarlanmış ortamlarda, sistemler genellikle önce ağdan önyüklemeyi deneyecek, ardından yerel depolamadan önyükleme yapacak şekilde yapılandırılacaktır ve kurulum sunucusu yalnızca gerektiğinde kurulumu sunacak şekilde yapılandırılır. Bilgisayarınızın kılavuzu, önyükleme önceliklerini ayarlama konusunda özel talimatlar sağlayacaktır.

DHCP Sunucusu

Bir sistem ağ üzerinden önyükleme sırasında bir adres istediğinde, DHCP sunucusu ayrıca önyükleme yapılacak dosyaların konumunu da sağlar. Bir ağda yalnızca bir DHCP sunucusu olmalıdır.

TFTP Sunucusu

Önyükleme öncesi ortam çok basit olduğundan, dosyalar çok basit bir şekilde sağlanmalıdır. Trivial File Transfer Protocol (Basit Dosya Aktarım Protokolü) veya TFTP, sisteme kurulum işlemine devam etmek için gereken önyükleyiciyi sağlar.

Önyükleyici

Bir işletim sistemini başlatma işi, önyükleme öncesi ortam için çok karmaşık olduğundan, çekirdeği ve ilgili dosyaları yüklemek için bir önyükleyici kullanılır. Ayrıca kurucuya yapılandırma bilgileri sağlar ve farklı yapılandırmalar arasından seçim yapmak için bir menü sunabilir.

Çekirdek ve Initramfs

Çekirdek, herhangi bir Linux işletim sisteminin çekirdeğidir ve initramfs, çekirdeğe gerekli araçları ve kaynakları sağlar. Bu dosyalar da tftp tarafından sağlanmaktadır.

Paket deposu

Kurulum için kullanılabilir bir Fedora deposu bulunmalıdır. Bu bölümdeki örnek, depo kaynağı olarak herkesin erişimine açık Fedora yansılarını kullanmaktadır, ancak NFS, FTP veya HTTP tarafından sağlanan yerel ağ üzerindeki bir depoyu da kullanabilirsiniz. Depolar, inst.repo= önyükleme seçeneği kullanılarak yapılandırılabilir; ayrıntılar için Kurulum Kaynağını Belirtme bölümüne bakın.

DHCP Sunucusunu Yapılandırma

dhcpd kurma ve yapılandırma
  1. dhcp sunucusu paketini kurun.

    # dnf install dhcp
  2. /etc/dhcp/dhcpd.conf konumunda dhcp sunucusu için basit bir yapılandırma oluşturun.

    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. Yapılandırmanızı test edin ve karşılaştığınız sorunları giderin.

    systemctl start dhcpd
    journalctl --unit dhcpd --since -2m --follow
  4. İstemcileri önyükleyicilerine ve onları sağlayan sunucuya yönlendirmek için /etc/dhcp/dhcpd.conf içindeki alt ağ yapılandırmanıza girdiler ekleyin. DHCP istemcileri, sunucuya adres istekleriyle birlikte tanımlayıcı bilgiler sağladığından, BIOS istemcileri ve UEFI istemcilerinin her biri doğru önyükleyiciye yönlendirilebilir. IANA DHCPv6 kayıt sayfasında bulunabilecek en son işlemci mimarisi seçenek kodlarının kullanılması, birden çok mimarinin tek bir DHCP sunucusunu paylaşmasına olanak tanır.

    # olası mimari (arch) seçeneği değerleri için RFC4578 ve IANA DHCPv6'ya bakın
    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. Yapılandırmayı denetlemek ve gereken değişiklikleri yapmak için dhcp hizmetini yeniden başlatın.

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

TFTP sunucusunu kurma

TFTP sunucusunu kurma
  1. tftp sunucusu paketini kurun.

    # dnf install tftp-server
  2. tftp soketini başlatın ve etkinleştirin. systemd, gerektiğinde tftpd hizmetini otomatik olarak başlatacaktır.

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

PXE istemcileri için önyükleyiciyi sağlama ve yapılandırma

Önyükleyici dosyalarını edinme
  1. BIOS istemcileri için syslinux önyükleyicisini edinin.

    1. syslinux paketini kurun.

      # dnf install syslinux
    2. Önyükleyici dosyaları için bir dizin oluşturun ve bunları orada kullanılabilir hale getirin.

      # 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 sistemleri için önyükleyici dosyalarını edinin.

    1. shim-x64 ve grub2-efi-x64 paketlerini kurun. Sunucunuz bir BIOS sistemiyse, paketleri geçici bir kurulum köküne kurmalısınız. Bunları doğrudan bir BIOS makinesine kurmak, sistemi UEFI önyüklemesi için yapılandırmaya çalışacak ve sorunlara neden olacaktır.

      # dnf install shim-x64 grub2-efi-x64 --installroot=/tmp/fedora --releasever 33
    2. Önyükleyici dosyaları için bir dizin oluşturun ve bunları orada kullanılabilir hale getirin.

      # mkdir -p /var/lib/tftpboot/uefi
      # cp /tmp/fedora/boot/efi/EFI/fedora/{shimx64.efi,grubx64.efi} /var/lib/tftpboot/uefi/
İstemci önyükleyicilerini yapılandırma
  1. /var/lib/tftpboot/pxelinux.cfg/default konumunda BIOS istemcileri için bir önyükleme menüsü oluşturun.

    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 33 64-bit
    kernel f33/vmlinuz
    append initrd=f33/initrd.img inst.stage2=https://download.fedoraproject.org/pub/fedora/linux/releases/33/Server/x86_64/os/ ip=dhcp
    
    label server
    menu label ^Install Fedora 33 ( Minimal Image )
    kernel f33/vmlinuz
    append initrd=f33/initrd.img inst.stage2=https://download.fedoraproject.org/pub/fedora/linux/releases/33/Server/x86_64/os/ ip=dhcp ks=https://example.com/fedora/kickstarts/minimal.ks
  2. /var/lib/tftpboot/uefi/grub.cfg konumunda UEFI istemcileri için bir önyükleme menüsü oluşturun.

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

Çekirdek ve initrd edinme

Çekirdek ve initrd indirme
  1. Dosyalar için bir dizin oluşturun.

    # mkdir -p /var/lib/tftpboot/f33
  2. Çekirdeği indirin.

    # wget https://download.fedoraproject.org/pub/fedora/linux/releases/33/Server/x86_64/os/images/pxeboot/vmlinuz -O /var/lib/tftpboot/f33/vmlinuz
  3. Initrd’yi indirin.

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

HTTP Kurulumuna Genel Bakış

HTTP/HTTPS önyüklemesi, bilgisayarların doğrudan ağ üzerinden sağlanan kaynaklardan önyükleme yapmasını sağlayan bir teknolojidir. HTTPS ile birlikte kullanıldığında, sunucunun güvenilirliği doğrulanır ve HTTP kullanımı, PXE’nin TFTP’sinden daha güvenilir bir aktarım mekanizması sunar. Fedora’yı bu şekilde kurmak, kurulum ortamı oluşturmaktan kaçınılmasına ve aynı anda birden çok bilgisayara kurulmasına olanak tanır. Fedora’nın sanallaştırma çözümleriyle birlikte gelen EDK2 tabanlı ürün yazılımı da dahil olmak üzere günümüzdeki birçok UEFI uygulaması, doğrudan HTTP kaynaklarından önyüklenebilir. Bir HTTP kaynağını belirten bir UEFI önyükleme girdisi ürün yazılımı menüleri aracılığıyla elle eklenebilir. Alternatif olarak, bir DHCP sunucusu gerekli HTTP yolunu otomatik olarak sağlayabilir.

Sertifikaların Kaydedilmesi

Birçok makine HTTP’nin yanı sıra HTTPS önyükleme yeteneğine sahip olsa da, genellikle önce bir sertifika yetkilisinin (certificate authority - CA) kayıtlı olmasını gerektirirler. CA, HTTPS sunucusu tarafından sunulan sertifikaları doğrulamak için kullanılır. Bu, herkese açık yansılar için Fedora tarafından sağlanan sertifikalardan veya yerel HTTPS önyükleme sunucusu sertifikasından uygun dosyaları kaydederek gerçekleştirilebilir.

HTTP için DHCP Sunucusunu Yapılandırma

HTTP önyüklemesi için bir DHCP sunucusunun kurulumu ve yapılandırması, HTTP istemcileri için seçenek mimari koşullarını değiştirmemiz gerekmesi dışında, PXE yapılandırmasıyla aynıdır

....

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

...

Depoları sağlama

Bu bölümdeki örnekler, paket kaynağı olarak herkesin erişimine açık Fedora yansılarını kullanmaktadır. Daha hızlı kurulumlar, birçok sisteme kurulum veya daha fazla yalıtılmış ortamlar için yerel bir depo bulundurmak isteyebilirsiniz.

Fedora Altyapı ekibi, https://fedoraproject.org/wiki/Infrastructure/Mirroring adresinde yerel bir yansı yapılandırma talimatlarını bulundurmaktadır. Depo sağlamak için tercih edilen yöntem HTTP’dir ve httpd yapılandırması için https://docs.fedoraproject.org/ adresinde bulunan Fedora Sistem Yöneticisi Kılavuzuna başvurabilirsiniz.

Cobbler ile gelişmiş ağ kurulumları

Fedora, daha karmaşık ortamlar için cobbler kurulum sunucusunu sunmaktadır. Kickstart yapılandırmalarını yönetmek, depoları eş güdümlemek, dns kayıtlarını, dhcp sunucularını ve hatta puppet bildirimlerini sağlamak gibi görevler cobbler tarafından etkin bir şekilde otomatikleştirilir.

Cobbler tarafından sağlanan tüm özelliklerden yararlanmak nispeten basit olsa da, bu güçlü aracın tam işlevselliği bu kılavuzda belgelenemeyecek kadar geniştir. Cobbler topluluğu, Fedora deposundaki paketlere eşlik edecek belgelendirmeyi https://cobbler.github.io/ adresinde sağlamaktadır.

Alternatif olarak, Foreman ile de ilgilenebilirsiniz. Resmi belgelendirmeyi ve indirmeleri https://www.theforeman.org/ adresindeki proje web sitesinde bulabilirsiniz.