Bu makalemizde “Linux İşletim Sistemlerinde Kickstart ile (Pxe) Ağ Kurulumu” yapılandırmasını inceleyeceğiz. Ortamımızda Linux İşletim Sistemlerini bir DVD ile tek tek kurmak yerine ağ ortamından önyükleme yapabilen ağ kartları ile bir sunucudan kurma işlemi bizlere kurulum işleminde büyük kolaylık sağlamaktadır. PXE için iki kavram kullanacağız.
PXE Boot Nedir ?
PXE (Preboot Execution Environment), bilgisayarda saklama birimlerine ihtiyaç olmadan ağ kartları vasıtasıyla bilgisayarın açılmasını sağlayan bir ortamdır. PXE ortamı, DHCP ve BOOTP protokollerini kullanarak ağa bağlanırken, TFTP protokolü yardımıyla da gerekli önyükleme programını yükleyerek işletim sisteminin açılmasını sağlar.
TFTP Nedir ?
Trivial File Transfer Protocol.. FTP benzeridir. Tek farkı UDP üzerinden çalışıyor olmasıdır, yani paket teslimi garanti edilmez. Genellikle 69 nolu portu kullanır.
Öncelikle bu hizmeti verecek sunucumuza “Oracle Enterprise Linux” kurulumunu yapıyoruz. Bu kurulum için “Oracle Enterprise Linux Kurulumu” makalemizden yararlanabilirsiniz.
1. Sunucumuzda öncelikle “Firewall” ve “SELinux” servislerini kapatıyoruz.
# vim /etc/selinux/config -- Dosyasını açıyoruz ve aşağıdaki satırı "disabled" olarak ayarlıyoruz. SELINUX=disabled -- Firewall servisimizi durdurup kapatıyoruz. # service iptables stop # chkconfig iptables off
2. Servisimizin uzak kurulum yapabilmek için HTTP, FTP veya NFS servislerini kullanabilmektedir. Bizler “HTTP” servisini kullanacağımız için servisimizi yapılandırıyoruz.
-- HTTP servisimizi kuruyoruz. # yum install httpd -- HTTP servisimizi açılışta başlaması için açıyoruz. # chkconfig httpd on -- HTTP servisimizi başlatıyoruz. # service httpd start
3. Kurulum yapabilmemiz için HTTP servisi tarafından servis edilecek dosyalarımızı depolamak için dizinimizi oluşturuyoruz.
# mkdir -p /var/www/html/oel64
# mkdir -p /u01/os/oel64/
4. İşletim sistemi DVD .iso imaj dosyasını “/var/www/html/oel64” altında mount ediyoruz ve sunucumuz yeniden başladığında otomatik mount olabilmesi için “/etc/fstab” dosyasına ekliyoruz.. Dosyamızı ftp yada başka bir yöntem ile kurulum dosyalarımızı oluşturduğumuz “/u01/os/oel64/” dizini altına atıyoruz. Eğer sunucumuzda ftp server özelliği aktif edilmemişse “Linux İşletim Sistemlerinde HTTP ve FTP Server Yapılandırması” makalemizden faydalanarak gerekli ayarları yapabiliriz.
# vim /etc/fstab -- Dosyasını açıyoruz ve aşağıdaki satırı ekliyoruz. Not: Aşağıdaki satırları yan yana olacak şekilde yazıyoruz. Sığmadığı için alt alta yazdım. /u01/os/oel64/OracleLinux-R6-U4-Server-x86_64-dvd.iso /var/www/html/oel64 udf,iso9660 user,loop 0 0 -- İmaj dosyamızı mount ediyoruz. # mount /var/www/html/oel64
5. Sunucumuzda otomatik yanıt dosyası oluşturabilmek için “Kickstart” yazılımı kuruyoruz.
# yum install system-config-kickstart
6. Grafik arayüzden otomatik yanıtlarımızı hazırlamak için “Applications > System Tools > Kickstart” yolunu izleyerek programımızı çalıştırıyoruz.
7. Otomatik yanıtlama dosyamızı sunucu üzerinde bağlanarak değilde uzaktan kendi bilgisayarımızda yapılacaksa ekranı export edebiliriz. Bunun için “Xmanager” vb. emülatör yazılımları kullanılabilir. Bu yazılımı bilgisayarımıza kurduğumuzda “Xmanager – Passive” programını çalıştırmalıyız. Görev çubuğunda yazılım çalışacak ve export ettiğimiz ekranı kendi bilgisayarımızdan yönetebileceğiz. Bununla beraber “VNC Server” aracılığı ile de sunucuya bağlanabilir ve kurulumu direk sunucu üzerinden yapabiliriz. Bunun için “Linux İşletim Sistemlerinde VNC Server Yapılandırması” makalemizden yararlanabilirsiniz. Önerilen kurulumu VNC Server veya sunucu üzerinden yapmanız çünkü kurulum aşamasında network vb. kesintide kurulumunuz yarım kalabilir.
-- Öncelikle Xmanager vb. Emülatör programını bilgisayarımızda çalıştırmalıyız. Ardından aşağıdaki komut ile görüntüyü export etmeliyiz. $ DISPLAY=<machine-name>:0.0; export DISPLAY Örnek; $ DISPLAY=192.168.2.83:0.0; export DISPLAY Test için; $ xclock -- Yazdığımızda ekranımızda bir saat yazılımının çalıştığını görmeliyiz. Eğer açılmıyorsa ayarlarda bir sorun var demektir. Firewall vb. ayarlarımızı kontrol etmeliyiz. -- Başlatmak için # system-config-kickstart -- komutunu çalıştırarak "kickstart" programımızı çalıştırıyoruz.
8. Karşımıza gelen “Basic Configuration” ekranında ayarları sistemimize göre yapıyoruz. İşletim Sistemi dili Klavye seçeneği vb. seçenekleri yapılandırıyoruz.
9. Karşımıza gelen “Installation Method” ekranında seçenekleri aşağıdaki gibi veya kendi sistemimize göre yapılandırıyoruz.
10. Karşımıza gelen “Boot Loader Options” ekranında seçenekleri aşağıdaki gibi veya kendi sistemimize göre yapılandırıyoruz.
11. Karşımıza gelen “Partition Information” ekranında seçenekleri aşağıdaki gibi veya kendi sistemimize göre yapılandırıyoruz. Burada ben kendi isteğime göre disklerimizi yapılandırdım.
12. Karşımıza gelen “Network Configuration” ekranında seçenekleri aşağıdaki gibi veya kendi sistemimize göre yapılandırıyoruz. Eğer sunucumuza statik veya otomatik IP adresi atayacaksak burada yapılandırabiliriz. Sunucumuzda bu aşamada IP ataması yapmayacaksak herhangi bir ayar yapmadan boş geçmeliyiz.
13. Karşımıza gelen “Authentication” ekranında seçenekleri aşağıdaki gibi veya kendi sistemimize göre yapılandırıyoruz. Eğer “Kerberos, Ldap” vb. bir yapılandırma yapmayacaksak bu ekranı olduğu gibi bırakıp geçebiliriz.
14. Karşımıza gelen “Firewall Configuration” ekranında seçenekleri aşağıdaki gibi veya kendi sistemimize göre yapılandırıyoruz. Eğer sistemimizde “Firewall ve SELinux” yapılandırmalarını kapatacaksak aşağıdaki gibi yapılandırıyoruz.
15. Karşımıza gelen “Display Configuration” ekranında seçenekleri aşağıdaki gibi veya kendi sistemimize göre yapılandırıyoruz. Eğer grafik arabirim yükleyeceksek aşağıdaki gibi olmalıdır.
16. Karşımıza gelen “Package Selection” ekranında seçenekleri aşağıdaki gibi veya kendi sistemimize göre yapılandırıyoruz. Burada işletim sistemimize kurulacak paketleri seçiyoruz. Paket kurulumları yapılırken paket üzerinde sağ tıklayarak “Select all optional packages” ile seçmeliyiz. Bağımlılıklarla birlikte o seçeneğe ait gerekli tüm paketleri kurmaktadır.
Eğer sunucumuzu bir “Oracle Database” sunucusu olarak yapılandıracaksak aşağıdaki paketler seçilmelidir.
Seçilecek Paketler;
Base System > Base
Base System > Compatibility libraries
Base System > Console Internet Tools
Base System > Debugging Tools
Base System > FCoE Storage Client
Base System > Hardware monitoring utilities
Base System > Java Platform
Base System > Large Systems Performance
Base System > Network file system client
Base System > Performance Tools
Base System > Perl Support
Base System > iSCSI Storage Client
Servers > Server Platform
Servers > System administration tools
System Management > System Management
Desktops > Desktop
Desktops > Desktop Debugging and Performance Tools
Desktops > Desktop Platform
Desktops > Fonts
Desktops > General Purpose Desktop
Desktops > Graphical Administration Tools
Desktops > Input Methods
Desktops > Legacy X Window System Compatibility
Desktops > Remote Desktop Clients
Desktops > X Window System
Applications > Internet Browser
Development > Additional Development
Development > Development Tools
Development > Server Platform Development
17. Karşımıza gelen “Pre-Installation Script” ekranında eğer kurulum öncesi çalıştırılmasını istediğimiz bir scriptimiz varsa onu belirliyoruz.
18. Karşımıza gelen “Post-Installation Script” ekranında eğer kurulum sonrası çalıştırılmasını istediğimiz bir scriptimiz varsa onu belirliyoruz.
19. Yapmış olduğumuz ayarlarımızdan oluşturacağımız otomatik yanıt dosyasını kaydetmek için sağ üst köşede bulunan “File>Save” yolunu izleyerek kaydetmeye başlıyoruz.
20. Kaydetme işleminde dosyamıza bir isim veriyoruz ve “/var/www/html/” dizin yolunu seçiyoruz. Atamış olduğumuz isimle “/var/www/html/” dizin yoluna kaydetmek için “Save” düğmesine tıklıyoruz.
21. Kurulum için otomatik yanıt dosyası oluşturma işlemimiz tamamlandı. “Kickstart” programını kapatmak için sağ üst köşede bulunan “File>Quit” yolunu izleyerek programdan çıkıyoruz.
22. Dosya transferi için kullanacağımız “TFTP Server” servisimizi yapılandırıyoruz.
-- TFTP Server yazılımını kuruyoruz. # yum install tftp-server -- TFTP Boot dosyamızı oluşturuyoruz. # mkdir /var/lib/tftpboot/pxelinux.cfg -- PXE Boot dosyamızı kopyalıyoruz. # cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ -- TFTP Servisini sunucumuz açılırken otomatik başlamasını sağlıyoruz. # chkconfig tftp on -- Birden fazla isteğe cevap verecek ‘Superdaemon" xinetd servisimizi başlatıyoruz. # service xinetd start -- Xinetd servisinin sunucumuz açılırken otomatik başlamasını sağlıyoruz. # chkconfig xinetd on
23. Kurulum işleminin başlayabilmesi ve kaynaklara erişebilmesi için kurulum yapılacak sunucumuzun önyükleme aşamasında bir IP adresi alabilmesi gerekmektedir. Bunun için sunucumuzda DHCP yapılandırmasını yapıyoruz. Eğer ortamımızda bir DHCP sunumuz var bunu kullanacaksak aşağıdaki yapılandırmayı yapıyoruz. Burada “filename pxelinux.0” ve “next-server 192.168.2.120” parametrelerini düzenliyoruz. Eğer kurulum hizmeti verecek sunucumuzun ayrı bir IP dağıtımı yapması ve kurulum sonrası ait olduğu ağ grubuna alınması düşünülüyorsa böyle bir durumda ağ anahtarı (switch) cihazı üzerinde bir “VLAN” tanımlaması yapılarak diğer ağ yapımızı etkilemeden kurulum yapılması sağlanabilir. Sunucumuzda “DHCP Server” yazılımını kuruyoruz.
# yum install dhcp
24. Sunucumuzda “DHCP Server” yapılandırma için kullanacağımız “/etc/dhcp/dhcpd.conf” dosyasında dağıtacağı IP aralığına göre aşağıdaki örnekte olduğu gibi düzenliyoruz.
# vim /etc/dhcp/dhcpd.conf -- Dosyamızı açıyoruz ve aşağıdaki gibi yapılandırıyoruz. Allow booting; Allow bootp; authoritative; subnet 192.168.2.0 netmask 255.255.255.0 { option routers 192.168.2.1; option subnet-mask 255.255.255.0; option domain-name "localdomain"; option domain-name-servers 192.168.2.1; default-lease-time 21600; max-lease-time 43200; range dynamic-bootp 192.168.2.100 192.168.2.253; filename "pxelinux.0"; next-server 192.168.2.120; }
25. Sunucumuzda “DHCP Server” servisini yaptığımız ayarlarla başlatıyoruz ve sunucumuz yeniden başladığında otomatik açılması için gerekli ayarımızı yapıyoruz.
# service dhcpd start
# chkconfig dhcpd on
26. Sunucumuzda yapılandırma için gerekli olan sembolik linkleri ve dosyalarımızı oluşturup kopyalıyoruz.
# mkdir -p /var/pxe/oel64 # ln -s /var/www/html/oel64 /var/pxe/oel64 # mkdir /var/lib/tftpboot/oel64 # cp /var/pxe/oel64/oel64/images/pxeboot/vmlinuz /var/lib/tftpboot/oel64 # cp /var/pxe/oel64/oel64/images/pxeboot/initrd.img /var/lib/tftpboot/oel64 # cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
27. Kurulum için bağlanacak sunucumuzda “Boot Menu” yapılandırması için aşağıdaki dosyamızı oluşturup içeriğini yazıyoruz.
# vim /var/lib/tftpboot/pxelinux.cfg/default timeout 100 default menu.c32 menu title ==== Boot Menu ==== label 1 menu label ^ 1) koraykey-pxe-server kernel oel64/vmlinuz append initrd=oel64/initrd.img ks=http://192.168.2.120/koraykey-pxe-server-ks.cfg ksdevice=eth0
28. Sunucumuzda oluşturmuş olduğumuz otomatik yapılandırma dosyamızda bir değişiklik yapmamız gerekirse aşağıdaki gibi dosyamızı açıp istediğimiz değişkeni yeniden düzenleyerek kaydetmemiz yeterlidir. Eğer grafik ekrandan düzenleyeceksek “Kickstart” yazılımını çalıştırıp File>Open File yolunu izleyerek dosyamızı çağırmamız yeterlidir.
# vim /var/www/html/koraykey-pxe-server-ks.cfg dosyamızı açıp değiştirmek istediklerimizi yeniden düzenleyerek kaydediyoruz. #platform=x86, AMD64, or Intel EM64T #version=DEVEL # Firewall configuration firewall --disabled # Use network installation url --url="http://192.168.2.120/oel64" # Root password rootpw --iscrypted $1$Ar.rcKDHFEHKL9zzcc2SDa51M8FM. # System authorization information auth --useshadow --passalgo=sha512 # Use graphical install graphical firstboot --disable # System keyboard keyboard trq # System language lang en_US # SELinux configuration selinux --disabled # Installation logging level logging --level=info # Reboot after installation reboot # System timezone timezone Europe/Istanbul # Network information network --bootproto=static --device=eth0 --gateway=192.168.2.1 --ip=192.168.2.130 --nameserver=192.168.2.1 --netmask=255.255.255.0 --onboot=on # System bootloader configuration bootloader --location=mbr # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all # Disk partitioning information part /boot --fstype="ext4" --size=500 part swap --fstype="swap" --size=4096 part / --fstype="ext4" --grow --size=1 %packages @additional-devel @base @basic-desktop @client-mgmt-tools @compat-libraries @console-internet @debugging @desktop-debugging @desktop-platform @development @fonts @general-desktop @graphical-admin-tools . . .
29. Sunucumuz hazır kurulum yapılacak sunucularımızı ağ önyüklemesi (Network Boot) yaparak kuruluma başlamasını sağlıyoruz.
30. Sunucumuz kuruluma başlıyor artık hiçbir şeye dokunmadan sunucumuz kurulacaktır.
Bu makalemizdeki “Linux İşletim Sistemlerinde Kickstart ile (Pxe) Ağ Kurulumunu” inceledik. Burada uygulanan adımlar “Oracle Enterprise Linux 6.4″ işletim sistemi üzerinde test edilmiştir. Diğer Linux dağıtımlarıyla uyumludur. Toplu kurulum yapılan ortamlarda işletim sistemini bu şekilde kurarak zaman kazanabilir ve kurulum işleminin bir standartta olmasını sağlayabiliriz.
Başka bir makalede görüşmek üzere…
Yorum yazabilmek için oturum açmalısınız.