Linux之kickstart無人值守安裝系統

前言: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 &

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

#編輯完後保存在/var/ftp目錄下
image.png

image.png

    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服務發生衝突。

image.png

image.png


    2)用VMware Workstation虛擬機,建立一個新的虛擬機,不指定使用ISO鏡像文件,網絡適配器要與kickstart服務器是同一個網段。

image.png

image.png

image.png

image.png


image.png

image.png

十、總結

    1)DHCP服務:向客戶端提供網絡IP信息及tftp服務器地址,以及引導程序pxelinux.0的路徑信息。

    2)tftp-server服務:在PXE安裝過程當中,客戶機使用tftp協議從tftp服務器上下載引導文件並執行,咱們主要經過配置tftp服務器和PXE的引導配置完成無操做系統安裝這個過程。

    3)nfs-server服務:主要共享系統光盤掛載的目錄,提供客戶機下載系統並安裝。

    4)vsftpd服務:存放安裝系統時的應答文件,不用手動再去操做。若是沒有應答文件,在安裝系統的過程當中還須要手動去配置時區、語言、分區等,跟平時安裝系統的步驟是同樣的。

相關文章
相關標籤/搜索