基於網絡的PXE自動化安裝詳細步驟
大家好我們又見面了!今天先搭建dhcp服務和tftp服務爲後面的PXE實驗做準備! |
---|
Go |
---|
搭建dhcp服務器
實驗準備
一臺沒有ip地址的centos6主機,一臺CentOS7虛擬機作爲DHCP服務器;網卡設爲NAT模式,設置固定IP地址,關閉虛擬機的DHCP功能。如圖:
1.配置靜態地址,關閉iptables,selinux服務
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
編輯網卡配置文件
······
TYPE=Ethernet
IPADDR0=192.168.2.7
BOOTPROTO=static
PREFIX=24
DEFROUTE=yes
NAME="eth0"
ONBOOT=yes
······
----------------------------------------------
[root@localhost ~]# iptables -F
[root@localhost ~]# systemctl stop firewalld ✅
[root@localhost ~]# setenforce 0 ✅
----------------------------------------------
[root@localhost ~]# vim /etc/selinux/config
編輯selinux配置文件
······
SELINUX=disabled
······
2.安裝DHCP服務包並啓動dhcp服務
[root@localhost ~]# yum -y install dhcp #安裝dhcp服務 ✅
[root@localhost ~]# systemctl start dhcpd.service #直接啓動dhcp服務會報錯 ❌
[root@localhost ~]# systemctl status dhcpd.service #查看狀態,如下圖
3.修改dhcp配置⽂件
系統⾃帶的dhcp.conf是空⽂件,找到安裝包⾃帶的example進⾏修改
[root@localhost ~]# rpm -ql dhcp | grep example ✅
-------------------------------------------------------------
[root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf ✅
重啓dhcp服務,並設置開機⾃啓動
[root@localhost ~]# systemctl start dhcpd.service #開啓dhcp服務 ✅
-----------------------------------------------------
[root@localhost ~]# systemctl enable dhcpd.service #設置開機自啓 ✅
4.切換到另外⼀臺CentOS6虛擬機,查看是否獲取到ip地址
執⾏命令重新獲取ip地址
[root@localhost ~]# dhclient -d ✅
---------------------------------
[root@localhost ~]# ifconfig #可以看到我們獲取到的對應地址段的ip
再次查看獲取到ip地址,表⽰dhcp服務已搭建成功
利⽤systemctl status dhcpd 命令可觀察dhcp分發地址的全過程
[root@localhost ~]# systemctl status dhcpd.service ✅
tftp服務器
tftp在簡單的文字模式FTP命令,常在嵌入式開發中下載文件
參數
-v運行時顯示詳細的處理信息
-c <命令>遠程執行命令
-m <模式>選擇傳輸模式
-V版本信息
【進入TFTP操作】
connect:連接到遠程tftp服務器
模式:文件傳輸模式
put:上傳文件
獲取:下載文件
quit:退出
詳細信息:顯示詳細的處理信息的
速度:顯示包路徑
狀態:顯示當前狀態信息
二進制文件:二進制傳輸模式
ascii:ascii傳送模式
rexmt:設置包傳輸的超時時間
超時:設置重傳的超時時間
幫助:幫助信息
?:幫助信息
實驗準備
centos 6 192.168.26.6 ---|
|---兩臺實驗機器關防火牆、關selinux、chrony同步時間 ✅
centos 7 192.168.26.7 ---|
#centos 6 tftp客戶端配置
安裝 yum install tftp ✅
安裝 yum -y install xinetd ✅ #運行tftp可能會缺,提前裝下吧!
#centos 7 爲tftp服務器端
安裝 yum install tftp-server ✅
[root@centos6 ~]# yum -y install tftp #客戶端 ✅
[root@centos7 ~]# yum -y install tftp-server #服務器端 ✅
開啓服務
centos 6:
service xinetd restart #開啓tftp服務 ✅
centos 7:
systemctl start tftp.socket #開啓tftp服務器 ✅
systemctl enable tftp.socket #設置開機啓動 ✅
查看服務器端tftp服務是否啓動,並創建測試文件上傳共享目錄
[root@centos7 ~]# systemctl status tftp.socket ✅
● tftp.socket - Tftp Server Activation Socket
Loaded: loaded (/usr/lib/systemd/system/tftp.socket; enabled; vendor preset: disabled)
Active: active (listening) since Wed 2019-11-13 20:52:12 CST; 12min ago
Listen: [::]:69 (Datagram)
Nov 13 20:52:12 centos7 systemd[1]: Listening on Tftp Server Activation S...t.
Hint: Some lines were ellipsized, use -l to show in full.
[root@centos7 ~]# ss -unl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 *:48173 *:*
UNCONN 0 0 *:68 *:*
UNCONN 0 0 *:111 *:*
UNCONN 0 0 *:5353 *:*
UNCONN 0 0 *:809 *:*
UNCONN 0 0 [::]:69 [::]:*
UNCONN 0 0 [::]:111 [::]:*
UNCONN 0 0 [::]:809 [::]:*
--------------------------------------------------------------------------
[root@centos7 ~]# touch test.txt #創建測試文件 ✅
[root@centos7 ~]# mv test.txt /var/lib/tftpboot/ #tftp共享文件夾 ✅
使用tftp連接至服務器端,從共享目錄下載共享文件
[root@centos6 ~]# tftp 192.168.26.8
tftp> get test.txt
^C
quit
tftp> quit
[root@centos6 ~]# ls
test.txt
tftp客戶端、服務器端搭建結束,是不是很簡單!那我們接下來的實驗吧 |
---|
搭建PXE環境
實驗準備
可用服務器端:192.168.26.7
老三樣:關防火牆、關selinux、chrony同步時間 ✅
1.下載必要的軟件包,開啓對應的服務
[root@centos7 ~]# yum -y install dhcp tftp-server httpd syslinux #下載包 ✅
-----------------------------------------------------------
[root@centos7 ~]# systemctl enable dhcpd httpd tftp.socket #開啓對應服務 ✅
2.創建本地yum源
編輯文件,添加開機自動掛載光盤
[root@centos7 ~]# mkdir -pv /var/www/html/centos/7 ✅
-----------------------------------------------------------
[root@centos7 ~]# vim /etc/fstab
編輯文件添加
······
/dev/sr0 /var/www/html/centos/7 iso9660 default 0 0
······
掛載磁盤
[root@centos7 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 100G 0 part /
├─sda3 8:3 0 50G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 3G 0 part [SWAP]
sr0 11:0 1 10.3G 0 rom
[root@centos7 ~]# mount /dev/sr0 /var/www/html/centos/7 ✅
mount: /dev/sr0 is write-protected, mounting read-only
-----------------------------------------------------------
[root@centos7 ~]# mount -a
[root@centos7 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 100G 0 part /
├─sda3 8:3 0 50G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 3G 0 part [SWAP]
sr0 11:0 1 10.3G 0 rom /var/www/html/centos/7
3、製作ks.cfg⽂件
[root@centos7 ~]# mkdir -pv /var/www/html/ksdir/7 #先創建需要的目錄 ✅
------------------------------------------------------------------
[root@centos7 ~]# cp /root/ks7_mini.cfg /var/www/html/ksdir/7/ ✅
# 應答文件因爲之前我們做過,現在直接拷貝過來使用,沒有的點擊下方鏈接!
# 因爲之前的製作ks.cfg也是採取http模式,所以要確保ks.cfg文件中的yum源可用,
或者重新創建一個yum源,將ks.cfg文件裏的yum源路徑稍加修改即可。
------------------------------------------------------------------
[root@centos7 7]# chmod +r /var/www/html/ksdir/7/ks7_mini.cfg #一定要保持ks.cfg文件的權限 ✅
可參考我的另一篇博客: llinux進階-巧妙利用kickstart實現自動化安裝全get
瀏覽器確認ks7.cfg能正常訪問
4、修改製作ks.cfg⽂件
可參考我的另一篇博客: llinux進階-巧妙利用kickstart實現自動化安裝全get
5、配置dhcp服務
主要配置文件
重啓服務
[root@centos7 ~]# systemctl restart dhcpd ✅
6、準備PXE相關⽂件
----------------------------------------------------------------------
[root@centos7 ~]# cd /var/lib/tftpboot/
[root@centos7 tftpboot]# mkdir pxelinux.cfg ✅
[root@centos7 tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ ✅
----------------------------------------------------------------------
[root@centos7 tftpboot]# rpm -ql syslinux | grep menu.c32
/usr/share/syslinux/menu.c32
/usr/share/syslinux/vesamenu.c32
[root@centos7 tftpboot]# cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/ ✅
-----------------------------------------------------------------------
[root@centos7 ~]# cp /run/media/root/CentOS\ 7\ x86_64/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/ ✅
-----------------------------------------------------------------------
[root@centos7 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 100G 0 part /
├─sda3 8:3 0 50G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 3G 0 part [SWAP]
sr0 11:0 1 10.3G 0 rom /run/media/root/CentOS 7 x86_64
[root@centos7 ~]# cp /run/media/root/CentOS\ 7\ x86_64/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default ✅
------------------------------------------------------------------------
[root@centos7 ~]# cp /run/media/root/CentOS\ 7\ x86_64/isolinux/vesamenu.c32 /var/lib/tftpboot/pxelinux.cfg/default ✅
------------------------------------------------------------------------
最終目錄樹如下
7、製作菜單
[root@centos7 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
8、創建一臺新的centos7進行測試
選擇基於網絡安裝 |
---|
顯示了我們製作的菜單項 |
---|
安裝成功,登錄我們創建的用戶 |
---|
看到這條信息,首先謝謝您😘其次表示本次實驗到這就完全結束了,歡迎下次光臨!(~ ̄▽ ̄)~ |
---|