首頁 > 軟體

CentOS 7的YUM倉庫服務與PXE自動批次化安裝系統

2020-06-16 16:29:15

一、YUM軟體倉庫

借助於YUM軟體倉庫,可以完成安裝、解除安裝、自動升級rpm軟體包等任務,能夠自動查詢並解決rpm包之間的依賴關係,而無須管理員逐個、手工地去安裝每個rpm包,使管理員在維護大量Linux伺服器時更加輕鬆自如。
要成功使用YUM機制來更新系統和軟體,需要有一個包含各種rpm安裝包檔案及其依賴軟體的軟體倉庫(repository),提供軟體倉庫的伺服器也稱為“源”伺服器。在客戶機中只要正確指定軟體倉庫的地址等資訊,就可以通過對應的“源”伺服器來安裝或更新軟體了。
YUM軟體倉庫通常藉助於HTTP或FTP協定來進行發布,這樣可以面向網路中的所有客戶機提供軟體源服務。為了便於客戶機查詢軟體包。獲取依賴關係等資訊,在軟體倉庫中需要提供倉庫資料(repodata),其中收集了目錄下所有rpm包的頭部資訊。

1、用戶端設定軟體倉庫位置

在用戶端上 需要指定至少一個可用的軟體倉庫,然後才能使用下一節將要介紹的yum工具來下載、安裝軟體包。yum工具使用的軟體倉庫資訊存放在/etc/yum.repos.d目錄下擴充套件名為“.repo”的檔案中。

[root@CentOS01 ]# vim /etc/yum.repos.d/local.repo 
[local]                              <!--倉庫宣告-->
name=centos                   <!--yum源的名字-->
baseurl=file:///root/benet        <!--倉庫位置-->
enabled=1                   <!--開啟yum功能-->
gpgcheck=0                    <!--不驗證軟體包的簽名-->

上述操作中,檔案centos7.repo需要手動建立./etc/yum.repos.d目錄下若有其他未用的“*.repo”檔案建議將其刪除。“enabled=1”為預設項,可以省略;“gpgcheck”和“gpgkey”兩行設定用來檢查軟體包的完整性,若無此要求則可以省略。

二、YUM源的型別

  • 本地源:Linux作業系統光碟就是一個yum倉庫;
  • FTP源:將資料上傳到ftp使用者存取;
  • HTTP源:需要連線網際網路,更新資料方便,需要高速頻寬;

1、設定本地源

[root@centos01 ]# vim /etc/yum.repos.d/local.repo 
[local]
name=centos
baseurl=file:///mnt
enabled=1
gpgcheck=0

2、設定ftp源

[root@centos01 ~]# vim /etc/yum.repos.d/local.repo 
[ftp]
name=centos
baseurl=ftp://192.168.100.10/
enabled=1
gpgcheck=0

3、設定HTTP源

[root@centos01 ~]#cd /etc/yum.repos.d/
[root@centos01 yum.repos.d]#wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyum.com/repo/Centos-7.repo

4、YUM的使用

[root@centos01 ~]#yum cleam all       <!--清楚yum快取-->
[root@centos01 ~]#yum list           <!--查詢軟體列表-->
[root@centos01 ~]#yum info dhcp     <!--查詢軟體包資訊-->
[root@centos01 ~]#yum -y install dhcp     <!--安裝dhcp軟體-->
[root@centos01 ~]#yum -y remove dhcp    <!--解除安裝dhcp軟體-->
[root@centos01 ~]#yum search httpd      <!--查詢軟體-->

5、RPM包的來源

1)centos官方

更新系統將rpm軟體直接封裝 在IOS中

2)第三方組織發布rpm包

更新新的功能;在官方的基礎上進行修改

3)使用者自定義rpm包集合

開源愛好的個人修改封包更新封包

4)使用者建立yum源

[root@centos01 ~]#createrepo -g /mnt/repodata/repomd.xml ./benet/

三、設定PXE自動批次化安裝系統的注意事項

PXE是由intel公司開發的網路引導技術,工作在Client/Server模式,允許客戶機通過網路從遠端伺服器下載引導映象,並載入安裝檔案或者整個作業系統。

  • 客戶機的網絡卡支援PXE協定(整合BOOTROM晶片),且主機板支援網路引導;
  • 網路中有一台DHCP伺服器以便為客戶機自動分配地址、指定引導檔案位置;
  • 伺服器通過TFTP(簡單檔案傳輸協定)提供引導映象檔案的下載;
    其中,一個條件為硬體要求,目前絕大多數伺服器和大多數PC都能夠提供此支援,只需要在BIOS設定中允許從Nerwork或LAN啟動即可。

四、部署PXE遠端安裝服務

1、設定YUM倉庫,並安裝ftp服務:

[root@centos01 ~]# mount /dev/cdrom /media
[root@centos01 ~]# cd /etc/yum.repos.d/
[root@centos01 yum.repos.d]# rm -rf *
[root@centos01 yum.repos.d]# vim a.repo

[yum]
baseurl=file:///media
gpgcheck=0

[root@centos01 yum.repos.d]# yum -y install vsftpd*

2、準備centos7安裝源並啟動ftp服務:

