1. 程式人生 > >linux運維、架構之路-Kickstart無人值守

linux運維、架構之路-Kickstart無人值守

text not pat eve ftp服務 boa 修改 vmlinuz clear

一、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

8、完成無人值守自動安裝系統

打開系統電源,喝個小茶,上個廁所回來系統就OK了

技術分享

技術分享

linux運維、架構之路-Kickstart無人值守