CentOS系統通過PXE實現批量無人值守安裝

2021-09-20 05:10:51 字數 4855 閱讀 5273

通過傳統的方式安裝和部署計算機時,都需要人工干預的方式完成安裝。如果需要部署大量的類似功能的工作站或伺服器,則需要耗費大量的時間。同時傳統的安裝方式,每台計算機都需要光碟機裝置及安裝光碟等介質,會額外增加部署成本。因此,許多系統管理員都希望能夠通過一種網路化的無人值守的自動安裝方式將作業系統部署到目標計算機中。

1、pxe協議

2、kickstart

通過傳統的方式安裝和部署計算機時,都會要求通過互動的方式,回答各類問題,以完成安裝和部署任務,過程繁瑣,且無法實現自動化。紅帽公司開發了 kickstart 的安裝方法,通過 ks 檔案可以解決所有普通安裝方式中需要回答的問題。可以通過 system-config-kickstart 工具定製 ks 檔案,也可以通過相關語法來手工編寫安裝指令碼。

3、centos作業系統

本次實驗中所使用和安裝的作業系統為centos 7,理論上 centos 6也是適用的。

4、dhcp

動態主機配置協議,主要用於給 dhcp 客戶端自動分配 ip 位址,便於使用者管理網路內部的計算機。針對 pxe 環境下,dhcp 伺服器除分配 ip 位址外,還需要額外配置"next-server"選項定義 tftp 伺服器的位址,設定"filename"選項定義啟動檔案的名稱。並且啟動"booting"與"bootp"的支援。

5、tftp與ftp

簡單檔案傳輸協議(tftp)主要用於為客戶機與伺服器之間進行簡單檔案傳輸的協議。在 pxe 早期啟動過程中,主要通過 tftp 協議傳輸"pxelinux.0"。檔案傳輸協議(ftp),適用於大量檔案傳輸的情形,在後期安裝過程,主要通過 ftp 協議傳輸 linux 作業系統的安裝包。

1、安裝vsftpd服務

[root@localhost ~]# yum

install -y vsftpd

2、提供作業系統映象檔案

ftp 預設配置即可,我們需要適用匿名使用者。通過ftp安裝作業系統,我們需要把作業系統映象檔案拷貝到這個匿名使用者目錄

[root@localhost ~]# mount /dev/cdrom /var/ftp/pub/ # /var/ftp/pub是ftp的匿名使用者目錄

3、啟動ftp服務

[root@localhost ~]# systemctl start  vsftpd    # 啟動ftp服務

[root@localhost ~]# systemctl enable vsftpd # 設定開機啟動

dhcp 和 tftp 服務可以選擇單獨分別去安裝,也可以通過安裝 dnsmasq 服務,來實現 dhcp 和 tftp 的功能。

1、安裝dnsmasq軟體包

[root@localhost ~]# yum

install -y dnsmasq

2、配置dnsmasq

dnsmasq 的配置檔案是 /etc/dnsmasq.conf,主要是去掉以下相關的注釋,並設定修改 dhcp 的範圍和 tftp 的根目錄。

bogus-priv

filterwin2k

inte***ce=eth0

dhcp-range=192.168.0.50,192.168.0.100

,12h

dhcp-boot=pxelinux.0

enable-tftp

tftp-root=/var/tftp# tftp目錄預設是沒有的,需要手動建立

dhcp-authoritative

3、建立tftp根目錄

[root@localhost ~]# mkdir /var/tftp

4、啟動dnsmasq

[root@localhost ~]# systemctl start  dnsmasq

[root@localhost ~]# systemctl enable dnsmasq

1、從iso中拷貝核心映象和檔案系統映象

cp /var/ftp/pub/images/pxeboot/initrd.img /var/tftp/    # 拷貝檔案系統映象

cp /var/ftp/pub/images/pxeboot/vmlinuz /var/tftp/ # 拷貝核心映象檔案