[root@centos01 yum.repos.d]# mkdir /var/ftp/centos7
[root@centos01 yum.repos.d]# cp -rf /media/* /var/ftp/centos7/
[root@centos01 yum.repos.d]# systemctl start vsftpd             <!--啟動ftp服務-->
[root@centos01 yum.repos.d]# systemctl enable vsftpd          <!--設定為開機自啟-->

3、安裝並啟動TFTP服務:

[root@centos01 yum.repos.d]# yum -y install tftp-server
[root@centos01 yum.repos.d]# vim /etc/xinetd.d/tftp             <!--編輯TFTP組態檔-->

                                     ...............................
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
}

[root@centos01 yum.repos.d]# systemctl start tftp                <!--啟動TFTP服務-->
[root@centos01 yum.repos.d]# systemctl enable tftp      <!--設定開機自動啟動-->

4、準備Linux核心、初始化映象檔案(在系統磁碟中):

[root@centos01 ~]# cd /media/images/pxeboot/
[root@centos01 pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/

5、準備PXE載入程式:

[root@centos01 pxeboot]# yum -y install syslinux    <!--安裝載入程式-->
[root@centos01 pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

6、設定啟動選單(典型的和無人值守安裝的啟動選單根據實際需求二選一設定即可):

[root@centos01 pxeboot]# mkdir /var/lib/tftpboot/pxelinux.cfg

1)典型的啟動選單,無法實現無人值守安裝:

[root@centos01 pxeboot]# vim /var/lib/tftpboot/pxelinux.cfg/default            

default auto
prompt 1
label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.100.10/centos7
label linux text
        kernel vmlinuz
        append text initrd=initrd.img method=ftp://192.168.100.10/centos7
label linux rescue
        kernel vmlinuz
        append rescue initrd=initrd.img method=ftp://192.168.100.10/centos7

2)無人值守安裝的啟動選單:

[root@centos01 pxeboot]# vim /var/lib/tftpboot/pxelinux.cfg/default 

default auto
prompt 0
label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.100.10/centos7 
                ks=ftp://192.168.100.10/ks.cfg

在上面兩種啟動選單,我這裡設定的是無人值守安裝,若選擇典型的啟動選單,那麼接下來的操作有很多就是不必要的了,只要安裝上DHCP伺服器即可部署系統了。

7、安裝並啟用DHCP伺服器:

[root@centos01 pxeboot]# yum -y install dhcp
[root@centos01 pxeboot]# vim /etc/dhcp/dhcpd.conf
                              ...........................

subnet 192.168.100.0 netmask 255.255.255.0 {
  range 192.168.100.100 192.168.100.200;
  option domain-name-servers 8.8.8.8;
  option domain-name "internal.example.org";
  option routers 192.168.100.254;
  option broadcast-address 192.168.100.255;
  default-lease-time 21600;
  max-lease-time 43200;
  next-server 192.168.100.10;                 <!--指定TFTP伺服器的地址-->
  filename "pxelinux.0";                     <!--指定PXE載入程式的檔名-->
}

[root@centos01 pxeboot]# systemctl start dhcpd        <!--啟動dhcp服務-->
[root@centos01 pxeboot]# systemctl enable dhcpd      <!--設定開機自動啟動-->

8、準備安裝應答檔案:

在centos 7 系統中如果安裝了system-config-kickstart工具後,可通過圖形化嚮導工具來設定安裝應答檔案:

[root@centos01 pxeboot]# yum -y install system-config-kickstart &lt;!--安裝所需工具--&gt;

1)開啟圖形化程式:

2)設定安裝應答引數:

3)由於ftp服務預設允許匿名存取,所以不用指定使用者名稱和密碼:

4)引導裝載程式:

5)分割區資訊(根據實際需求選擇合適的硬碟分割區方案):

6)網路設定及防火牆:


7)編寫安裝後指令碼,儲存到文件目錄裡:

儲存後的應答檔案:

[root@centos01 ~]# vim ks.cfg              <!--最後生成的應答檔案如下-->
(可直接複製此檔案便可省略圖形化設定的那些步驟,結合實際需求進行修改後使用即可):

#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$bauETRq3$WOpze2jeKD9q3qgKK50xj0
# Use network installation
url --url="ftp://ftp:192.168.100.10/centos7"
# System language
lang zh_CN
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled

# Firewall configuration
firewall --disabled
# Network information
network  --bootproto=dhcp --device=ens32
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Partition clearing information
clearpart --all
# Disk partitioning information
part /boot --fstype="xfs" --size=500
part /home --fstype="xfs" --size=4096
part swap --fstype="swap" --size=2048
part / --fstype="xfs" --grow --size=1

%post --interpreter=/bin/bash
cd /etc/yum.repos.d
rm -rf *
echo -e "[base]" > aa.repo
echo -e "baseurl=ftp://192.168.100.10/centos7" >> aa.repo
echo -e "gpgcheck=0" >> aa.repo
%end

不過上面的組態檔還差點東西,需要在組態檔末尾繼續寫入三行,以此來選擇最小安裝:

%packages
@^minimal
%end

寫好後,儲存退出即可。

9、將自動應答檔案複製到指定目錄(在之前的引導選單指定的“ks=”項的路徑):

[root@centos01 ~]# cp /root/ks.cfg /var/ftp/

10、OK,客戶機開機,驗證效果(耐心等待完成即可):

安裝成功:


IT145.com E-mail:sddin#qq.com