基于AutoYaST自動(dòng)化安裝SuSE實(shí)踐

前言

在金融行業(yè)中我所接觸的操作系統(tǒng)主要是AIXSLES(SuSE Linux Enterprise Server),也許大家平時(shí)用得更多是CentOS,雖然有部分差異但原理都是相通的,SMITYaST也是灰常實(shí)用的功能,推薦大家有機(jī)會(huì)嘗試體驗(yàn)下。因?yàn)榫W(wǎng)上關(guān)于SuSE自動(dòng)化部署的參考文章較少,這套自動(dòng)化部署方案已經(jīng)被驗(yàn)證并在生產(chǎn)系統(tǒng)使用了1年半,配置相對(duì)成熟和穩(wěn)定。遵循Don't Repeat Yourself原則,本文主要介紹基于AutoYaST實(shí)現(xiàn)半自動(dòng)化SuSE定制光盤(pán)和PXE網(wǎng)絡(luò)全自動(dòng)化安裝SuSE的實(shí)踐過(guò)程,如需了解更加詳細(xì)的參數(shù)說(shuō)明可以參考擴(kuò)展閱讀中的SuSE官網(wǎng)。

AutoYaST是自動(dòng)化部署SuSE的黃金搭檔


更新歷史

2015年05月28日 - 初稿

閱讀原文 - http://wsgzao.github.io/post/autoyast/

擴(kuò)展閱讀


SuSE自動(dòng)安裝光盤(pán)

定制版本

SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2

下載地址 - https://www.suse.com/zh-cn/download-linux/

AutoYast簡(jiǎn)介

AutoYast是SuSE Linux的自動(dòng)安裝工具。通過(guò)AutoYast,在DHCP、TFTP、PXE服務(wù)的支持下,通過(guò)FTP、NFS等網(wǎng)絡(luò)安裝源可以實(shí)現(xiàn)SuSE Linux的完全無(wú)人值守自動(dòng)安裝。但是,這種方式必須建立獨(dú)立的服務(wù)器且客戶端支持PXE網(wǎng)絡(luò)啟動(dòng),在現(xiàn)場(chǎng)沒(méi)有網(wǎng)絡(luò)或者系統(tǒng)不支持客戶端網(wǎng)卡的場(chǎng)景下不適合,通過(guò)AutoYast制作的SuSE Linux一鍵安裝光盤(pán)可以滿足上述場(chǎng)景。本文主要介紹SuSE Linux Enterprise Server 11(簡(jiǎn)稱SLES11)一鍵安裝光盤(pán)的制作, 其他SuSE Linux僅供參考。

生成AutoYaST配置文件