2、生成pxe啟動檔案pxelinux.0

yum

install -y syslinux # 安裝pxelinux.0所需要的包

rpm -ql syslinux | grep

"pxelinux.0

" # 查詢檔案所在目錄

cp /usr/share/syslinux/pxelinux.0 /var/tftp/ # 拷貝pxelinux.0檔案到tftp根目錄

3、準備預設的選單配置檔案

mkdir /var/tftp/pxelinux.cfg/         # 建立pxelinux.cfg目錄,固定目錄名稱

vim /var/tftp/pxelinux.cfg/default # default檔案,必須為這個名稱

default linux

prompt

1timeout

60display boot.msg

label linux

kernel vmlinuz

4、生成kickstart檔案

kickstart 檔案可以通過 system-config-kickstart 視覺化工具來進行配置,生成 ks.cfg 檔案;也可以通過已經安裝好的作業系統的模板檔案 anaconda-ks.cfg 來稍加修改即可。下邊的 ks.cfg 檔案是做實驗時的樣本,內容如下(加粗為修改部分):

#version=devel

# system authorization information

auth --enableshadow --passalgo=sha512

# use cdrom installation media

install

url --url=ftp://

# use graphical install

graphical

# run the setup agent on first boot

firstboot --enable

ignoredisk --only-use=sda

# keyboard layouts

keyboard --vckeymap=us --xlayouts='us'

# system language

lang en_us.utf-8

# network information

network --bootproto=dhcp --device=ens33 --onboot=off --ipv6=auto --no-activate

network --hostname=localhost.localdomain

# root password

rootpw --iscrypted $6

$lk7yftvlsa2zcgia$4lohyywzuosdwvza7qzf.0lhmrcd5n26bk1xwm7qcnbdbbsjc7mk7yayrvmixgi8wu.t96jo6m8rrmnyjsky60

# system services

services --disabled="

chronyd

"# system timezone

timezone asia/shanghai --isutc --nontp

# system bootloader configuration

crashkernel=auto

" --location=mbr --boot-drive=sda

autopart --type=lvm

# partition clearing information

clearpart --all --initlabel --drives=sda

... ... ... ... # 還有很多內容

拷貝 ks.cfg 檔案到 ftp 目錄

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

[root@localhost ~]# chmod +r /var/ftp/ks.cfg

以上工作完成之後,就可以開始安裝作業系統了:

1、準備一台適當配置的物理機

2、連線網線,與伺服器在同乙個區域網內

3、設定 bios 從網絡卡啟動

4、等待安裝......

遇到的問題,有的主機即使設定了 bios 從 network 啟動,仍然不能正常從網路來啟動安裝,需要仔細查詢到 biso 的關於 pxe 的開關設定,然後將其開啟,每個主機的 bios 設定方式都不同,需要自己根據具體的硬體來設定。

CentOS系統通過日誌反查是否被入侵

一 檢視日誌檔案 linux檢視 var log wtmp檔案檢視可疑ip登陸 last f var log wtmp 該日誌檔案永久記錄每個使用者登入 登出及系統的啟動 停機的事件。因此隨著系統正常執行時間的增加,該檔案的大小也會越來越大,增加的速度取決於系統使用者登入的次數。該日誌檔案可以用來檢...

ELK日誌分析系統通過shield實現許可權管理

把使用者切換到elasticsearch的使用者,並將目錄切換到elasticsearch安裝目錄下 執行下面操作 安裝elasticsearch許可外掛程式 bin plugin install elasticsearch license latest 安裝shield外掛程式 bin plugi...

centos下沒有桌面系統,通過命令列配置網路資訊

公司內部需要使用伺服器,但是要求安裝ubuntu沒有桌面的版本系統,後來通過配置 etc network inte ces etc init.d networking restart 這條命令是重啟網絡卡 或者 ifdown eth0 ifup eth0 這兩條命令是有針對性的重啟某個網路介面,因為...