系统自动化安装kickstart
自動(dòng)化安裝的方法:
Kickstart
Cobbler
1.簡(jiǎn)介
1.1 什么是PXE
PXE,全名Pre-boot Execution Environment,預(yù)啟動(dòng)執(zhí)行環(huán)境;
通過(guò)網(wǎng)絡(luò)接口啟動(dòng)計(jì)算機(jī),不依賴(lài)本地存儲(chǔ)設(shè)備(如硬盤(pán))或本地已安裝的操作系統(tǒng);
由Inter和Systemsoft公司于1999年9月20日公布的技術(shù);
Client/Server的工作模式;
PXE客戶(hù)端會(huì)調(diào)用網(wǎng)絡(luò)協(xié)議(IP)、用戶(hù)數(shù)據(jù)協(xié)議(UDP)、動(dòng)態(tài)主機(jī)設(shè)定協(xié)議(DHCP)、小型文件傳輸協(xié)議(TFTP)等網(wǎng)絡(luò)協(xié)議;
PXE客戶(hù)端(Client)這個(gè)術(shù)語(yǔ)是指機(jī)器在PXE啟動(dòng)過(guò)程中的角色,一個(gè)PXE客戶(hù)端可以是一臺(tái)服務(wù)器,筆記本電腦或其他裝有PXE啟動(dòng)代碼的機(jī)器我們電腦的網(wǎng)卡)。
1.2PXE的工作過(guò)程
PXE+Kickstart無(wú)人值守安裝操作系統(tǒng)完成過(guò)程
PXE工作示意圖
PXE Client向DHCP發(fā)送請(qǐng)求
PXE Client從指甲的PXE網(wǎng)卡啟動(dòng),通過(guò)PXE BootROM(自啟動(dòng)芯片)會(huì)以UDP(簡(jiǎn)單用戶(hù)數(shù)據(jù)報(bào)協(xié)議)發(fā)送一個(gè)廣播請(qǐng)求,向本 網(wǎng)絡(luò)中的DHCP服務(wù)器索取IP
DHCP服務(wù)器提供信息
DHCP服務(wù)器接收到客戶(hù)端的請(qǐng)求,驗(yàn)證是否來(lái)自合法的PXE Client的請(qǐng)求,驗(yàn)證通過(guò)它將給客戶(hù)端一個(gè)“提供”響應(yīng),這個(gè)“提供”響應(yīng)中包含了為客戶(hù)端分配的IP地址、pxelinux啟動(dòng)程序(TFTP)位置,以及配置文件所在位置。
PXE客戶(hù)端請(qǐng)求下載啟動(dòng)文件
客戶(hù)端收到服務(wù)器的“回應(yīng)”后,會(huì)回應(yīng)一個(gè)幀,以請(qǐng)求傳送啟動(dòng)所需文件,這些啟動(dòng)文件包括:(pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img)等文件。
Boot Server響應(yīng)客戶(hù)端請(qǐng)求并傳送文件
當(dāng)服務(wù)器收到客戶(hù)端的請(qǐng)求后,他們之間之后將由更多的信息再客戶(hù)端與服務(wù)器之間作應(yīng)答,用以決定啟動(dòng)參數(shù)。BootROM由TFTP通訊協(xié)議從Boot Server下周啟動(dòng)安裝程序所需的文件(pxelinux0、pxelinux.conf/default)。default文件下載完成后,會(huì)根據(jù)該文件中定義的引導(dǎo)順序,啟動(dòng)linux安裝程序引導(dǎo)內(nèi)核
請(qǐng)求下載自動(dòng)應(yīng)答文件
客戶(hù)端通過(guò)(pxelinux.cfg/default)文件成功的引導(dǎo)Linux安裝內(nèi)核后,安裝程序首先必須確定你通過(guò)什么安裝介質(zhì)來(lái)安裝linux,如果是通過(guò)網(wǎng)絡(luò)安裝(NFS,FTP,HTTP),則會(huì)在這個(gè)時(shí)候初始化網(wǎng)絡(luò),并定位安裝源位置,接著會(huì)讀取default文件中指定的自動(dòng)應(yīng)答文件ks.cfg所在位置,根據(jù)該位置請(qǐng)求下載該文件。
這里有個(gè)問(wèn)題,在第2部和第5部初始化2次網(wǎng)絡(luò)了,這是由于PXE獲取的是安裝用的內(nèi)核以及安裝程序等,而安裝程序要獲取的是安 裝系統(tǒng)所需的二進(jìn)制包
以及配置文件,因此PXE模塊和安裝程序時(shí)相對(duì)獨(dú)立的,PXE的網(wǎng)絡(luò)配置并不能傳遞給安裝程序,從而進(jìn)行兩次 獲取IP地址過(guò)程,但I(xiàn)P地址在DHCP租期是
一樣的。
將ks.cfg文件下載回來(lái)后,通過(guò)該文件找到OS Server,并按照該文件的配置請(qǐng)求下載安裝過(guò)程需要的軟件包,OS Server和安裝端建立連接后,將開(kāi)始傳輸軟件包,客戶(hù)端將開(kāi)始安裝操作系統(tǒng),安裝完成后,將提示重新引導(dǎo)計(jì)算機(jī)。
1.3 批量裝機(jī)軟件介紹
Redhat系統(tǒng)主要由兩種Kickstart和Cobbler。
Kickstart是一種無(wú)人值守的安裝方式,它的工作原理是在安裝過(guò)程中記錄人工干預(yù)填寫(xiě)的各種參數(shù),并生成一個(gè)名叫ks.cfg的文件。如果在自動(dòng)安裝過(guò)程中出現(xiàn)要填寫(xiě)的情況,安裝程序首先會(huì)去查找ks.cfg文件,如果找到合適的參數(shù),就采用所找到的參數(shù);如果沒(méi)有找到合適的參數(shù),便會(huì)彈出對(duì)話(huà)框讓安裝者手工填寫(xiě),所以,如果ks.cfg文件涵蓋了安裝過(guò)程中所有需要填寫(xiě)的參數(shù),那么安裝者完全可以只告訴安裝程序從何處下載ks.cfg文件,然后就去忙自己的事情,等安裝完畢,安裝程序會(huì)根據(jù)ks.cfg中的設(shè)置重啟/關(guān)閉系統(tǒng),并結(jié)束安裝。
Cobbler幾種和簡(jiǎn)化了通過(guò)網(wǎng)絡(luò)安裝操作系統(tǒng)所需要使用到的DHCP、TFTP和DNS服務(wù)的配置。Cobbler不僅有一個(gè)命令行界面,還提供了一個(gè)Web界面,大大降低了使用者的入門(mén)水平,Cobbler內(nèi)置了一個(gè)輕量級(jí)配置管理系統(tǒng),但它也支持和其它配置管理系統(tǒng)集成,如Puppet,暫時(shí)不支持SaltStack。
簡(jiǎn)單的說(shuō),Cobbler是對(duì)kickstart的封裝,簡(jiǎn)化安裝步驟,使用流程,降低使用者的門(mén)檻。
1.4 系統(tǒng)環(huán)境準(zhǔn)備
[root@linux-node1 ~]# cat /etc/redhat-release CentOS release 6.6 (Final) [root@linux-node1 ~]# uname -r 2.6.32-504.el6.x86_64 [root@linux-node1 ~]# getenforce Disabled [root@linux-node1 ~]# /etc/init.d/iptables status iptables: Firewall is not running. [root@linux-node1 ~]# hostname linux-node1.example.com [root@linux-node1 ~]# vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=linux-node1.example.com [root@linux-node1 ~]# hostname -I 172.16.100.10 192.168.190.1282.1 DHCP簡(jiǎn)介
DHCP(Dynamic Host Configuration Protocol,動(dòng)態(tài)主機(jī)配置協(xié)議) 通常被應(yīng)用在大型的局域網(wǎng)絡(luò)環(huán)境中,主要作用是集中的管理、分配IP地址,使網(wǎng)絡(luò)環(huán)境中的主機(jī)動(dòng)態(tài)的獲取IP地址、網(wǎng)關(guān)地址、DNS服務(wù)器地址等信息,并能夠提升地址的使用率。
DHCP工作過(guò)程的六個(gè)主要步驟
2.2 DHCP服務(wù)安裝配置
[root@linux-node1 ~]# yum -y install dhcp [root@linux-node1 ~]# rpm -ql dhcp /etc/dhcp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd6.conf [root@linux-node1 ~]# cat /etc/dhcp/dhcpd.conf # # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.sample # see 'man 5 dhcpd.conf' # [root@linux-node1 ~]# vim /etc/dhcp/dhcpd.conf subnet 172.16.100.0 netmask 255.255.255.0 {range 172.16.100.30 172.16.100.80;option subnet-mask 255.255.255.0;default-lease-time 21600;max-lease-time 43200;next-server 172.16.100.10;filename "/pxelinux.0"; } # 注釋 range 172.16.100.30 172.16.100.80; # 可分配的起始IP-結(jié)束IP option subnet-mask 255.255.255.0; # 設(shè)定netmask default-lease-time 21600; # 設(shè)置默認(rèn)的IP租用期限 max-lease-time 43200; # 設(shè)置最大的IP租用期限 next-server 172.16.0.10; # 告知客戶(hù)端TFTP服務(wù)器的ip filename "/pxelinux.0"; # 告知客戶(hù)端從TFTP根目錄下載pxelinux.0文件 [root@linux-node1 ~]# /etc/init.d/dhcpd start Starting dhcpd: [ OK ] [root@linux-node1 ~]# netstat -tunlp | grep dhcp udp 0 0 0.0.0.0:67 0.0.0.0:* 3730/dhcpd本來(lái)軟件裝完后都要加入開(kāi)機(jī)自啟動(dòng),但這個(gè)Kickstart系統(tǒng)就不能開(kāi)機(jī)自啟動(dòng),而且用完后服務(wù)都要關(guān)閉,防止未來(lái)重啟服務(wù)器自動(dòng)重裝系統(tǒng)了。
如果機(jī)器數(shù)量過(guò)多的話(huà),主要dhcp服務(wù)器的地址池,不要因?yàn)楹谋MIP而導(dǎo)致dhcpd服務(wù)器沒(méi)有IP地址release的情況。
3.1 TFTP簡(jiǎn)介
TFTP(Trivial File Transfer Protocl,簡(jiǎn)單文件傳輸協(xié)議)是TCP/IP協(xié)議族中的一個(gè)用來(lái)在客戶(hù)機(jī)與服務(wù)器之間進(jìn)行簡(jiǎn)單文件傳輸?shù)膮f(xié)議,提供不復(fù)雜、開(kāi)銷(xiāo)不大的文件傳輸服務(wù)。端口號(hào)為69。
3.2 TFTP安裝配置
[root@linux-node1 ~]# yum -y install tftp-server [root@linux-node1 ~]# vim /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 = dgramprotocol = udpwait = yesuser = rootserver = /usr/sbin/in.tftpdserver_args = -s /var/lib/tftpbootdisable = noper_source = 11cps = 100 2flags = IPv4 } [root@linux-node1 ~]# /etc/init.d/xinetd restart Stopping xinetd: [ OK ] Starting xinetd: [ OK ] [root@linux-node1 ~]# netstat -tunlp | grep 69 udp 0 0 0.0.0.0:69 0.0.0.0:* 3817/xinetd可以用Apache或Nginx提供HTTP服務(wù)。Python的命令web服務(wù)不行,會(huì)有報(bào)錯(cuò)。 [root@linux-node1 ~]# yum -y install httpd [root@linux-node1 ~]# sed -i "277i ServerName 127.0.0.1:80" /etc/httpd/conf/httpd.conf [root@linux-node1 ~]# /etc/init.d/httpd start Starting httpd: [ OK ] [root@linux-node1 ~]# mkdir /var/www/html/CentOS-6.6 [root@linux-node1 ~]# mount /dev/cdrom /var/www/html/CentOS-6.6/ [root@linux-node1 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 20G 1.1G 18G 6% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 93M 26M 63M 29% /boot /dev/sr0 4.4G 4.4G 0 100% /var/www/html/CentOS-6.6 # 不管怎么弄,只要把光盤(pán)內(nèi)容通過(guò)web發(fā)布即可。因?yàn)槭茄菔?#xff0c;如果復(fù)制鏡像有點(diǎn)浪費(fèi)時(shí)間。但生產(chǎn)環(huán)境就一定要復(fù)制了,光盤(pán)讀取速度有限。
瀏覽器訪(fǎng)問(wèn)http://172.16.100.10/CentOS-6.6/ 檢驗(yàn)配置是否正確。
5.1 PXE引導(dǎo)配置(bootstrap)
syslinux是一個(gè)功能強(qiáng)大的引導(dǎo)加載程序,而且兼容各種介質(zhì)。SYSLINUX是一個(gè)小型Linux操作系統(tǒng),它的目的是簡(jiǎn)化首次安裝Linux的時(shí)間,并建立維護(hù)或其它特殊用途的啟動(dòng)盤(pán)。如果沒(méi)有找到pxelinux.0這個(gè)文件,可以安裝一下。 [root@linux-node1 ~]# yum -y install syslinux [root@linux-node1 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ # 復(fù)制啟動(dòng)菜單程序文件 [root@linux-node1 ~]# cp -a /var/www/html/CentOS-6.6/isolinux/* /var/lib/tftpboot/ # 新疆一個(gè)pxelinux.cfg目錄,存放客戶(hù)端的配置文件。 [root@linux-node1 ~]# mkdir -p /var/lib/tftpboot/pxelinux.cfg [root@linux-node1 ~]# cp /var/www/html/CentOS-6.6/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
5.2 PXE配置文件default解析
配置虛擬機(jī)演示講解default文件,新建一個(gè)虛擬機(jī),注意內(nèi)存需要給1G。
打開(kāi)電源后,顯示如下
接下來(lái)的畫(huà)面就是我們熟悉的界面,輸入ESC可以進(jìn)入命令行界面。
1、新建一臺(tái)空白虛擬機(jī),也不要掛載ISO鏡像,打開(kāi)電源。
擴(kuò)展:DELL R710服務(wù)器開(kāi)機(jī)后,根據(jù)提示按F12,進(jìn)行PXE啟動(dòng),物理服務(wù)器有4個(gè)網(wǎng)卡,所以還會(huì)讓選擇從哪個(gè)網(wǎng)卡啟動(dòng)。
2、選擇第一個(gè)選項(xiàng)
3、選擇英語(yǔ)
4、選擇美式鍵盤(pán)
5、選擇URL方式安裝
注:使用NFS的寫(xiě)法nfs:172.16.100.10:/data/sys/kickstart/ks.cfg
6、應(yīng)用IPv6
7、輸入http的地址
8、接下來(lái)和光盤(pán)安裝一樣
通常,我們?cè)诎惭b操作系統(tǒng)的過(guò)程中,需要大量的和服務(wù)器交互操作,為了減少這個(gè)交互過(guò)程,kickstart就誕生了,使用這種kickstart,只需要事先定義好一個(gè)Kickstart自動(dòng)應(yīng)答配置文件ks.cfg(通常存放在安裝服務(wù)器上),并讓安裝程序知道該配置文件的位置,在安裝過(guò)程中安裝程序就可以自己從該文件中讀取安裝配置,這樣就避免了在安裝過(guò)程中多次的人機(jī)交互,從而實(shí)現(xiàn)無(wú)人值守的自動(dòng)化安裝。
生成kickstart配置文件的三種方法:
方法1、每安裝好一臺(tái)Centos機(jī)器,Centos安裝程序都會(huì)創(chuàng)建一個(gè)kickstart配置文件,記錄你得真實(shí)安裝配置。如果你希望實(shí)現(xiàn)和某系統(tǒng)類(lèi)似的安裝,可以基于該系統(tǒng)的kickstart配置文件來(lái)生成你自己的kickstart配置文件。(生成的文件名字叫anaconda-ks.cfg位于/root/anaconda-ks.cfg)
方法2、Centos提供了一個(gè)圖形化的kickstart配置工具。在任何一個(gè)安裝好的Linux系統(tǒng)上運(yùn)行該工具,就可以很容易地創(chuàng)建你自己的kickstart配置文件。kickstart配置工具命令為redhat-config-kickstart(RHEL3)或system-config-kickstart(RHEL4,RHEL5)。網(wǎng)上有很多用CentOS桌面版生成ks文件的文章,如果有現(xiàn)車(chē)的系統(tǒng)就沒(méi)什么可說(shuō),但沒(méi)有現(xiàn)成的,也沒(méi)有必要去用桌面版,命令行也很簡(jiǎn)單。
方法3、閱讀kickstart配置文件的手冊(cè)。用任何一個(gè)文本編輯器都可以創(chuàng)建你自己的kickstart配置文件。
7.1 查看anaconda-ks.cfg
[root@linux-node1 ~]# cat anaconda-ks.cfg # Kickstart file automatically generated by anaconda.#version=DEVEL install cdrom lang zh_CN.UTF-8 keyboard us network --onboot no --device eth0 --bootproto dhcp --noipv6 network --onboot no --device eth1 --bootproto dhcp --noipv6 rootpw --iscrypted $6$mAHRjL5hBQzn2KFf$YNGDhgtcVl6PNmZBWAeSek.z70mycWEfDxzQPJ.F5A3Bqc.mRm8r0ddMDIgcDiYgo5kZglJPjvhqyBN9ahKJ5. firewall --service=ssh authconfig --enableshadow --passalgo=sha512 selinux --enforcing timezone --utc Asia/Shanghai bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" # The following is the partition information you requested # Note that any partitions you deleted are not expressed # here so unless you clear all partitions first, this is # not guaranteed to work #clearpart --none#part /boot --fstype=ext4 --asprimary --size=100 #part / --fstype=ext4 --size=20480 #part swap --size=1024repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100%packages @chinese-support @core @server-policy @workstation-policy %end7.2 ks.cfg詳解
官網(wǎng)文檔
CentOS5:http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-kickstart2-options.html
CentOS6:https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Installaction_Guide/s1-kickstart2-options.html
官網(wǎng)自帶中文版,選一下語(yǔ)言即可
ks.cfg文件組成大致分為3段
命令段
鍵盤(pán)類(lèi)型,語(yǔ)言,安裝方式等系統(tǒng)的配置,有必選項(xiàng)和可選項(xiàng),如果缺少某項(xiàng)必選項(xiàng),安裝時(shí)會(huì)中斷并提示用戶(hù)選擇此項(xiàng)的選項(xiàng)。
軟件包段br/>%packages
@groupname:指定安裝的包租
package_name:指定安裝的包
-package_name:指定不安裝的包
在安裝過(guò)程中默認(rèn)安裝的軟件包,安裝軟件時(shí)會(huì)自動(dòng)分析依賴(lài)關(guān)系。
腳本段(可選)
關(guān)鍵字 含義
install 告知安裝程序,這是一次全新安裝,而不是升級(jí)upgrade。通過(guò)FTP或HTTP從遠(yuǎn)程服務(wù)器上的安裝樹(shù)中安裝。
url url --url="http://172.16.100.10/CentOS-6.6/"
url=" " url --url ftp://<username>:<password>@<server>/<dir>從指定的NFS服務(wù)器安裝。
nfs nfs --server=nfsserver.example.com --dir=/tmp/install-tree
text 使用文本模式安裝。
lang 設(shè)置在安裝過(guò)程中使用的語(yǔ)言以及系統(tǒng)的缺省語(yǔ)言。lang en_US.UTF-8
keyboard 設(shè)置系統(tǒng)鍵盤(pán)類(lèi)型。keyboard us
zerombr 清除mbr引導(dǎo)信息。
bootloader bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
?? --location=,指定引導(dǎo)記錄被寫(xiě)入的位置,有效的值如下:mbr(缺省),partition(在包含內(nèi)核的分區(qū)的第一個(gè)扇區(qū)安裝引導(dǎo)裝載程序)或none(不安裝引導(dǎo)裝載程序)。
??--driveorder,指定在BIOS引導(dǎo)順序中居首的驅(qū)動(dòng)器。
??--append=,指定內(nèi)核參數(shù)。要指定多個(gè)參數(shù),使用空格分隔它們。
network 為通過(guò)網(wǎng)絡(luò)的kickstart安裝以及所安裝的系統(tǒng)配置聯(lián)網(wǎng)信息。network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --??hostname=CentOS6 --bootproto=[dhcp/bootp/static]中的一種,缺省值是dhcp。bootp和dhcp被認(rèn)為是相同的。static方法要求在kickstart文件里輸入所有的網(wǎng)絡(luò)信息。
??network --bootproto=static --ip=172.16.100.100 --netmask=255.255.255.0 --gateway=172.16.100.254 --nameserver=172.16.100.254請(qǐng)注意所有配置信息都必須在一行上指定,不能使用反斜線(xiàn)來(lái)?yè)Q行。
??--ip=,要安裝的機(jī)器的IP地址。
??--gateway=,IP地址格式的默認(rèn)網(wǎng)關(guān)。
??--netmask=,安裝的系統(tǒng)的子網(wǎng)掩碼。
??--hostname=,安裝的系統(tǒng)的主機(jī)名。
??--onboot=,是否在引導(dǎo)時(shí)啟用該設(shè)備。
??--noipv6=,禁用此設(shè)備的IPv6。
??--nameserver=,配置dns解析。
timezone 設(shè)置系統(tǒng)時(shí)區(qū)。timezone --utc Asia/Shanghai,系統(tǒng)認(rèn)證信息。authconfig --enableshadow --authconfigpassalgo=sha512設(shè)置加密方式為sha512 ??啟用shadow文件。
rootpw root密碼
clearpart 清空分區(qū)。clearpart --all --initlabel
??--all從系統(tǒng)中清楚所有分區(qū),
??--initlable初始化磁盤(pán)標(biāo)簽磁盤(pán)分區(qū)。
part part /boot --fstype=ext4 --asprimary --size=200 part swap --size=1024 part swap --size=1024
??part / --fstype=ext4 --grow --asprimary --size=200
??--fstype=,為分區(qū)設(shè)置文件系統(tǒng)類(lèi)型,有效類(lèi)型為ext2,ext3,swap和vfat
??--asprimary,強(qiáng)迫把分區(qū)分配為主分區(qū),否則提示分區(qū)失敗。
??--size=,以MB為單位的分區(qū)最小值。在此處指定一個(gè)整數(shù)值,如500,不要在數(shù)字后面加MB。
??--grow,告訴分區(qū)使用所有可用空間(若有),或使用設(shè)置的最大值。
firstboot 負(fù)責(zé)協(xié)助配置redhat一些重要的信息。
??firstboot --disable
selinux 關(guān)閉selinux。selinux --disabled
firewall 關(guān)閉防火墻。firewall --disabled
logging 設(shè)置日志級(jí)別。logging --level=info
reboot 設(shè)置安裝完成后重啟,此選項(xiàng)必須存在,不然kickstart顯示一條消息,并等待用戶(hù)按任意鍵后才重新引導(dǎo),也可以使用halt關(guān)機(jī)。
7.3 編寫(xiě)ks文件
先生存一個(gè)密碼備用
[root@linux-node1 ~]# grub-crypt Password:smoke520 Retype password:smoke520 $6$pw0xCNxgak/9Phl4$Hj85dqWQ5V6wg5AlPmilTKbJK.DhnDKMvtwG5aA.0fs8uIWjpuLHe3jhf6EvTAVWyrZhddfR3tRFthZe6eE0Q/ [root@linux-node1 ~]# mkdir /var/www/html/ks_config [root@linux-node1 ~]# vim /var/www/html/ks_config/CentOS-6.6-ks.cfg # Kickstart Configurator for CentOS 6.6 by hao jiang install url --url="http://172.16.100.10/CentOS-6.6/" text lang en_US.UTF-8 keyboard us zerombr bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=CentOS6 timezone --utc Asia/Shanghai authconfig --enableshadow --passalgo=sha512 rootpw --iscrypted $6$pw0xCNxgak/9Phl4$Hj85dqWQ5V6wg5AlPmilTKbJK.DhnDKMvtwG5aA.0fs8uIWjpuLHe3jhf6EvTAVWyrZhddfR3tRFthZe6eE0Q/ 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.100.100/ks_config/optimization.sh &> /dev/null /bin/sh /tmp/optimization.sh %end7.4 開(kāi)機(jī)優(yōu)化腳本
[root@linux-node1 ~]# vim /var/www/html/ks_config/optimization.sh#!/bin/bash ############################################################ # File Name: /var/www/html/ks_config/optimization.sh # Version: V1.0 # Author: hao jiang # Organization: www.smoke.com # Create Time: 2018-12-06 22:15:00 # Description: Linux system initialization ############################################################. /etc/init.d/funcationsIp=172.16.100.10 Port=80 ConfigDir=ks_config# Judge Http server is ok? PortNum=`nmap $Ip -p $Port 2> /dev/null | grep open | wc -l` [ $PortNum -lt 1 ] && {echo "Http server is bad!"exit 1 }# Defined result function function Msg(){if [ $? -eq 0 ];thenaction "$1" /bin/trueelseaction "$1" /bin/falsefi }# Defined IP function function ConfigIP(){Suffix=`ifconfig eth0|awk -F "[ .]+" 'NR==2 {print $6}'`cat > /etc/sysconfig/network-scripts/ifcfg-eth0 <<-ENDDEVICE=eth0TYPE=EthernetONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=noneIPADDR=172.16.100.$SuffixPREFIX=24GATEWAY=172.16.100.254DNS1=172.16.100.254DEFROUTE=yesIPV4_FAILURE_FATAL=yesIPV6INIT=noNAME="System eth0"ENDMsg "config eth0" }# Defined Yum source Functions function yum(){yumDir=/etc/yum.repos.d[ -f "$YumDir/CentOS-Base.repo" ] && cp $YumDir/CentOS-Base.repo{,.ori}wget -O $YumDir/CentOS-Base.repo http://$Ip:$Port/$ConfigDir/CentOS-Base.repo &> /dev/null && \wget -O $YumDir/CentOS-Base.repo http://$Ip:$Port/$ConfigDir/epel.repo &> /dev/null && \Msg "YUM source" }# Defined Hide the system version number Functions function HideVersion(){[ -f "/etc/issue" ] && > /etc/issueMsg "Hide issue"[ -f "/etc/issue.net" ] && > /etc/issue.netMsg "Hide issue.net" }# Defined OPEN FILED Functions function openfiles(){[ -f "/etc/security/limits.conf" ] && {echo '* - nofile 65535' >> /etc/security/limits.confMsg "open files"} }# Defined Kernel parameters Functions function kernel(){KernelDir=/etc[ -f "$KernelDir/sysctl.conf" ] && /bin/mv $KernelDir/sysctl.conf{,ori}wget -O $KernelDir/sysctl.conf http://$IP:$Port/$ConfigDir/sysctl.conf &> /dev/nullMsg "Kernel config" }# Defined System Startup Services Functions function boot(){for oldboy in `chkconfig --list | grep "3:on" | awk '{print $1}' | grep -vE "crond|network|rsyslog|sshd|sysstat"`dochkconfig $oldboy offdoneMsg "BOOT config" }# Defined Time Synchronization Functions function Time(){echo "#time sync by haojiang at $(date +%F)" >> /var/spool/cron/rootecho '*/5 * * * * /usr/sbin/ntpdate time.nist.gov &> /dev/null' >> /var/spool/cron/rootMsg "Time Synchronization" }# Defined main Functions function main(){ConfigIPyumHideVersionopenfileskernelbootTime }main # rz上傳CentOS-Base.repo、epel.repo、sysctl.conf7.5 整合編輯default配置文件
#最精簡(jiǎn)配置
打開(kāi)系統(tǒng)電源,過(guò)會(huì)系統(tǒng)就自動(dòng)安裝好了;
轉(zhuǎn)載于:https://blog.51cto.com/smoke520/2325660
總結(jié)
以上是生活随笔為你收集整理的系统自动化安装kickstart的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: HanLP二元核心词典详细解析
- 下一篇: Windows Vista for De