AutoYast配置成功后,生成一個(gè)名為autoinst.xml的XML配置文件,SuSE Linux通過(guò)這個(gè)文件控制操作系統(tǒng)的安裝。AutoYast生成配置文件有3種方式:

  1. 系統(tǒng)安裝時(shí)自動(dòng)生成
  2. 系統(tǒng)安裝后通過(guò)運(yùn)行命令生成
  3. 直接編輯生成(偷懶最佳姿勢(shì)

系統(tǒng)安裝時(shí)生成配置文件

按照正常步驟安裝SLES11,把必須的軟件全部安裝。運(yùn)行到最后一步“安裝已完成”,勾選“為AutoYast復(fù)制此系統(tǒng)”,系統(tǒng)開(kāi)始克隆系統(tǒng)生成配置文件,并彈出提示窗口。生成配置文件用時(shí)約2分鐘左右,生成的配置文件位于/root目錄下。

運(yùn)行命令生成或者修改配置文件

如果在系統(tǒng)安裝時(shí)沒(méi)有生成配置文件,可以運(yùn)行命令生成。在系統(tǒng)中打開(kāi)終端,以root用戶運(yùn)行命令yast2 autoyast,打開(kāi)AutoYast配置窗口,選擇“工具”->“創(chuàng)建參考配置文件”,彈出“創(chuàng)建參考控制文件”窗口。勾選需要配置的項(xiàng)目,如軟件包選擇、語(yǔ)言、分區(qū)、鍵盤(pán)布局、防火墻、網(wǎng)絡(luò)設(shè)置等,AutoYast根據(jù)選擇的項(xiàng)目從系統(tǒng)獲取相關(guān)配置信息。選擇“文件”->“保存”,彈出“另存為”窗口,輸入文件名“autoinst.xml",選擇“保存”,系統(tǒng)提示文件保存到指定目錄下。

有時(shí)我們需要對(duì)模塊做些調(diào)整,比如磁盤(pán)分區(qū)、軟件包等。以調(diào)整磁盤(pán)分區(qū)為例介紹配置文件的修改。
以root用戶運(yùn)行yast2 autoyast,打開(kāi)AutoYast窗口,選擇“文件”->“打開(kāi)”,選擇autoinst.xml文件,等系統(tǒng)讀取配置后,在AutoYast窗口顯示配置配件名稱,修改后保存即可。

制作安裝光盤(pán)

AutoYast配置文件生成后,可以開(kāi)始制作一鍵安裝光盤(pán)了。制作一鍵安裝光盤(pán)需要用到SLES11的原安裝光盤(pán)的數(shù)據(jù)。

#首先復(fù)制SLES11原安裝光盤(pán)的數(shù)據(jù)到指定目錄
mkdir /tmp/sles11
cp -R /media/S*/* /tmp/sles11
#復(fù)制autoinst.xml
cp /root/autoinst.xml /tmp/sles11
#編輯isolinux.cfg文件,找到# install所在位置
cd boot/x86_64/loader/

vi isolinux.cfg

# install
  append initrd=initrd autoyast=file:///autoinst.xml splash=silent showopts 
:x!

#運(yùn)行mkisofs命令生成自動(dòng)安裝光盤(pán)
cd /tmp/sles11

mkisofs  -R -o /tmp/SLES11-SP2-64-AUTO.iso -b boot/x86_64/loader/isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .

我的配置文件

預(yù)設(shè)分區(qū)

名稱 格式 大小
swap swap 16G
boot ext3 120M
LVM
root ext3 5G
usr ext3 10G
var ext3 5G
opt ext3 10G
home ext3 15G
tmp ext3 10G
總計(jì) 71G

預(yù)裝軟件包

KDE Desktop Environment
Oracle Server Base
C/C++ Compiler and Tools
nmap
java-1_6_0
libstdc++43-devel-32bit

預(yù)設(shè)語(yǔ)言

主要:英語(yǔ)
添加:中文

預(yù)設(shè)用戶名/密碼

root/如果你直接復(fù)用我的配置文件請(qǐng)私信我獲取密碼

預(yù)設(shè)網(wǎng)絡(luò)配置

禁用服務(wù):防火墻,IPv6

autoinst.xml

SuSE自動(dòng)化PXE網(wǎng)絡(luò)安裝

PXE基本原理

什么是PXE

PXE(Pre-boot Execution Environment)是由Intel設(shè)計(jì)的協(xié)議,它可以使計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)啟動(dòng)。協(xié)議分為client和server兩端,PXE client在網(wǎng)卡的ROM中,當(dāng)計(jì)算機(jī)引導(dǎo)時(shí),BIOS把PXE client調(diào)入內(nèi)存執(zhí)行,并顯示出命令菜單,經(jīng)用戶選擇后,PXE client將放置在遠(yuǎn)端的操作系統(tǒng)通過(guò)網(wǎng)絡(luò)下載到本地運(yùn)行。
PXE協(xié)議的成功運(yùn)行需要解決以下兩個(gè)問(wèn)題:

  1. 既然是通過(guò)網(wǎng)絡(luò)傳輸,那么計(jì)算機(jī)在啟動(dòng)時(shí),它的IP地址由誰(shuí)來(lái)配置;
  2. 通過(guò)什么協(xié)議下載Linux內(nèi)核和根文件系統(tǒng)。

對(duì)于第一個(gè)問(wèn)題,可以通過(guò)DHCP Server解決,由DHCP server來(lái)給PXE client分配一個(gè)IP地址,DHCP Server是用來(lái)給DHCP Client動(dòng)態(tài)分配IP地址的協(xié)議,不過(guò)由于這里是給PXE Client分配IP地址,所以在配置DHCP Server時(shí),需要增加相應(yīng)的PXE特有配置。
至于第二個(gè)問(wèn)題,在PXE client所在的ROM中,已經(jīng)存在了TFTP Client。PXE Client使用TFTP Client,通過(guò)TFTP協(xié)議到TFTP Server上下載所需的文件。
這樣,PXE協(xié)議運(yùn)行的條件就具備了,下面我們就來(lái)看看PXE協(xié)議的工作過(guò)程。

工作過(guò)程

在下圖中,PXE client是需要安裝Linux的計(jì)算機(jī),TFTP Server和DHCP Server運(yùn)行在另外一臺(tái)Linux Server上。Bootstrap文件、配置文件、Linux內(nèi)核以及Linux根文件系統(tǒng)都放置在Linux Server上TFTP服務(wù)器的根目錄下。
PXE client在工作過(guò)程中,需要三個(gè)二進(jìn)制文件:bootstrap、Linux 內(nèi)核和Linux根文件系統(tǒng)。Bootstrap文件是可執(zhí)行程序,它向用戶提供簡(jiǎn)單的控制界面,并根據(jù)用戶的選擇,下載合適的Linux內(nèi)核以及Linux根文件系統(tǒng)。

方案介紹

這種方案需要首先設(shè)置一個(gè)啟動(dòng)服務(wù)器和一個(gè)安裝服務(wù)器(可以配置在同一臺(tái)物理機(jī)上),然后通過(guò)網(wǎng)絡(luò)啟動(dòng)存放在啟動(dòng)服務(wù)器上的安裝程序。安裝程序會(huì)自動(dòng)訪問(wèn)存放在安裝服務(wù)器上的安裝配置文件和安裝介質(zhì)來(lái)完成安裝。

涉及到的技術(shù)
該方案主要應(yīng)用了三種技術(shù):

  1. 在PC上從網(wǎng)絡(luò)啟動(dòng)SLES安裝程序的PXE協(xié)議
  2. SLES安裝程序提供的網(wǎng)絡(luò)安裝功能(即指通過(guò)網(wǎng)絡(luò)訪問(wèn)安裝介質(zhì))
  3. SLES安裝程序提供的無(wú)人值守安裝功能(SuSE稱為AutoYast)

軟硬件需求
要按本文介紹的方法完成自動(dòng)化安裝,你需要如下軟硬件資源:

  • 一臺(tái)PC機(jī)器作為啟動(dòng)和安裝服務(wù)器(其它架構(gòu)機(jī)器也可以)
  • 一臺(tái)待安裝的PC機(jī)器,它的網(wǎng)卡必須帶有PXE支持
  • 一個(gè)建好的局域網(wǎng),上述兩臺(tái)機(jī)器已經(jīng)連接入同一子網(wǎng)
  • 待安裝的SLES安裝介質(zhì)

配置tftpd

為了簡(jiǎn)化步驟,我們?cè)赬P虛擬機(jī)下搭建DHCP和TFTP服務(wù)端,用tftpd工具來(lái)整合實(shí)現(xiàn)PXE網(wǎng)絡(luò)引導(dǎo),注意服務(wù)端與客戶端要在同一局域網(wǎng)內(nèi)。在Linux下配置服務(wù)的原理類似,具體方法可參考互聯(lián)網(wǎng)。

(1)下載tftpd
http://tftpd32.jounin.net/

(2)啟動(dòng)tftpd32程序,選擇【Settings】

(3)按需勾選,這里我們僅選擇【TFTP】和【DHCP】

(4)TFTP設(shè)置如下
Base Directory:對(duì)應(yīng)存放Linux的引導(dǎo)文件
PXE Compatibility:增強(qiáng)對(duì)不同型號(hào)網(wǎng)卡的網(wǎng)絡(luò)啟動(dòng)支持
Show Progress bar:在網(wǎng)絡(luò)引導(dǎo)過(guò)程中顯示進(jìn)度
Translate Unix file names:轉(zhuǎn)化Unix文件名
Allow "" As virtual root:允許虛擬路徑
其它高級(jí)選項(xiàng):設(shè)置包括兼容性以及一些細(xì)節(jié)

(5)DHCP配置
重點(diǎn)注意Boot File引導(dǎo)文件的設(shè)置和DHCP綁定地址

(6)tftpboot目錄結(jié)構(gòu)

file://D:\tftpboot  (2 folders, 3 files, 35.86 MB, 36.46 MB in total.)
│   INITRD    32.20 MB
│   LINUX 3.64 MB
│   pxelinux.0    16.04 KB
├─pxelinux.cfg  (0 folders, 1 files, 193 bytes, 193 bytes in total.)
│         default 193 bytes
└─tftpd32   (0 folders, 4 files, 620.33 KB, 620.33 KB in total.)
            EUPL-EN.pdf 33.51 KB
            tftpd32.chm 346.96 KB
            tftpd32.exe 200.50 KB
            tftpd32.ini 39.36 KB

INITRD和LINUX提取自Linux啟動(dòng)引導(dǎo)鏡像
pxelinux.0是pxe啟動(dòng)引導(dǎo)鏡像
pxelinux.cfg文件夾下的default文件為啟動(dòng)菜單配置項(xiàng)
編輯tftpboot\pxelinux.cfg,可以自定義autoinst.xml文件的訪問(wèn)方式和路徑

default linux
 
# Install Linux
label linux
  kernel linux
  append initrd=initrd autoyast=ftp://198.15.0.106/suse/autoinst.xml install=ftp://198.15.0.106/suse splash=silent showopts

配置FTP

(1)下載Filezilla Server
http://filezilla-project.org/

(2)設(shè)置ftp
允許匿名訪問(wèn)帳戶即可,配置好ftp路徑
提取SLES鏡像內(nèi)的安裝目錄至ftp目錄下

配置AutoYaST

使用SuSE中的AutoYaST工具生成autoinst.xml,復(fù)制到ftp任意目錄下,注意文件路徑與default配置相吻合

網(wǎng)絡(luò)啟動(dòng)機(jī)器

前面的配置工作完成后,下面我們就在待安裝機(jī)器上通過(guò)網(wǎng)絡(luò)以無(wú)人值守的方式來(lái)安裝

(1)啟動(dòng)待安裝機(jī)器,選擇從網(wǎng)卡啟動(dòng)。具體方法因BIOS版本不同而異。下圖是從VMWare虛擬機(jī)上得到的選擇網(wǎng)絡(luò)啟動(dòng)的屏幕截圖。

(2)網(wǎng)卡中的PXE代碼會(huì)聯(lián)系DHCP服務(wù)器來(lái)獲取IP地址以及啟動(dòng)鏡像,然后啟動(dòng)鏡像被載入并運(yùn)行。

(3)開(kāi)始全自動(dòng)安裝

安裝后添加自定義模塊

我這里以添加Kernel內(nèi)核補(bǔ)丁為例

<scripts>
<init-scripts config:type="list">
<script>
<filename>instkernel.sh</filename>
<debug config:type="boolean">true</debug>
<location></location>
<interpreter>shell</interpreter>
<source><![CDATA[
#!/bin/bash
#
# After installation, the logfile from this script can be found in
# /var/adm/autoinstall/logs
#
echo "========================================="
echo "... Starting AutoYAST included script ..."
echo "========================================="
rpm -ivh --root=/  ftp://144.131.254.206/update/3.0.74-0.6.8/kernel-default-base-3.0.74-0.6.8.1.x86_64.rpm 
rpm -ivh --root=/  ftp://144.131.254.206/update/3.0.74-0.6.8/kernel-default-3.0.74-0.6.8.1.x86_64.rpm 
rpm -ivh --root=/  ftp://144.131.254.206/update/3.0.74-0.6.8/kernel-source-3.0.74-0.6.8.1.x86_64.rpm 
rpm -ivh --root=/  ftp://144.131.254.206/update/3.0.74-0.6.8/kernel-default-devel-3.0.74-0.6.8.1.x86_64.rpm
]]>
</source>
</script>
</init-scripts>
</scripts>  

小結(jié)

統(tǒng)一是自動(dòng)化運(yùn)維的基礎(chǔ)核心,而統(tǒng)一部署又是自動(dòng)化運(yùn)維的第一步,其實(shí)在研究自動(dòng)化部署的過(guò)程中我們會(huì)遇到各種坑,只有踩過(guò)的人才能夠體會(huì)其中的不容易,如果大家在測(cè)試和使用SuSE自動(dòng)化安裝時(shí)遇到任何問(wèn)題,歡迎直接在原文下方留言,我們一起學(xué)習(xí)和成長(zhǎng)_。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容