Configure Network Boot installation Server on CentOS 7.x
အခုပြောမယ့် အကြောင်းအရာ ကတော့ network ပေါ်ကနေ OS တင်မယ် ပေါ့နော်
အခု centos 7 မှာ server ထားမှာပါ ဘာ server လဲ PXE server (Preboot eXecution Environment) လို့ခေါ်ပါတယ် သူ့ရဲ့လုပ်ဆောင်ချက် က ဘာနဲ့တူလည်း window server မှာဆိုရင် WDS service နဲ့တူပါတယ် network ပေါ်က နေ boot process ကို လုပ်ဆောင်သွားမှာပါ
ဒါကိုလုပ်ချင်းဖြင့် အချိန်ကုန်တာတွေများကြီးသက်သာတဲ့အပြင် system admin တွေအတွက်အရမ်း အသုံးဝင်လို့ ပြောပြ ပေးတာဖြစ်ပါတယ်
အောက်မှာ လုပ်ပြထားတဲ့ အတိုင်း တစ်ဆင့်ချင်း လုပ်သွားရင်တော့ နောက်ဆုံး ရလဒ် ကောင်းတွေရမှာပါ
ကျွန်တော် setup ကတော့ အောက်ဖော်ပြပါအတိုင်းပဲဖြစ်ပါတယ်
- Server IP = 192.168.1.6
- Host name = bnntech.com
- OS = CentOS 7.x
- SELinux = enabled
- Firewall = enabled
Step:1 PXE server အတွက် လိုအပ်တဲ့ service တွေကို အောက်ဖော်ပြပါအတိုင်း install လုပ်ရမှာဖြစ်ပါတယ်
“dhcp, tftp-server, ftp server(vsftpd), xinted”
root@bnntech~# yum install dhcp tftp tftp-server syslinux vsftpd xinetd
Step:2 အနေနဲ့ PXE အတွက် DHCP server ကို configure လုပ်ရပါမယ်
DHCP server ကို install လုပ်ပြီးတာဖြစ်လို့ config file အသစ်တစ်ခု ကို တည်ဆောက်ပြီး configure လုပ်ရပါမယ် မိမိ နှစ်သက်ရာ editor တခုခု နဲ့ အခု လမ်းကြောင်းထဲ ကိုသွားပြီး ‘/etc/dhcp/dhcpd.conf’.ထဲသို့
အောက်က content တွေကို ကူးထည့်ပါ
root@bnntech~# vi /etc/dhcp/dhcpd.conf
# DHCP Server Configuration file.
ddns-update-style interim;
ignore client-updates;
authoritative;
allow booting;
allow bootp;
allow unknown-clients;
# internal subnet for my DHCP Server
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
option domain-name-servers 192.168.1.6;
option domain-name "bnntech.com";
option routers 192.168.1.6;
option broadcast-address 192.168.1.255;
default-lease-time 600;
max-lease-time 7200;
# IP of PXE Server
next-server 192.168.1.6;
filename "pxelinux.0";
}
Step:3 tftp server ကို Config လုပ်မှာဖြစ်ပါတယ် (/etc/xinetd.d/tftp)
TFTP (Trivial File Transfer Protocol ) ကို သုံးရခြင်းကတော့် ဘာ ခွင့်ပြုချက်မှမလို ပဲ server က data တွေကို client ဆီ transfer လုပ်နိုင်မှာ ဖြစ်ပါတယ် သူ့ကို configure လုပ်မယ်ဆိုရင် ‘ /etc/xinetd.d/tftp’,ထဲသို့သွားပြီး ‘disable = yes‘ ကို ‘disable = no’ လုပ်ပေးရမှာဖြစ်ပါတယ်
root@bnntech~# vi /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
အခုက network ကနေ boot အတွက် လိုအပ်တဲ့ဖိုင်တွေကို “/var/lib/tftpboot” ထဲသို အောက်ပါ command အတိုင်း လုပ်ဆောင်ရမှာဖြစ်ပါတယ်
root@bnntech~# cp -v /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot root@bnntech~# cp -v /usr/share/syslinux/menu.c32 /var/lib/tftpboot root@bnntech~# cp -v /usr/share/syslinux/memdisk /var/lib/tftpboot root@bnntech~# cp -v /usr/share/syslinux/mboot.c32 /var/lib/tftpboot root@bnntech~# cp -v /usr/share/syslinux/chain.c32 /var/lib/tftpboot root@bnntech~# root@bnntech~# mkdir /var/lib/tftpboot/pxelinux.cfg root@bnntech~# mkdir /var/lib/tftpboot/networkboot root@bnntech~#
Step:4 CentOS 7.x ISO file ကို mount ပြီး သူ့ထဲမှာရှိတဲ့ content တွေကို local ftp server ထဲသို့ပို့ရမှဖြစ်ပါတယ်
ကျွန်တော် က တော့ centos 7 ကို download လုပ်ပြီးသားဖြစ်လို့ mount ပြီး ဖော်ပြပါ လမ်းကြောင်းထဲသို့ copy ကူး ထည့် လိုက်တာဖြစ်ပါတယ် ‘/var/ftp/pub’ အောက် က command အတိုင်း လုပ်ဆောင်သွားပါ
root@bnntech~# mount -o loop CentOS-7-x86_64-DVD-1511.iso /mnt/ mount: /dev/loop0 is write-protected, mounting read-only root@bnntech~# cd /mnt/ root@bnntech/mnt# cp -av * /var/ftp/pub/
နောက်ထပ် Kernel fileတွေဖြစ်တဲ့ (vmlimz) and initrd file တွေကို mount လုပ်ထားတဲ့ iso file ထဲကနေ ‘/var/lib/tftpboot/networkboot/’ သို့ copy ကူးထည့် ပါ
root@bnntech~# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/networkboot/ root@bnntech~# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/networkboot/ root@bnntech~#
အိုကေ လုပ်ဆောင် ချက်ပြီးသွားပြီဆိုရင် mount ထားတဲ့ centos 7 ရှိတဲ့ /mnt ကို umount လုပ်လိုက်ပါ
root@bnntech~# umount /mnt/ root@bnntech~#
Step:5 PXE menu file အတွက် kickstart file ကို create လုပ်ရမှာပါ
kickstart file ကို create မလုပ်ခင်မှာ ပထမ ဆုံး string encrypt ထဲမှာ root password ကို ထည့်ရမှာပါ
ကျနော့် password က 123456
root@bnntech~# openssl passwd -1 123456 $1$e2wrcGGX$tZPQKPsXVhNmbiGg53MN41 root@bnntech~#
System default kickstart file ဟာ ‘anaconda-ks.cfg’ အမည် ဖြင့် /root အောက်မှာရှိပါတယ် ကျွန်တော်တို့ အသစ် kickstart ဖိုင်ကို /var/ftp/pub အောက်မှာ ‘centos7.cfg’ဖြင့် ဆောက်မှာပါ ဖြစ်ပြီး လိုအပ်တဲ့ content တွေ ကို အောက်ဖော်ပြပါအတိုင်းကူးထည့်ပါ
root@bnntech~# vi /var/ftp/pub/centos7.cfg #platform=x86, AMD64, or Intel EM64T #version=DEVEL # Firewall configuration firewall --disabled # Install OS instead of upgrade install # Use FTP installation media url --url="ftp://192.168.1.6/pub/" # Root password rootpw --iscrypted $1$e2wrcGGX$tZPQKPsXVhNmbiGg53MN41 # System authorization information auth useshadow passalgo=sha512 # Use graphical install graphical firstboot disable # System keyboard keyboard us # System language lang en_US # SELinux configuration selinux disabled # Installation logging level logging level=info # System timezone timezone Europe/Amsterdam # System bootloader configuration bootloader location=mbr clearpart --all --initlabel part swap --asprimary --fstype="swap" --size=1024 part /boot --fstype xfs --size=300 part pv.01 --size=1 --grow volgroup root_vg01 pv.01 logvol / --fstype xfs --name=lv_01 --vgname=root_vg01 --size=1 --grow %packages @^minimal @core %end %addon com_redhat_kdump --disable --reserve-mb='auto' %end
PXE menu file ကို ဒီလမ်းကြောင်း ထဲသို့ (/var/lib/tftpboot/pxelinux.cfg/default),အောက်ဖော်ပြပါ PXE file ထဲသို့ကူးထည့်ပါ
root@bnntech~# vi /var/lib/tftpboot/pxelinux.cfg/default default menu.c32 prompt 0 timeout 30 MENU TITLE LinuxTechi.com PXE Menu LABEL centos7_x64 MENU LABEL CentOS 7_X64 KERNEL /networkboot/vmlinuz APPEND initrd=/networkboot/initrd.img inst.repo=ftp://192.168.1.6/pub ks=ftp://192.168.1.6/pub/centos7.cfg
Step:6 ဒီ services တွေကို စမယ် restart ချပြီးလို့ ပြန်တက်လာ ရင် လည်း အလုပ်လုပ်နေအောင် enable လုပ်ကြတာပေါ့ xinetd, dhcp and vsftpd service.
root@bnntech~# systemctl start xinetd root@bnntech~# systemctl enable xinetd root@bnntech~# systemctl start dhcpd.service root@bnntech~# systemctl enable dhcpd.service Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service. root@bnntech~# root@bnntech~# systemctl start vsftpd root@bnntech~# systemctl enable vsftpd Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service. root@bnntech~#
SELinux ကို enable လုပ်ထားတာဖြစ်တာကြောင့် full access ရအောင် ဖွင့်ပေးရပါမယ်
root@bnntech~# setsebool -P allow_ftpd_full_access 1 root@bnntech~#
firewall-cmd commands ကို သုံးပြီးတော့လည်း firewall မှာ သက်ဆိုင်ရာ port တွေ service တွေကို add ရမှာဖြစ်ပါတယ် (ချီးထုတ်ကြီး နော်သတိထားပါ)
root@bnntech~# firewall-cmd --add-service=ftp --permanent success root@bnntech~# firewall-cmd --add-service=dhcp --permanent success root@bnntech~# firewall-cmd --add-port=69/tcp --permanent success root@bnntech~# firewall-cmd --add-port=69/udp --permanent success root@bnntech~# firewall-cmd --add-port=4011/udp --permanent success root@bnntech~# firewall-cmd --reload success root@bnntech~#
အပေါ်က ကိစ္စ တွေပြီးဆို ရင် install လုပ်တာနဲ configure လုပ်တာနဲ့ ပြီးပြီ ဆိုတော့ ……..
Step:7 PXE server ကိုသုံးပြီး client ဘက်က Network option လေးရွေးပြီး boot တက်ကြည့်တာ က အောက်မှာတွေ့ရမယ့် ပုံ အတိုင်းပါပဲ


