RHEL7下PXE+NFS+Kickstart無人值守安裝操作系統 1.配置yum源 vim /etc/yum.repos.d/development.repo [development] name=yum server baseurl=file:///mnt enabled=1 gpgcheck= ...
RHEL7下PXE+NFS+Kickstart無人值守安裝操作系統 1.配置yum源 vim /etc/yum.repos.d/development.repo [development] name=yum server baseurl=file:///mnt enabled=1 gpgcheck=0 2.掛載光碟 mount /dev/sr0 /mnt 3.安裝相關軟體包 yum install dhcp syslinux xinetd tftp-server 4.配置dhcp vim /etc/dhcp/dhcpd.conf 5.添加內容 subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.50 192.168.1.90; option domain-name-servers 192.168.1.1; option domain-name "internal.example.org"; option routers 192.168.1.1; option broadcast-address 192.168.1.255; next-server 192.168.1.30; filename "pxelinux.0"; default-lease-time 600; max-lease-time 7200; } 6.啟動服務和開機自啟動 systemctl start dhcpd.service systemctl enable dhcpd.service 7.複製啟動文件 cd /var/lib/tftpboot/ #進入/var/lib/tftpboot/ cp /mnt/isolinux/initrd.img /var/lib/tftpboot #複製initrd.img到/var/lib/tftpboot目錄下 cp /mnt/isolinux/vmlinuz /var/lib/tftpboot/ #複製vmlinuz到/var/lib/tftpboot目錄下 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #複製pxelinux.0到/var/lib/tftpboot目錄下 cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/ #複製vesamenu.c32到/var/lib/tftpboot目錄下 cp /mnt/isolinux/boot.msg /var/lib/tftpboot/ #複製boot.msg到/var/lib/tftpboot目錄下 cd /var/lib/tftpboot/ #進入/var/lib/tftpboot目錄下 mkdir pxelinux.cfg #在/var/lib/tftpboot目錄下創建pxelinux.cfg目錄 cd pxelinux.cfg/ #進入pxelinux.cfg目錄下 cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #複製isolinux.cfg到pxelinux.cfg目錄下並命名為default vim default #在/var/lib/tftpboot/pxelinux.cfg目錄下修改default文件 label PXE-linux menu label ^Install System from PXE-RHEL7.0 kernel vmlinuz append initrd=initrd.img ks=nfs://192.168.1.30/rhel7/ks.cfg ksdevice=eno16777736 ip=dhcp quiet 8.配置tftp-server syslinux vim /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 } 9.啟動服務和開機自啟動 systemctl start xinetd.service systemctl enable xinetd.service 10.安裝配置NFS yum -y install nfs* #安裝nfs服務 mkdir /rhel7 #根下創建安裝文件目錄 cd /rhel7 #進入RHEL7.0目錄 cp -rf /mnt/* /rhel7/ #複製光碟內容到rhel7目錄下 vim /etc/exports #nfs共用系統文件 /rhel7 192.168.1.0/24(rw,sync,no_root_squash,no_all_squash) 11.啟動服務 systemctl start nfs-server systemctl enable nfs-server 12.無圖形界面配置kickstart一鍵安裝應答文件 vim /rhel7/ks.cfg #platform=x86, AMD64, 或 Intel EM64T #version=DEVEL # Install OS instead of upgrade install # Keyboard layouts keyboard 'us'# Reboot after installation reboot # Root password rootpw --iscrypted $1$FyasdJen$q2zUDfVq.ln1FmIlP8O/m0 //root密碼為7788521 # System timezone timezone Asia/Shanghai # System language lang en_US # Firewall configuration firewall --disabled # Network information network --bootproto=dhcp --device=eno16777736 # System authorization information auth --useshadow --passalgo=sha512 # Use graphical install graphical firstboot --disable # SELinux configuration selinux --disabled # Use NFS installation media nfs --server=192.168.1.30 --dir=/rhel7 # System bootloader configuration bootloader --location=mbr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part /boot --asprimary --fstype="xfs" --size=500 part swap --asprimary --fstype="swap" --size=2048 part / --asprimary --fstype="xfs" --size=10240 part /home --fstype="xfs" --grow --size=1 %packages @base @core @desktop-debugging @dial-up @fonts @gnome-desktop @guest-agents @guest-desktop-agents @input-methods @internet-browser @kde-desktop @multimedia @print-client @x11 %end 圖形化系統可以安裝Kickstart yum -y install system-config-kickstart.noarch system-config-kickstart 13.修改SELinux狀態 vim /etc/sysconfig/selinux SELINUX=disabled 14.開放防火牆服務和埠 firewall-cmd --permanent --add-service=dhcp firewall-cmd --permanent --add-service=nfs firewall-cmd --permanent --add-port=69/udp firewall-cmd --permanent --add-port=111/tcp firewall-cmd --permanent --add-port=111/udp firewall-cmd --permanent --add-port=20048/tcp firewall-cmd --permanent --add-port=20048/udp firewall-cmd --reload
配置文件詳細內容 1.dhcpd.conf文件內容 [root@localhost tftpboot]# cat /etc/dhcp/dhcpd.conf subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.50 192.168.1.90; option domain-name-servers 192.168.1.1; option domain-name "internal.example.org"; option routers 192.168.1.1; option broadcast-address 192.168.1.255; next-server 192.168.1.30; filename "pxelinux.0"; default-lease-time 600; max-lease-time 7200; } 2.tftp文件內容 [root@localhost tftpboot]# cat /etc/xinetd.d/tftp # default: off # description: The tftp server serves files using the trivial file transfer \ # protocol. The tftp protocol is often used to boot diskless \ # workstations, download configuration files to network-aware printers, \ # and to start the installation process for some operating systems. 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 } 3.default文件內容 [root@localhost tftpboot]# cat /var/lib/tftpboot/pxelinux.cfg/default default vesamenu.c32 timeout 600 display boot.msg # Clear the screen when exiting the menu, instead of leaving the menu displayed. # For vesamenu, this means the graphical background is still displayed without # the menu itself for as long as the screen remains in graphics mode. menu clear menu background splash.png menu title Red Hat Enterprise Linux 7.0 menu vshift 8 menu rows 18 menu margin 8 #menu hidden menu helpmsgrow 15 menu tabmsgrow 13 # Border Area menu color border * #00000000 #00000000 none # Selected item menu color sel 0 #ffffffff #00000000 none # Title bar menu color title 0 #ff7ba3d0 #00000000 none # Press [Tab] message menu color tabmsg 0 #ff3a6496 #00000000 none # Unselected menu item menu color unsel 0 #84b8ffff #00000000 none # Selected hotkey menu color hotsel 0 #84b8ffff #00000000 none # Unselected hotkey menu color hotkey 0 #ffffffff #00000000 none # Help text menu color help 0 #ffffffff #00000000 none # A scrollbar of some type? Not sure. menu color scrollbar 0 #ffffffff #ff355594 none # Timeout msg menu color timeout 0 #ffffffff #00000000 none menu color timeout_msg 0 #ffffffff #00000000 none # Command prompt text menu color cmdmark 0 #84b8ffff #00000000 none menu color cmdline 0 #ffffffff #00000000 none # Do not display the actual menu unless the user presses a key. All that is displayed is a timeout message. menu tabmsg Press Tab for full configuration options on menu items. menu separator # insert an empty line menu separator # insert an empty line label PXE-linux menu label ^Install System from PXE-RHEL7.0 kernel vmlinuz append initrd=initrd.img ks=nfs://192.168.1.30/rhel7/ks.cfg ksdevice=eno16777736 ip=dhcp quiet label linux menu label ^Install Red Hat Enterprise Linux 7.0 kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.0\x20Server.x86_64 quiet label check menu label Test this ^media & install Red Hat Enterprise Linux 7.0 menu default kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.0\x20Server.x86_64 rd.live.check quiet menu separator # insert an empty line # utilities submenu menu begin ^Troubleshooting menu title Troubleshooting label vesa menu indent count 5 menu label Install Red Hat Enterprise Linux 7.0 in ^basic graphics mode text help Try this option out if you're having trouble installing Red Hat Enterprise Linux 7.0. endtext kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.0\x20Server.x86_64 xdriver=vesa nomodeset quiet label rescue menu indent count 5 menu label ^Rescue a Red Hat Enterprise Linux system text help If the system will not boot, this lets you access files and edit config files to try to get it booting again. endtext kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.0\x20Server.x86_64 rescue quiet label memtest menu label Run a ^memory test text help If your system is having issues, a problem with your system's memory may be the cause. Use this utility to see if the memory is working correctly. endtext kernel memtest menu separator # insert an empty line label local menu label Boot from ^local drive localboot 0xffff menu separator # insert an empty line menu separator # insert an empty line label returntomain menu label Return to ^main menu menu exit menu end 4.ks.cfg文件內容 [root@localhost tftpboot]# cat /rhel7/ks.cfg #platform=x86, AMD64, 或 Intel EM64T #version=DEVEL # Install OS instead of upgrade install # Keyboard layouts keyboard 'us'# Reboot after installation reboot # Root password rootpw --iscrypted $1$FyasdJen$q2zUDfVq.ln1FmIlP8O/m0 # System timezone timezone Asia/Shanghai # System language lang en_US # Firewall configuration firewall --disabled # Network information network --bootproto=dhcp --device=eno16777736 # System authorization information auth --useshadow --passalgo=sha512 # Use graphical install graphical firstboot --disable # SELinux configuration selinux --disabled # Use NFS installation media nfs --server=192.168.1.30 --dir=/rhel7 # System bootloader configuration bootloader --location=mbr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part /boot --asprimary --fstype="xfs" --size=500 part swap --asprimary --fstype="swap" --size=2048 part / --asprimary --fstype="xfs" --size=10240 part /home --fstype="xfs" --grow --size=1 %packages @base @core @desktop-debugging @dial-up @fonts @gnome-desktop @guest-agents @guest-desktop-agents @input-methods @internet-browser @kde-desktop @multimedia @print-client @x11 %end 5.tftpboot目錄下的文件 [root@localhost tftpboot]# pwd /var/lib/tftpboot [root@localhost tftpboot]# ll 總用量 39688 -rw-r--r--. 1 root root 74 6月 4 17:10 boot.msg -r--r--r-- 1 root root 35544564 6月 4 17:28 initrd.img -rw-r--r-- 1 root root 26460 6月 4 17:29 pxelinux.0 drwxr-xr-x. 2 root root 20 6月 4 17:10 pxelinux.cfg -r--r--r-- 1 root root 155792 6月 4 17:33 vesamenu.c32 -r-xr-xr-x 1 root root 4902000 6月 4 17:28 vmlinuz 6.pxelinux.cfg目錄下的文件 [root@localhost pxelinux.cfg]# pwd /var/lib/tftpboot/pxelinux.cfg [root@localhost pxelinux.cfg]# ll 總用量 4 -r--r--r--. 1 root root 3343 6月 4 17:10 default