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介紹(PXE+kickstart無人值守安裝)
- PXE + Kickstart無人值守批量安裝OS
- pxe+kickstart無人值守安裝linux作業系統Linux作業系統
- Linux應該這麼學第19章使用 PXE+Kickstart 無人值守安裝服務Linux
- kickstart無人值守安裝linux(轉)Linux
- kickstart無人值守方式安裝Linux 7.6Linux
- [無人值守安裝作業系統]__RHEL6__FTP+TFTP+DHCP+Kickstart+PXE作業系統FTP
- Linux kickstart無人值守安裝RHEL5.5(轉)Linux
- kickstart+PXE+dhcp+nfs 批量無人值守自動化安裝作業系統NFS作業系統
- Linux系統下手把手完成無人值守安裝服務Linux
- Linux——PXE高效批量網路裝機Linux
- linux kickstart 無人職守安裝Linux
- PXE高效批量網路裝機的解析
- PXE+DHCP+TFTP+NFS+Kickstart網路自動安裝配置簡化版FTPNFS
- Linux中的無人職守安裝指令碼kickstartLinux指令碼
- 無人值守批量安裝linux作業系統Linux作業系統
- PXE 和 計算機網路啟動計算機網路
- Docker-02 無人值守安裝 dockerDocker
- 停車機器人上崗 實現停車場無人值守機器人
- 無人值守智慧洗車
- 搭建 Cobbler 無人值守安裝伺服器伺服器
- 無人值守自動化安裝系統
- oracle客戶端無人值守安裝 靜默安裝Oracle客戶端
- PXE 網路化安裝linux系統—原理+步驟薦Linux
- 計算機網路實驗六:無線接入計算機網路
- 計算機網路實驗3:網路裝置基本配置計算機網路
- linux安裝配置kickstartLinux
- 配置PXE Server實現網路啟動Server
- kickstart半自動安裝centos系統與pxe自動安裝centos系統CentOS
- Linux 網路通訊管理和系統服務管理Linux
- 通過PXE安裝Linux實況薦Linux
- Linux下cifs公用網際網路系統和samba服務LinuxSamba
- 《Linux防火牆(第4版)》——2.6 私有網路服務VS公有網路服務Linux防火牆
- linux下重啟網路服務Linux
- 透過自動化運維實現無人值守的故障自愈運維
- RHEL6 無人值守搭建指令碼指令碼
- 無人值守的運維到底靠譜不靠譜?運維
- Kickstart+HTTP+DHCP+TFTP+PXElinux實現RedHat的網路自動安裝(轉)HTTPFTPLinuxRedhat