Linux——Pxe+Nfs+Kickstart自動部署安裝Centos7.4


PXE簡介

PXE,全名Pre-boot Execution Environment,預啟動執行環境;
通過網絡接口啟動計算機,不依賴本地存儲設備(如硬盤)或本地已安裝的操作系統;
由Intel和Systemsoft公司於1999年9月20日公布的技術;
Client/Server的工作模式;
PXE客戶端會調用網際協議(IP)、用戶數據報協議(UDP)、動態主機設定協議(DHCP)、小型文件傳輸協議(TFTP)等網絡協議;
PXE客戶端(client)這個術語是指機器在PXE啟動過程中的角色。一個PXE客戶端可以是一台服務器、筆記本電腦或者其他裝有PXE啟動代碼的機器(我們電腦的網卡)。

PXE的工作流程:

 

 

 

 

 

實驗環境:

虛擬機:VMware® Workstation 15 Pro

均使用NAT連接   網段為192.168.1.0/24

 

 

!! 使用支持PXE的網卡

!!關閉軟件自帶的DHCP服務

 

PXE 服務器 ---- Centos 7.4

IP地址:192.168.1.1/24

網關: 192.168.1.254

 

版本如下

 

!!由於涉及到主機間不同基於不同協議的通信,所以為了避免不必要的麻煩,我們選擇關閉防火牆以及selinux。如下

[root@localhost ~]# systemctl stop firewalld         //關閉防火牆
[root@localhost ~]# setenforce 0        //臨時關閉Selinux,重啟失效

 

一、部署DHCP

 

安裝以下:

[root@localhost ~]#yum install dhcp -y

 

 

  1、復制模板

  

 

  2、編輯配置文件

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
//從47行開始編輯
subnet 192.168.1.0 netmask 255.255.255.0 {         //修改網段和掩碼
  range 192.168.1.210 192.168.1.215;          //分配地址池      
  option domain-name-servers 192.168.1.1;         //指定dns服務器
#  option domain-name "internal.example.org";          //注釋此行
  option routers 192.168.1.254;         //指定網關
  option broadcast-address 192.168.1.255;       //廣播地址
  default-lease-time 600;
  max-lease-time 7200;
  next-server 192.168.1.1;      //指定下一跳---TFTP
  filename "pxelinux.0";     //指定去下載一個pxelinux.0文件
}

 

    3、重啟DHCP並開啟自啟動

[root@localhost ~]# systemctl restart dhcpd
[root@localhost ~]# systemctl enable dhcpd
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.

 

二、部署TFTP

 

安裝以下:

[root@localhost ~]# yum install tftp-server xinetd -y

 

  1、編輯配置文件

[root@localhost ~]# vim /etc/xinetd.d/tftp 

 

  2、重啟TFTP並開啟自啟動

[root@localhost ~]# systemctl restart tftp
[root@localhost ~]# systemctl enable tftp
Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.
[root@localhost ~]# systemctl restart xinetd
[root@localhost ~]# systemctl enable xinetd

 

三、安裝Syslinux

 

  安裝如下:

[root@localhost ~]# yum install syslinux -y

 

四、部署Kickstart

 

  1、配置ks.cfg文件

//ks.cfg的模板在/root下的anaconda-ks.cfg文件

 

a、創建ks.cfg存放目錄

[root@localhost ~]# mkdir /pxe

 

b、復制模板

[root@localhost ~]# cp /root/anaconda-ks.cfg /pxe/ks.cfg

 

c、編輯ks.cfg

[root@localhost ~]# vim /pxe/ks.cfg 

 

 

