KICKSTART無人值守安裝服務-學藝不精-請各位大神多多指正
實現原理
將手動安裝的所有詳細步驟記錄到一個文件中,然後有一種軟件通過讀取這個文件就可以實現自動化安裝系統;
工具
這個工具叫做kickstart,kickstart是RedHat公司開源的工具,所以對Centos兼容性最好,註意kickstart是一個項目的名稱,沒有這個軟件;
cobbler
cobbler是對kickstart的所有組件的封裝,本質上就是個網頁版本的kickstart;
kickstart的原理及組件
什麽是PXE
PXE,全名Pre-boot Execution Environment,預啟動執行環境;
通過網絡接口啟動計算機,不依賴本地存儲設備(如硬盤)或本地已安裝的操作系統;
PXE客戶端會調用網際協議(IP)、用戶數據報協議(UDP)、動態主機設定協議(DHCP)、小型文件傳輸協議(TFTP)等網絡協議;
原理圖:
環境準備:
[root@kickstart ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@kickstart ~]# uname -r 3.10.0-693.el7.x86_64 [root@kickstart ~]# getenforce Disabled [root@kickstart ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) [root@kickstart ~]# hostname -I 10.0.0.201 172.16.1.201
安裝DHCP服務
安裝DHCP
yum -y install dhcp
配置DHCP
cat >>/etc/dhcp/dhcpd.conf<<EOF subnet 172.16.1.0 netmask 255.255.255.0 { range 172.16.1.100 172.16.1.199; option subnet-mask 255.255.255.0; default-lease-time 21600; max-lease-time 43200; next-server 172.16.1.201; filename "/pxelinux.0"; } EOF
啟動dhcp查看日誌
[root@kickstart ~]# systemctl start dhcpd [root@kickstart ~]# systemctl status dhcpd tailf /var/log/messages
那些年我們踩過的坑(1)
新建空白虛擬機,建完後做快照
安裝TFTP服務
1 安裝
yum -y install tftp—server
2 啟動
systemctl start tftp.socket
那些年我們踩過的坑(2)
上面報錯是在TFTP服務的根目錄找不到啟動文件pxelinux.0
[root@kickstart ~]# cd /var/lib/tftpboot/ # TFTP服務的根目錄 [root@kickstart tftpboot]# ls [root@kickstart tftpboot]# yum -y install syslinux cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
那些年我們踩過的坑(3)
首先排除最簡單故障原因:selinux是否關閉,防火墻是否關閉
上面的錯誤是因為pxelinux.0這個小系統的配置文件(default)不存在,或者文件名不對;
那些年我們踩過的坑(4)
如何找到這個配置文件
第一步:掛載鏡像
第二步:
mkdir -p /var/www/html/CentOS7 mount /dev/cdrom /var/www/html/CentOS
第三步:從鏡像中找到相關的配置文件
cp -a /var/www/html/CentOS7/isolinux/* /var/lib/tftpboot/ mkdir -p /var/lib/tftpboot/pxelinux.cfg cp /var/www/html/CentOS7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
安裝HTTP服務
作用1:提供自動應答文件下載
作用2:提供安裝系統所需的所有rpm包下載
yum -y install httpd systemctl start httpd.service
檢查步驟
http://10.0.0.201/CentOS7/ curl http://172.16.1.201/CentOS7/
編輯default文件
append initrd=initrd.img method=http://172.16.1.201/CentOS7/ ----第一種方法 append initrd=initrd.img inst.repo=http://172.16.1.201/CentOS7/ ----第二種方法
編寫KS文件(包含安裝的所有步驟)
方法1:新裝CentOS系統/root/anaconda-ks.cfg
方法2:圖形CentOS系統提供的圖形工具
方法3:了解ks文件語法,編寫ks文件。(推薦)
KS文件語法
ks文件組成
命令段
包組段 以%packages開頭,以%end結束
腳本段 以%post開頭,以%end結束,在安裝完系統之後執行的相關Linux命令、腳本
以%pre開頭,以%end結束,在安裝完系統之前執行的相關Linux命令、腳本
kickstart文件語法檢查
yum install pykickstart ksvalidator /var/www/html/ks_config/CentOS-7-ks.cfg
請記住這個驗證工具有其局限性。Kickstart 文件可能會很復雜;ksvalidator 可保證其語法正確,且該文件不包含 淘汰的選項,但它無法保證安裝會成功。它也不會嘗試驗證 Kickstart 文件的 %pre、%post 和 %packages 部分。
root加密密碼生成
python -c 'import crypt; print(crypt.crypt("密碼"))'
開始自動安裝系統,enjoy!
附:KS配置文件
default配置
default ks prompt 0 label ks kernel vmlinuz append initrd=initrd.img ks=http://172.16.1.201/ks_config/CentOS7-ks.cfg net.ifnames=0 biosdevname=0 ksdevice=eth1
Centos7-ks.cfg
# Kickstart Configurator for CentOS 7 by MsyLinux install url --url="http://172.16.1.201/CentOS7/" text lang en_US.UTF-8 keyboard us zerombr bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" network --bootproto=static --device=eth0 --gateway=10.0.0.254 --ip=10.0.0.202 --nameserver=223.5.5.5 --netmask=255.255.255.0 --activate network --bootproto=static --device=eth1 --ip=172.16.1.202 --netmask=255.255.255.0 --activate network --hostname=Cobbler #network --bootproto=dhcp --device=eth1 --onboot=yes --noipv6 --hostname=CentOS7 timezone --utc Asia/Shanghai authconfig --enableshadow --passalgo=sha512 rootpw --iscrypted $6$X20eRtuZhkHznTb4$dK0BJByOSAWSDD8jccLVFz0CscijS9ldMWwpoCw/ZEjYw2BTQYGWlgKsn945fFTjRC658UXjuocwJbAjVI5D6/ clearpart --all --initlabel part /boot --fstype xfs --size 1024 part swap --size 1024 part / --fstype xfs --size 1 --grow firstboot --disable selinux --disabled firewall --disabled logging --level=info reboot %packages @^minimal @compat-libraries @debugging @development tree nmap sysstat lrzsz dos2unix telnet wget vim bash-completion %end %post systemctl disable postfix.service %end
下方博客是老男孩老師的博客,裏邊詳細的講解了kickstart在Centos6上的安裝過程及實踐過程,如有需要基於Centos6環境配置kickstart的小夥伴可以按照老師的博客進行安裝;
老男孩-Centos6環境kickstart配置
KICKSTART無人值守安裝服務-學藝不精-請各位大神多多指正