Linux İşletim Sistemlerinde Kickstart ile Ağ Kurulumu (Pxe Server)

LinuxAllBu 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.

OelPxeInstall_1

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.

OelPxeInstall_2

9. Karşımıza gelen “Installation Method” ekranında seçenekleri aşağıdaki gibi veya kendi sistemimize göre yapılandırıyoruz.

OelPxeInstall_3

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.

OelPxeInstall_4

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.

OelPxeInstall_5

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.

OelPxeInstall_6

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.

OelPxeInstall_7

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.

OelPxeInstall_8

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.

OelPxeInstall_9

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.

OelPxeInstall_10Eğ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.

OelPxeInstall_11

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.

OelPxeInstall_12

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.

OelPxeInstall_13

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.

OelPxeInstall_14

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.

OelPxeInstall_15

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.

OelPxeInstall_16

30. Sunucumuz kuruluma başlıyor artık hiçbir şeye dokunmadan sunucumuz kurulacaktır.

OelPxeInstall_17OelPxeInstall_18

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…

Bu yazı Unix / Linux kategorisine gönderilmiş ve , , , , , , , , , , , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.