Linux網路服務-----實驗---PXE和Kickstart的無人值守裝機
目錄
一.PXE的原理
- PXE(preboot execute environment,預啟動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網路模式,支援工作站通過網路從遠端伺服器下載映像,並由支援通過網路啟動作業系統,再啟動過程中,終端要求伺服器分配IP地址(DHCP協議),再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啟動軟體包到本機記憶體中執行,由這個啟動軟體包完成終端基本軟體設定,從而引導預先安裝在伺服器中的終端作業系統。PXE可以引導多種作業系統,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8/linux等。
- PXE的工作流程:
二.kickstart的原理
- Kickstart是一種無人值守的安裝方式。它的工作原理是在安裝過程中記錄人工干預填寫的各種引數,並生成一個名為ks.cfg的檔案。如果在自動安裝過程中出現要填寫引數的情況,安裝程式首先會去查詢ks.cfg檔案,如果找到合適的引數,就採用所找到的引數;如果沒有找到合適的引數,便會彈出對話方塊讓安裝者手工填寫。所以,如果ks.cfg檔案涵蓋了安裝過程中所有需要填寫的引數,那麼安裝者完全可以只告訴安裝程式從何處下載ks.cfg檔案,然後就去忙自己的事情。等安裝完畢,安裝程式會根據ks.cfg中的設定重啟/關閉系統,並結束安裝。
三.PXE與kickstart的結合使用自動裝機
- 在有網路的情況下,安裝DHCP軟體包,TFTP軟體包,syslinux軟體包,ftp軟體包,kickstart軟體包
[root@localhost ~]# yum install dhcp* tftp-server syslinux vsftpd system-config-kickstart -y
- 檢視軟體包的安裝情況
[root@localhost ~]# rpm -q dhcp
dhcp-4.2.5-77.el7.centos.x86_64
[root@localhost ~]# rpm -q tftp-server
tftp-server-5.2-22.el7.x86_64
[root@localhost ~]# rpm -q syslinux
syslinux-4.05-15.el7.x86_64
[root@localhost ~]# rpm -q vsftpd
vsftpd-3.0.2-25.el7.x86_64
[root@localhost ~]# rpm -q system-config-kickstart
system-config-kickstart-2.9.7-1.el7.noarch
[root@localhost ~]#
- 修改網路卡為僅主機模式,設定靜態IP地址
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO=static
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="7042365e-0b74-48e8-81ff-0c2eeb61def2"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.100.100
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.100.100 netmask 255.255.255.0 broadcast 192.168.100.255
inet6 fe80::b47a:19c8:ef97:42b7 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:31:94:e1 txqueuelen 1000 (Ethernet)
RX packets 114637 bytes 169681992 (161.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 39564 bytes 2402137 (2.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
......
- 配置DHCP服務
[root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆蓋"/etc/dhcp/dhcpd.conf"? y
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.10 192.168.100.15;
option routers 192.168.100.100;
option domain-name-servers 5.5.5.5;
next-server 192.168.100.100;
filename "pxelinux.0";
}
[root@localhost ~]# systemctl start dhcpd //開啟服務,驗證引數是否正確
- 配置TFTP服務
1.修改TFTP的主配置檔案
[root@localhost ~]# 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 = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
2.將syslinux服務中pxelinux.0複製到tftp的站點/var/lib/tftpboot
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
[root@localhost ~]# ls /var/lib/tftpboot
pxelinux.0
[root@localhost ~]#
- 配置FTP服務
1.在FTP服務站點/var/ftp下,建立一個名為centos7的目錄,且將本機映象掛載到centos7中
[root@localhost ftp]# ls
centos7 pub
[root@localhost ftp]# mount /dev/sr0 centos7/
mount: /dev/sr0 防寫,將以只讀方式掛載
[root@localhost ftp]# df -hT
檔案系統 型別 容量 已用 可用 已用% 掛載點
/dev/sda2 xfs 10G 3.6G 6.5G 36% /
devtmpfs devtmpfs 474M 0 474M 0% /dev
tmpfs tmpfs 489M 0 489M 0% /dev/shm
tmpfs tmpfs 489M 7.2M 481M 2% /run
tmpfs tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 xfs 4.0G 158M 3.9G 4% /boot
/dev/sda5 xfs 4.0G 37M 4.0G 1% /home
tmpfs tmpfs 98M 4.0K 98M 1% /run/user/42
tmpfs tmpfs 98M 20K 98M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /var/ftp/centos7
[root@localhost ftp]#
2.將centos7中的映象檔案vmlinuz和initrd.img,放到tftp的站點/var/lib/tftpboot
[root@localhost ftp]# cp centos7/images/pxeboot/vmlinuz /var/lib/tftpboot/
[root@localhost ftp]# cp centos7/images/pxeboot/initrd.img /var/lib/tftpboot/
[root@localhost ftp]# ls /var/lib/tftpboot
initrd.img pxelinux.0 vmlinuz
[root@localhost ftp]#
3.在tftp服務的站點下,建立一個pxelinux.cfg的目錄,且編輯一個default的資料檔案
[root@localhost ftp]# cd /var/lib/tftpboot
[root@localhost tftpboot]# ls
initrd.img pxelinux.0 vmlinuz
[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# ls
initrd.img pxelinux.0 pxelinux.cfg vmlinuz
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# vim default
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.100/centos7
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.100.100/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7
4.啟動服務驗證引數是否錯誤
[root@localhost pxelinux.cfg]# systemctl restart dhcpd
[root@localhost pxelinux.cfg]# systemctl start tftp
[root@localhost pxelinux.cfg]# systemctl start vsftpd
[root@localhost pxelinux.cfg]#
- 配置kickstart圖形介面的裝機引數
1.檢視檔案是否儲存
[root@localhost pxelinux.cfg]# ls /var/ftp
centos7 ks.cfg pub
[root@localhost pxelinux.cfg]#
2.在/var/ftp/ks.cfg中新增軟體包引數
[root@localhost ~]# vim anaconda-ks.cfg
[root@localhost ~]# vim /var/ftp/ks.cfg
%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony
kexec-tools
%end
3.在tftp服務的站點/var/lib/tftpboot/pxelinux.cfg/default上新增引數
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.100/centos7 ks=ftp://192.168.100.100/ks.cfg
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.100.100/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7
~
- 開啟所有服務,關閉防火牆和增強性功能
[root@localhost ~]# systemctl restart dhcpd
[root@localhost ~]# systemctl restart tftp
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]#
- 建立硬體裝置
- 開啟虛擬機器,自動裝機,選擇網路模式
- 這裡要回車,之後就不用再管理了
注:測試機的硬體要符合,再kickstart的圖形介面的設定的引數,記憶體和硬碟最好都大一些,以免發生錯誤。另外,有個人實驗環境的不同,測試機可能會卡死,筆者換了三臺測試機才成功。
相關文章
- PXE高效網路裝機與Kickstart無人值守安裝
- Linux應該這麼學第19章使用 PXE+Kickstart 無人值守安裝服務Linux
- PXE+Kickstart無人值守安裝安裝Centos7.9CentOS
- kickstart無人值守方式安裝Linux 7.6Linux
- kickstart+PXE+dhcp+nfs 批量無人值守自動化安裝作業系統NFS作業系統
- Linux——PXE高效批量網路裝機Linux
- Linux系統下手把手完成無人值守安裝服務Linux
- Linux中的無人職守安裝指令碼kickstartLinux指令碼
- PXE高效批量網路裝機的解析
- PXE 和 計算機網路啟動計算機網路
- 停車機器人上崗 實現停車場無人值守機器人
- 無人值守自動化安裝系統
- 搭建 Cobbler 無人值守安裝伺服器伺服器
- 無人值守智慧洗車
- 地磅無人值守系統
- kickstart半自動安裝centos系統與pxe自動安裝centos系統CentOS
- Linux 網路通訊管理和系統服務管理Linux
- Linux下cifs公用網際網路系統和samba服務LinuxSamba
- Linux系統學習(四)Linux網路服務Linux
- pxe基礎的批次化裝機
- 北京智和信通 | 無人值守的IDC機房動環綜合監控運維運維
- 透過自動化運維實現無人值守的故障自愈運維
- 計算機網路實驗計算機網路
- 無人值守的運維到底靠譜不靠譜?運維
- 簡要介紹Linux網路服務的種類Linux
- 配置虛擬機器中的Linux系統與開啟網路服務虛擬機Linux
- 真實使用者首次披露Waymo無人車服務體驗: 為避開左轉, 故意繞路
- Linux網路服務之部署YUM倉庫Linux
- 【CentOS Linux 7】實驗4【Linux網路應用】CentOSLinux
- 在Linux下使用TCP封裝器來加強網路服務安全LinuxTCP封裝
- PXE 基於網路自動安裝CentOS 6/7/8CentOS
- Linux平臺下snmp服務的安裝和配置Linux
- 按鍵大師:用Python實現無人值守的自動化操作Python
- 計算機網路驗證性實驗計算機網路
- 計算機網路實驗報告:【Wirshark 實驗】計算機網路
- 計算機網路實驗:【Cisco Packet Tracer 實驗】計算機網路
- 《計算機網路實驗課程》——Wireshark實驗計算機網路
- 計算機網路實驗二計算機網路