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了

 

posted @ 2017-11-06 18:29  闫新江  阅读(619)  评论(0编辑  收藏  举报