2021-05-12 14:32:11
CentOS 7的YUM倉庫服務與PXE自動批次化安裝系統
一、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 <!--安裝所需工具-->
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,客戶機開機,驗證效果(耐心等待完成即可):
安裝成功:
相關文章