關鍵字 含義
install    告知安裝程序,這是一次全新安裝,而不是升級upgrade。
url --url=" "    通過FTP或HTTP從遠程服務器上的安裝樹中安裝。
url --url="http://10.0.0.7/CentOS-6.7/"
url --url ftp://<username>:<password>@<server>/<dir>
nfs    從指定的NFS服務器安裝。
nfs --server=nfsserver.example.com --dir=/tmp/install-tree
text    使用文本模式安裝。
lang    設置在安裝過程中使用的語言以及系統的缺省語言。lang en_US.UTF-8
keyboard    設置系統鍵盤類型。keyboard us
zerombr    清除mbr引導信息。
bootloader    系統引導相關配置。
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
--location=,指定引導記錄被寫入的位置.有效的值如下:mbr(缺省),partition(在包含內核的分區的第一個扇區安裝引導裝載程序)或none(不安裝引導裝載程序)。
--driveorder,指定在BIOS引導順序中居首的驅動器。
--append=,指定內核參數.要指定多個參數,使用空格分隔它們。
network    為通過網絡的kickstart安裝以及所安裝的系統配置聯網信息。
network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=CentOS6
--bootproto=[dhcp/bootp/static]中的一種,缺省值是dhcp。bootp和dhcp被認為是相同的。
static方法要求在kickstart文件里輸入所有的網絡信息。
network --bootproto=static --ip=10.0.0.100 --netmask=255.255.255.0 --gateway=10.0.0.2 --nameserver=10.0.0.2
請注意所有配置信息都必須在一行上指定,不能使用反斜線來換行。
--ip=,要安裝的機器的IP地址.
--gateway=,IP地址格式的默認網關.
--netmask=,安裝的系統的子網掩碼.
--hostname=,安裝的系統的主機名.
--onboot=,是否在引導時啟用該設備.
--noipv6=,禁用此設備的IPv6.
--nameserver=,配置dns解析.
timezone    設置系統時區。timezone --utc Asia/Shanghai
authconfig    系統認證信息。authconfig --enableshadow --passalgo=sha512
設置密碼加密方式為sha512 啟用shadow文件。
rootpw    root密碼
clearpart    清空分區。clearpart --all --initlabel
--all 從系統中清除所有分區,--initlable 初始化磁盤標簽
part    磁盤分區。
part /boot --fstype=ext4 --asprimary --size=200
part swap --size=1024
part / --fstype=ext4 --grow --asprimary --size=200
--fstype=,為分區設置文件系統類型.有效的類型為ext2,ext3,swap和vfat。
--asprimary,強迫把分區分配為主分區,否則提示分區失敗。
--size=,以MB為單位的分區最小值.在此處指定一個整數值,如500.不要在數字后面加MB。
--grow,告訴分區使用所有可用空間(若有),或使用設置的最大值。
firstboot    負責協助配置redhat一些重要的信息。
firstboot --disable
selinux    關閉selinux。selinux --disabled
firewall    關閉防火牆。firewall --disabled
logging    設置日志級別。logging --level=info
reboot    設定安裝完成后重啟,此選項必須存在,不然kickstart顯示一條消息,並等待用戶按任意鍵后才重新引導,也可以選擇halt關機。

 

d、給予ks.cfg可讀權限

[root@localhost ~]# chmod +r /pxe/ks.cfg 
[root@localhost ~]# ll /pxe/ks.cfg        //列出ks.cfg的詳細屬性 -rw-r--r--. 1 root root 1309 Aug 23 20:56 /pxe/ks.cfg

 

  2、復制內核文件

 

內核文件、虛擬根文件以及菜單文件,我們都是通過tftp服務來提供的,由於系統及版本的不同,對於一個比較復制機群來說,我們需要准備不同系統,不同版本的內核文件,initrd.img文件。菜單文件只需要一份即可。/var/lib/tftpboot/目錄規划如下:

 

a、創建鏡像下載目錄

[root@localhost ~]# mkdir /pxe/cdrom

 

b、復制內核文件

//從掛載的光驅里面復制內核文件:     //我掛載的是mnt
[root@localhost ~]# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/ [root@localhost ~]# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/ [root@localhost ~]# cp /mnt/isolinux/boot.msg /var/lib/tftpboot/ [root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg [root@localhost ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
//復制syslinux的pxelinux.0
[root@localhost
~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

 

c、編輯應答文件

[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default

 

 

 d、復制光驅里的文件到下載目錄

[root@localhost ~]# cp -rf /mnt/* /pxe/cdrom/                  //東西很多,要復制2~3分鍾左右

 

五、部署NFS

 

  1、安裝NFS如下

[root@localhost ~]# yum install nfs-utils -y

  2、編輯NFS配置文件

[root@localhost ~]# vim /etc/exports

  3、重啟NFS並加入自啟動

 

[root@localhost ~]# systemctl restart nfs
[root@localhost ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

 

!!再次提醒,注意防火牆,會影響效果

!!要么允許要么關閉!

!!由於涉及到主機間不同基於不同協議的通信,所以為了避免不必要的麻煩,我們選擇關閉防火牆以及selinux。如下

[root@localhost ~]# systemctl stop firewalld         //關閉防火牆
[root@localhost ~]# setenforce 0        //臨時關閉Selinux,重啟失效

 

六、安裝虛擬機

 

 

 

 

 

 

 

 

開始安裝!

 

 

安裝完成

 

 

七、我的踩坑記錄

問題1:

運行內存給的不過,Centos7.3以上的版本貌似要2G及以上才可以

解決方法:關機將運行內存調至2G即可

 

問題2:

無法連接到nfs服務器,nfs服務器格式錯誤

/var/lib/tftproot/pxelinux.cfg/default  有問題

錯誤原因

參數格式錯誤:ks=nfs:192.168.1.1/var/www/html/ks.cfg

正確格式:ks=nfs:192.168.1.1:/var/www/html/ks.cfg

一個不小心參數少打個冒號

解決方法:修改為正確格式即可

 

 

本篇文章由博客園博主[伊諾丶]原創,轉載請注明出處https://www.cnblogs.com/hinaux/p/Article_2.html
否則將追究法律責任!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM