Linux配置批量裝機詳解

項目名稱:機房PXE全自動批量裝配

任務目標:機房裏有一批(200多臺)計算機,須要爲其安裝CentOS 7.5操做系統,而且部署好Web服務 …… 。
完成時間:24小時內須要交付html

應用場景:

1)XX學校機房
2)紅帽認證考試環境
3)企業集羣節點部署
4)數據中心服務器批量配置
Shell腳本linux

項目需求:
  1. 爲一批機器(好比裸機)快速安裝CentOS7操做系統
  2. 經過獨立網絡(不要有其餘的DHCP服務器,必要時應關閉VMware的DHCP)來實現
  3. 本身整理一份Word版的實驗報告,以備不時之需vim

    任務分析
    任務一:準備一臺CentOS7服務器
    任務二:提供DHCP服務
    任務三:爲客戶機提供軟件包資源(Web方式)
    任務四:提供網絡啓動相關的文件(構建TFTP啓動服務器)
    任務五:測試PXE網絡啓動及安裝
    任務六:提供自動應答文件(回答安裝過程當中的各類問題)
    任務七:客戶機無人值守安裝測試centos

TFTP,簡單FTP協議(UDP 161)
FTP,TCP 21/20 。。。瀏覽器

相關知識:快速獲取XX命令或者配置文件的使用說明/手冊
man 命令名
或者
man 配置文件名bash

在英文環境下運行XX命令行
LANG= XX命令行服務器

Shell腳本,長腳(本身跑)的包含了不少可執行命令行的文本文件
vim 腳本文件
。。。。。
chmod +x 腳本文件markdown

相關知識:

PXE,預啓動環境(Pre-boot eXcute Environment)
—— 默認集成在網卡BOOTROM芯片內(pxeclient)網絡

額外準備:PXE服務器(爲客戶機裝系統、爲客戶機提供系統)app

如何提供一個PXE批量裝機的服務器端:
1)DHCP服務,提供IP地址、告知引導服務器在哪、告知獲取一個啓動文件
2)TFTP服務,提供啓動內核、啓動配置文件等等
3)HTTP或FTP服務,提供CentOS7軟件包資源
4)配置自動安裝

實現過程

任務一: 準備一臺CentOS7服務器

