linux進階-基於網絡的PXE自動化安裝詳細步驟全get

基於網絡的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進行測試

選擇基於網絡安裝

在這裏插入圖片描述

顯示了我們製作的菜單項

在這裏插入圖片描述

安裝成功,登錄我們創建的用戶

在這裏插入圖片描述

看到這條信息,首先謝謝您😘其次表示本次實驗到這就完全結束了,歡迎下次光臨!(~ ̄▽ ̄)~
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章