linux运维、架构之路-Kickstart无人值守
一、PXE介绍
PXE全名Pre-boot Execution Environment,预启动执行环境;通过网络接口启动计算机,不依赖本地存储设备或本地已安装的操作系统;Client/Server的工作模式
二、PXE+Kickstart无人值守过程
三、PXE+Kickstart实现自动化安装系统
1、环境
[root@m01 ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@m01 ~]# uname -r 2.6.32-696.el6.x86_64 [root@m01 ~]# /etc/init.d/iptables status iptables: Firewall is not running. [root@m01 ~]# getenforce Disabled [root@m01 ~]# hostname -I 10.0.0.61 172.16.1.61
2、配置DHCP服务
yum install dhcp -y #安装DHCP服务 cat >>/etc/dhcp/dhcpd.conf<<EOF subnet 172.16.1.0 netmask 255.255.255.0 { range 172.16.1.120 172.16.1.200; #可分配的地址池 option subnet-mask 255.255.255.0; #子网掩码 default-lease-time 21600; #默认IP租用期限 max-lease-time 43200; #默认最大的IP租用期限 next-server 172.16.1.61; #指明tftp服务器的IP地址 filename "/pxelinux.0"; #告知客户端从TFTP根目录下载pxelinux.0文件 } EOF [root@m01 ~]# /etc/init.d/dhcpd start Starting dhcpd: [ OK ] [root@m01 ~]# lsof -i:67 #检查dhcp服务是否启动 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME dhcpd 27302 dhcpd 7u IPv4 132009 0t0 UDP *:bootps
3、配置tftp服务
[root@m01 ~]# yum -y install tftp-server [root@m01 ~]# sed -i '14s#yes#no#' /etc/xinetd.d/tftp [root@m01 ~]# /etc/init.d/xinetd start Starting xinetd: [ OK ] [root@m01 ~]# lsof -i:69 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME xinetd 27339 root 5u IPv4 132413 0t0 UDP *:tftp
4、配置HTTP服务
[root@m01 ~]# yum -y install httpd sed -i "277i ServerName 127.0.0.1:80" /etc/httpd/conf/httpd.conf #去掉提示信息 [root@m01 ~]# /etc/init.d/httpd start Starting httpd: [ OK ] [root@m01 ~]# mkdir -p /var/www/html/CentOS6.9 #创建镜像目录 [root@m01 ~]# mount /dev/cdrom /var/www/html/CentOS6.9 #挂载光盘到镜像目录 mount: block device /dev/sr0 is write-protected, mounting read-only [root@m01 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 6.9G 1.8G 4.8G 27% / tmpfs 242M 0 242M 0% /dev/shm /dev/sda1 190M 34M 146M 19% /boot /dev/sr0 3.7G 3.7G 0 100% /var/www/html/CentOS6.9
5、配置PXE启动需要的文件
yum -y install syslinux #为了使用pxelinux.0而安装的包 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #复制pxe启动文件 cp -a /var/www/html/CentOS6.9/isolinux/* /var/lib/tftpboot/ #从镜像中复制相关文件 mkdir -p /var/lib/tftpboot/pxelinux.cfg cp /var/www/html/CentOS6.9/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default [root@m01 tftpboot]# ll /var/lib/tftpboot/ total 45356 -r--r--r-- 1 root root 2048 Mar 29 2017 boot.cat -r--r--r-- 1 root root 84 Mar 29 2017 boot.msg -r--r--r-- 1 root root 321 Mar 29 2017 grub.conf -r--r--r-- 1 root root 41587792 Mar 29 2017 initrd.img -r--r--r-- 1 root root 24576 Mar 29 2017 isolinux.bin -r--r--r-- 1 root root 923 Mar 29 2017 isolinux.cfg #修改此文件可以定制安装系统界面 -r--r--r-- 1 root root 183012 Mar 29 2017 memtest -rw-r--r-- 1 root root 26759 Oct 11 05:56 pxelinux.0 drwxr-xr-x 2 root root 4096 Oct 11 05:56 pxelinux.cfg -r--r--r-- 1 root root 151230 Mar 29 2017 splash.jpg -r--r--r-- 1 root root 2215 Mar 29 2017 TRANS.TBL -r--r--r-- 1 root root 163728 Mar 29 2017 vesamenu.c32 -r-xr-xr-x 1 root root 4274992 Mar 29 2017 vmlinuz
此时打开浏览器输入
6、配置ks.cfg文件
[root@m01 ks_config]# mkdir /var/www/html/ks_config/ -p [root@m01 ks_config]# grub-crypt #设置加密密码 Password: Retype password: $6$3SU6kWgqSBiRVqre$w8L3Tll51SaEWzxyOBDb8AxIT468hMj0hwmQXqAx1ozQKn3rXHRB7hvp6BewtFRlqljqCmTVvaGje5DQVNNXZ. [root@m01 ks_config]# vi /var/www/html/ks_config/CentOS-6.9-ks.cfg # Kickstart Configurator for CentOS 6.9 by yan xinjiang install url --url="http://172.16.1.61/CentOS6.9/" text lang en_US.UTF-8 keyboard us zerombr bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" network --bootproto=dhcp --device=eth1 --onboot=yes --noipv6 --hostname=CentOS6 timezone --utc Asia/Shanghai authconfig --enableshadow --passalgo=sha512 rootpw --iscrypted $6$X20eRtuZhkHznTb4$dK0BJByOSAWSDD8jccLVFz0CscijS9ldMWwpoCw/ZEjYw2BTQYG WlgKsn945fFTjRC658UXjuocwJbAjVI5D6/ clearpart --all --initlabel [root@m01 ks_config]# cat /var/www/html/ks_config/CentOS-6.9-ks.cfg # Kickstart Configurator for CentOS 6.7 by yao zhang install url --url="http://172.16.1.61/CentOS6.9/" text lang en_US.UTF-8 keyboard us zerombr bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" network --bootproto=dhcp --device=eth1 --onboot=yes --noipv6 --hostname=CentOS6 timezone --utc Asia/Shanghai authconfig --enableshadow --passalgo=sha512 rootpw --iscrypted $6$X20eRtuZhkHznTb4$dK0BJByOSAWSDD8jccLVFz0CscijS9ldMWwpoCw/ZEjYw2BTQYGWlgKsn945fFTjRC658UXjuocwJbAjVI5D6/ clearpart --all --initlabel part /boot --fstype=ext4 --asprimary --size=200 part swap --size=1024 part / --fstype=ext4 --grow --asprimary --size=200 firstboot --disable selinux --disabled firewall --disabled logging --level=info reboot %packages #选择安装系统需要的一些库和安装包 @base @compat-libraries @debugging @development tree nmap sysstat lrzsz dos2unix telnet %post #可以放安装执行的脚本,可以把自己的优化放在其中 wget -O /tmp/optimization.sh http://172.16.1.61/ks_config/optimization.sh &>/dev/null /bin/sh /tmp/optimization.sh %end
7、配置default文件
[root@m01 ks_config]# cat /var/lib/tftpboot/pxelinux.cfg/default default ks prompt 0 label ks kernel vmlinuz append initrd=initrd.img ks=http://172.16.1.61/ks_config/CentOS-6.9-ks.cfg ksdevice=eth1 #告诉安装程序ks.cfg文件在哪里 ksdevice=eth1#指定从eth1网卡安装,不指定的话会让你选择
8、完成无人值守自动安装系统
打开系统电源,喝个小茶,上个厕所回来系统就OK了
成功最有效的方法就是向有经验的人学习!