1)配置好固定主機名pxesvr、IP地址 192.168.10.7/24
#hostnamectl set-hostname pxesvr
#nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.10.7/24 connection.autoconnect yes
#nmcli connection up ens33
2)關閉防火牆、禁用SELinux保護機制
#systemctl disable firewalld --now //禁止開機自啓,並當即中止
vim /etc/selinux/config
SELINUX=disabled
setenforce 0
3)把CentOS7的光盤(若是是虛擬機,要鏈接好ISO文件)掛載到 /mnt/dvd
mkdir /mnt/dvd
#mount /dev/cdrom /mnt/dvd
4)使用 /mnt/dvd 目錄做爲臨時的軟件源
rm -rf /etc/yum.repos.d/*.repo
yum-config-manager --add file:///mnt/dvd
vim /etc/yum.conf
gpgcheck=0
yum repolist

!!!! 若是當前主機中沒有網絡鏈接,須要先添加鏈接,再配置地址
1)找到網卡設備的名字(好比ens33)
nmcli device status
.. ..
2)爲網卡ens33添加鏈接(好比也叫ens33)
格式:nmcli con add con-name 鏈接名 ifname 網卡名 type ethernet
nmcli connection add con-name ens33 ifname ens33 type ethernet

Linux配置文件內,# 開始的部分表示註釋

任務二:提供DHCP服務

1)爲客戶機分配IP地址相關參數
2)告訴客戶機下一步去找哪一臺服務器、去索取一個網卡啓動文件
!!!! Linux系統配置文件中的註釋標記 #
!!!! 停用工做網絡(好比NAT)中其餘DHCP服務(好比VMware自帶),避免衝突

yum -y install dhcp
vim /etc/dhcp/dhcpd.conf
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.100 192.168.10.200;
next-server 192.168.10.7; //告知下一個服務器(TFTP)的地址
filename "pxelinux.0"; //告知須要下載的網卡啓動文件名
}
systemctl enable dhcpd --now //設置開機自啓,並當即啓動

其餘配置參考:
#option routers 默認網關地址;
#option domain-name-servers DNS服務器1地址,DNS服務器2地址;
#default-lease-time 3600; //默認租約時間
#max-lease-time 7200; //最大租約時間

!!!! DHCP服務排錯 ——
1)檢查服務狀態
systemctl status dhcpd
狀態正常應該是 綠色的 active (running)
systemctl restart dhcpd
Job for dhcpd.service failed because the control process exited with error code. See "systemctl status dhcpd.service" and "journalctl -xe" for details. ==》說明配置文件有錯誤,或者本機的IP地址網段不符。

2)獲知配置文件哪裏有錯、有什麼樣的錯誤
vim /var/log/messages //Linux服務器的日記
.. .. 從最後一行往前找
/etc/dhcp/dhcpd.conf line 10: 。。。。。 //第10行有XX錯誤

!!!! 本機測試以DHCP方式獲取地址:
dhclient -d ens33 //-d表示調試模式,不真正修改地址
.. ..
bound to 192.168.10.X
.. ..
按Ctrl + C 終止測試

任務三:爲客戶機提供軟件包資源(Web方式)

1)裝httpd包
yum -y install httpd
2)部署軟件包資源
mkdir /var/www/html/cos7dvd
cp -r /mnt/dvd/* /var/www/html/cos7dvd
.. .. 請耐心等待,不要中斷
3)起httpd服務
systemctl enable httpd --now

從本機瀏覽器訪問 http://192.168.10.7/cos7dvd,能看到軟件資源頁

!!!! Web配置(若是原來配置過虛擬Web主機,須要注意)
1)一旦啓用虛擬主機之後,默認ServerName、DocumentRoot失效
2)若是瀏覽器提交過來的HTTP請求不屬於任何已經定義的某一個虛擬主機,那麼以第一個虛擬主機的網頁目錄作反饋
vim /etc/httpd/conf.d/vhosts.conf //在第1行插入如下內容
<VirtualHost *:80>
DocumentRoot /var/www/html
</VirtualHost>
systemctl enable httpd --now

任務四:提供網絡啓動相關的文件(構建TFTP啓動服務器)

1)網卡啓動文件 pxelinux.0
由軟件包 syslinux 提供(/usr/share/syslinux/pxelinux.0)
2)啓動菜單配置 pxelinux.cfg/default (配置模塊文件、背景圖片……)、加載CentOS7系統安裝程序(vmlinuz、initrd.img)
從CentOS7光盤目錄isolinux/下得到
yum -y install tftp-server //安裝TFTP服務軟件
yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ //部署啓動文件
cp /mnt/dvd/isolinux/* /var/lib/tftpboot/ //部署配套文件
cd /var/lib/tftpboot/
mkdir pxelinux.cfg //建立配置目錄
cp isolinux.cfg pxelinux.cfg/default //創建默認菜單配置
vim pxelinux.cfg/default
查找 label linux,修改下方的 append 行,inst.stage2=後指定軟件包來源地址
append initrd=initrd.img inst.stage2=http://192.168.10.7/cos7dvd
systemctl enable tftp --now //啓動TFTP服務端

測試TFTP資源是否能夠下載:
cd /root
yum -y install tftp
tftp 192.168.10.7 -c get pxelinux.0
ls -lh pxelinux.0

任務五:測試PXE網絡啓動及安裝

1)新建一臺虛擬機(CentOS64位、內存>2G)
2)把虛擬機開機客戶機從網卡啓動
---- DHCP自動獲取到地址
---- 鏈接TFTP服務器
---- 下載pxelinux.0啓動文件
---- 獲取菜單配置文件 pxelinux.cfg/default
3)看到安裝菜單 ==》選擇安裝Install CentOS7
---- 下載 vmlinuz、initrd.img
---- 運行內核文件、加載安裝程序、確保能看到圖形選語言界面、……
---- 手動指定安裝來源 http://192.168.10.7/cos7dvd
---- 後續過程與光盤安裝相似,能夠不用完成安裝,關閉虛擬機便可

!!!! 若客戶機的內存過小,開機PXE引導時容易出現內核崩潰現象
kernel panic 內核崩潰(恐慌)

kickstart無人值守/自動應答技術

kick,踢
start,開始

Shell腳本(本身會跑/運行的文本)

kickstart無人值守技術
kick,start

Shell腳本,長腳(+x)的文本

rm -rf /etc/yum.repos.d/*.repo
echo '[development]
name=CentOS7
baseurl=http://192.168.10.7/cos7dvd/
enabled=1
gpgcheck=0' > /etc/yum.repos.d/centos7.repo

任務六:提供自動應答文件(回答安裝過程當中的各類問題)

1)如何獲取應答文件
vim /etc/yum.repos.d/.repo
[development] //源的ID要求 改爲 development
yum -y install system-config-kickstart
system-config-kickstart
基本配置:語言、時區、管理密碼
安裝方法:全新安裝、HTTP安裝源的設置
安裝引導裝載程序:安裝新引導裝載程序
分區:三個單選都選第一項、添加 swap 2000M、/ 剩餘全部空間
網絡配置:添加一個鏈接(DHCP)
軟件包選擇:勾選「桌面」下除了KDE之外的全部軟件類
安裝後腳本,參考如下內容:
rm -rf /etc/yum.repos.d/
.repo
echo '[cos7dvd]
name=added from: file:///mnt/dvd
baseurl=http://192.168.10.7/cos7dvd
enabled=1
gpgcheck=0
' > /etc/yum.repos.d/cos7dvd.repo
yum -y install httpd
echo 'NTD1906' > /var/www/html/index.html
wget http://192.168.10.7/Discuz_X3.4_SC_UTF8.zip
unzip Discuz_X3.4_SC_UTF8.zip
cp -rf upload/* /var/www/html/
systemctl enable httpd
.. ..

—— 保存到 /root/ks.cfg

2)如何讓客戶機用上這個應答文件
cp /root/ks.cfg /var/www/html/ks-cos7.cfg
瀏覽器訪問 http://192.168.10.7/ks-cos7.cfg
vim /var/lib/tftpboot/pxelinux.cfg/default
查找 linux,修改下方的 append 行,
刪除 inst.stage2= 部分,換成 ks=應答文件的下載地址
append initrd=initrd.img ks=http://192.168.10.7/ks-cos7.cfg

任務七:客戶機無人值守安裝測試

1)新建一臺虛擬機(CentOS64位、內存>2G)
2)把虛擬機開機客戶機從網卡啓動
---- DHCP自動獲取到地址
---- 鏈接TFTP服務器
---- 下載pxelinux.0啓動文件
---- 獲取菜單配置文件 pxelinux.cfg/default
3)看到安裝菜單 ==》選擇安裝CentOS7
---- 下載 vmlinuz、initrd.img
---- 運行內核文件、加載安裝程序、確保能看到圖形選語言界面、……
---- 自動完成安裝過程

Shell腳本程序 ——Shell(/bin/bash)長腳的文本文件(包含了一批Linux命令行)

相關文章
相關標籤/搜索