前言:linux
安裝幾十或上百臺以上的Linux操做系統時,咱們不可能一臺一臺的手動去安裝,這樣又費力又耗時,這時咱們就須要一個批量和無操做的方法來安裝系統,而Linux中的kickstart無人值守安裝服務就提供了這樣的功能,固然也有不少方法能夠實現這樣的功能,本章只講解kickstart的方法。
vim
一、kickstart服務器環境bash
1)服務器IP地址:192.168.26.102服務器
2)操做系統:
網絡
[root@vms002 /]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.1 (Maipo)
3)kickstart須要安裝的服務
app
服務less |
功能dom |
dhcpsocket |
提供給客戶端IP信息及tftp服務器信息tcp |
tftp-server |
存放引導程序,提供給客戶端下載 |
ftp或http或nfs |
共享操做系統 |
二、DHCP安裝及配置
1)yum安裝dhcp服務
[root@vms002 /]# yum -y install dhcp [root@vms002 /]# rpm -qa dhcp dhcp-4.2.5-36.el7.x86_64
2)編輯DHCP配置文件
#查找DHCP配置文件
[root@vms002 /]# rpm -qc dhcp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd6.conf /etc/openldap/schema/dhcp.schema /etc/sysconfig/dhcpd /var/lib/dhcpd/dhcpd.leases /var/lib/dhcpd/dhcpd6.leases
#編輯DHCP配置文件
[root@vms002 /]# cd /etc/dhcp/ [root@vms002 dhcp]# ls dhclient.d dhcpd6.conf dhcpd.conf #備份dhcpd.conf配置文件 [root@vms002 dhcp]# cp dhcpd.conf dhcpd.conf.back [root@vms002 dhcp]# cat dhcpd.conf # # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.example # see dhcpd.conf(5) man page # [root@vms002 dhcp]# cp /usr/share/doc/dhc dhclient-4.2.5/ dhcp-4.2.5/ dhcp-common-4.2.5/ [root@vms002 dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example ./dhcpd.conf cp:是否覆蓋"./dhcpd.conf"? y #編輯dhcpd.conf配置文件 [root@vms002 dhcp]# vim dhcpd.conf subnet 192.168.26.0 netmask 255.255.255.0 { #網段 range 192.168.26.10 192.168.26.60; #分配IP地址池 option domain-name-servers 192.168.26.2; #dns地址 option domain-name "example.com"; option routers 192.168.26.2; #網關地址 option broadcast-address 192.168.26.255; #廣播地址 next-server 192.168.26.102; #tftp服務器IP地址 filename "/pxelinux.0"; #告知客戶端從tftp服務器根目錄下下載pxelinux.0引導程序文件 default-lease-time 600; max-lease-time 7200; }
3)啓動dhcp服務並設置開機自啓動
#啓動dhcpd服務 [root@vms002 dhcp]# systemctl start dhcpd [root@vms002 dhcp]# systemctl is-active dhcpd active #設置開機自啓動dhcpd服務 [root@vms002 dhcp]# systemctl enable dhcpd ln -s '/usr/lib/systemd/system/dhcpd.service' '/etc/systemd/system/multi-user.target.wants/dhcpd.service' [root@vms002 dhcp]# systemctl is-enabled dhcpd enabled
三、安裝tftp-server服務
1)yum安裝tftp-server服務
[root@vms002 dhcp]# yum -y install tftp-server
2)編輯tftp配置文件
#查詢tftp配置文件 [root@vms002 dhcp]# rpm -qc tftp-server /etc/xinetd.d/tftp [root@vms002 dhcp]# cd /etc/xinetd.d/ [root@vms002 xinetd.d]# ls chargen-dgram daytime-stream echo-dgram tftp chargen-stream discard-dgram echo-stream time-dgram daytime-dgram discard-stream tcpmux-server time-stream #備份tftp配置文件 [root@vms002 xinetd.d]# cp tftp tftp.back #編輯tftp配置文件 [root@vms002 xinetd.d]# vim 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 = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no #默認是yes,改成no per_source = 11 cps = 100 2 flags = IPv4 }
3)啓動tftp服務並設置開機自啓動
#啓動xinetd服務 [root@vms002 xinetd.d]# systemctl start xinetd [root@vms002 xinetd.d]# systemctl is-active xinetd active #設置開機自啓動xinetd服務 [root@vms002 xinetd.d]# systemctl enable xinetd [root@vms002 xinetd.d]# systemctl is-enabled xinetd enabled
四、複製引導程序及網絡啓動的內核文件到tftp服務的根目錄下
#tftp根目錄路徑
[root@vms002 xinetd.d]# ls /var/lib/tftpboot/
1)查詢及安裝pxelinux.0引導程序,複製pxelinux.0引導程序到tftp根目錄下
#查詢pxelinux.0引導程序
[root@vms002 xinetd.d]# yum whatprovides */pxelinux.0 已加載插件:langpacks, product-id, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. dvd/filelists_db | 3.1 MB 00:00 syslinux-4.05-12.el7.x86_64 : Simple kernel loader which boots from a FAT : filesystem 源 :dvd 匹配來源: 文件名 :/usr/share/syslinux/pxelinux.0
#安裝pxelinux.0引導程序
[root@vms002 xinetd.d]# yum -y install syslinux-4.05-12.el7.x86_64
#複製pxelinux.0引導程序到tftp根目錄下
[root@vms002 xinetd.d]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ [root@vms002 xinetd.d]# ls /var/lib/tftpboot/ pxelinux.0
2)mount掛載光盤到/rhel-7.1目錄下,複製網絡啓動的內核文件{vmlinuz,initrd.img}到tftp根目錄下
#建立/rhel-7.1目錄
[root@vms002 xinetd.d]# mkdir /rhel-7.1
#mount掛載
[root@vms002 xinetd.d]# mount /dev/cdrom /rhel-7.1/ mount: /dev/sr0 寫保護,將以只讀方式掛載 [root@vms002 xinetd.d]# ls /rhel-7.1/ addons images Packages RPM-GPG-KEY-redhat-release EFI isolinux release-notes TRANS.TBL EULA LiveOS repodata GPL media.repo RPM-GPG-KEY-redhat-beta
#複製網絡啓動的內核文件{vmlinuz,initrd.img}到tftp根目錄下
[root@vms002 xinetd.d]# cp /rhel-7.1/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/ [root@vms002 xinetd.d]# ls /var/lib/tftpboot/ initrd.img pxelinux.0 vmlinuz
3)根據本身的操做系統重命名tftp目錄下的引導程序和內核文件,以便區分
[root@vms002 xinetd.d]# cd /var/lib/tftpboot/ [root@vms002 tftpboot]# ls initrd.img pxelinux.0 vmlinuz [root@vms002 tftpboot]# mv initrd.img initrd_7.1.img [root@vms002 tftpboot]# mv vmlinuz vmlinuz_7.1 [root@vms002 tftpboot]# ls initrd_7.1.img pxelinux.0 vmlinuz_7.1
五、安裝並啓動vsftpd服務
1)yum安裝vsftpd服務
[root@vms002 /]# yum -y install vsftpd
2)啓動並設置開機自啓動vsftpd服務
#啓動vsftpd服務 [root@vms002 /]# systemctl start vsftpd [root@vms002 /]# systemctl is-active vsftpd active #設置開機自啓動vsftpd服務 [root@vms002 /]# systemctl enable vsftpd ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service' [root@vms002 /]# systemctl is-enabled vsftpd enabled
六、啓動nfs-server服務,共享掛載光盤的目錄(/rhel-7.1)
1)啓動並設置開機自啓動nfs-server服務
[root@vms002 /]# systemctl start nfs-server [root@vms002 /]# systemctl is-active nfs-server active [root@vms002 /]# systemctl enable nfs-server.service ln -s '/usr/lib/systemd/system/nfs-server.service' '/etc/systemd/system/multi-user.target.wants/nfs-server.service' [root@vms002 /]# systemctl is-enabled nfs-server.service enabled
2)共享掛在光盤的目錄(/rhel-7.1)
#編輯共享文件 [root@vms002 /]# vim /etc/exports /rhel-7.1 *(rw,sync) #查看是否共享出去了 [root@vms002 /]# exportfs -arv exporting *:/rhel-7.1 [root@vms002 /]# cat /etc/exports /rhel-7.1 *(rw,sync)
七、安裝system-config-kickstart工具包,編輯kickstart配置程序生成rhel-7.1.cfg應答文件
1)修改yum源名稱
[root@vms002 /]# vim /etc/yum.repos.d/aa.repo [development] #修改此名稱 name=dvd baseurl=ftp://192.168.26.101/dvd enabled=1 gpgcheck=0 [root@vms002 /]# yum clean all
2)yum安裝system-config-kickstart工具包
[root@vms002 /]# yum -y install system-config-kickstart
3)編輯kickstart配置程序生成rhel-7.1.cfg應答文件,並保存在vsftpd根目錄下(/var/ftp/)
[root@vms002 /]# system-config-kickstart &
#編輯完後保存在/var/ftp目錄下
4)檢查應答文件是否生成成功
[root@vms002 /]# ls /var/ftp/ pub rhel-7.1.cfg
八、複製並編輯PXE配置文件
1)複製PXE配置文件
#在tftp目錄下建立pxelinux.cfg目錄
[root@vms002 tftpboot]# pwd /var/lib/tftpboot [root@vms002 tftpboot]# mkdir pxelinux.cfg [root@vms002 tftpboot]# ls initrd_7.1.img pxelinux_7.1.0 pxelinux.cfg vmlinuz_7.1
#複製PXE配置文件到pxelinux.cfg目錄下,並命名爲default文件
[root@vms002 tftpboot]# cp /rhel-7.1/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default [root@vms002 tftpboot]# ls /var/lib/tftpboot/pxelinux.cfg default
2)編輯PXE配置文件
#備份default文件
[root@vms002 tftpboot]# cd /var/lib/tftpboot/pxelinux.cfg/ [root@vms002 pxelinux.cfg]# cp default default.back [root@vms002 pxelinux.cfg]# ls default default.back
#賦予default文件寫入權限
[root@vms002 pxelinux.cfg]# chmod u+w default [root@vms002 pxelinux.cfg]# ls -l default -rw-r--r--. 1 root root 3166 6月 3 15:56 default
#編輯文件
[root@vms002 pxelinux.cfg]# vim default default rhel-7.1 #默認啓動的是「label rhel-7.1」中標記的啓動內核 timeout 600 #在用戶輸入以前的超時時間,單位爲秒 prompt 0 #顯示‘boot’提示符,爲0時不提示,啓動默認指定的啓動內核 display boot.msg # ..................省略................... label rhel-7.1 menu label ^Install Red Hat Enterprise Linux 7.1 kernel vmlinuz_7.1 #與tftp目錄下的內核文件同樣 append initrd=initrd_7.1.img inst.ks=ftp://192.168.26.102/rhel-7.1.cfg quiet ..................省略...................
3)重啓tftp服務
[root@vms002 pxelinux.cfg]# systemctl restart xinetd
九、測試
1)關閉VMware Workstation虛擬機自身的DHCP服務,不然會與kickstart服務器上的DHCP服務發生衝突。
2)用VMware Workstation虛擬機,建立一個新的虛擬機,不指定使用ISO鏡像文件,網絡適配器要與kickstart服務器是同一個網段。
十、總結
1)DHCP服務:向客戶端提供網絡IP信息及tftp服務器地址,以及引導程序pxelinux.0的路徑信息。
2)tftp-server服務:在PXE安裝過程當中,客戶機使用tftp協議從tftp服務器上下載引導文件並執行,咱們主要經過配置tftp服務器和PXE的引導配置完成無操做系統安裝這個過程。
3)nfs-server服務:主要共享系統光盤掛載的目錄,提供客戶機下載系統並安裝。
4)vsftpd服務:存放安裝系統時的應答文件,不用手動再去操做。若是沒有應答文件,在安裝系統的過程當中還須要手動去配置時區、語言、分區等,跟平時安裝系統的步驟是同樣的。