前言
在金融行業(yè)中我所接觸的操作系統(tǒng)主要是AIX
和SLES(SuSE Linux Enterprise Server)
摊鸡,也許大家平時(shí)用得更多是CentOS
撒妈,雖然有部分差異但原理都是相通的,SMIT
和YaST
也是灰常實(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 - https://www.suse.com/zh-cn/
- AutoYaST - http://doc.opensuse.org/projects/autoyast/
- Autoinst索引 - http://wsgzao.github.io/index/#Autoinst
- GitHub源碼 - https://github.com/wsgzao/autoinstall/
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ù)器且客戶(hù)端支持PXE網(wǎng)絡(luò)啟動(dòng),在現(xiàn)場(chǎng)沒(méi)有網(wǎng)絡(luò)或者系統(tǒng)不支持客戶(hù)端網(wǎng)卡的場(chǎng)景下不適合咐旧,通過(guò)AutoYast制作的SuSE Linux一鍵安裝光盤(pán)可以滿(mǎn)足上述場(chǎng)景驶鹉。本文主要介紹SuSE Linux Enterprise Server 11(簡(jiǎn)稱(chēng)SLES11)一鍵安裝光盤(pán)的制作, 其他SuSE Linux僅供參考铣墨。
生成AutoYaST配置文件
AutoYast配置成功后室埋,生成一個(gè)名為autoinst.xml的XML配置文件,SuSE Linux通過(guò)這個(gè)文件控制操作系統(tǒng)的安裝伊约。AutoYast生成配置文件有3種方式:
- 系統(tǒng)安裝時(shí)自動(dòng)生成
- 系統(tǒng)安裝后通過(guò)運(yùn)行命令生成
- 直接編輯生成(
偷懶最佳姿勢(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用戶(hù)運(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用戶(hù)運(yùn)行yast2 autoyast
博杖,打開(kāi)AutoYast窗口椿胯,選擇“文件”->“打開(kāi)”,選擇autoinst.xml文件剃根,等系統(tǒng)讀取配置后哩盲,在AutoYast窗口顯示配置配件名稱(chēng),修改后保存即可狈醉。
制作安裝光盤(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ū)
名稱(chēng) | 格式 | 大小 |
---|---|---|
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è)用戶(hù)名/密碼
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)用戶(hù)選擇后宵呛,PXE client將放置在遠(yuǎn)端的操作系統(tǒng)通過(guò)網(wǎng)絡(luò)下載到本地運(yùn)行。
PXE協(xié)議的成功運(yùn)行需要解決以下兩個(gè)問(wèn)題:
- 既然是通過(guò)網(wǎng)絡(luò)傳輸夕凝,那么計(jì)算機(jī)在啟動(dòng)時(shí)宝穗,它的IP地址由誰(shuí)來(lái)配置;
- 通過(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í)行程序忠寻,它向用戶(hù)提供簡(jiǎn)單的控制界面惧浴,并根據(jù)用戶(hù)的選擇,下載合適的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)訪(fǎng)問(wèn)存放在安裝服務(wù)器上的安裝配置文件和安裝介質(zhì)來(lái)完成安裝纵朋。
涉及到的技術(shù)
該方案主要應(yīng)用了三種技術(shù):
- 在PC上從網(wǎng)絡(luò)啟動(dòng)SLES安裝程序的PXE協(xié)議
- SLES安裝程序提供的網(wǎng)絡(luò)安裝功能(即指通過(guò)網(wǎng)絡(luò)訪(fǎng)問(wèn)安裝介質(zhì))
- SLES安裝程序提供的無(wú)人值守安裝功能(SuSE稱(chēng)為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ù)端與客戶(hù)端要在同一局域網(wǎng)內(nèi)家乘。在Linux下配置服務(wù)的原理類(lèi)似,具體方法可參考互聯(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提取自L(fǎng)inux啟動(dòng)引導(dǎo)鏡像
pxelinux.0是pxe啟動(dòng)引導(dǎo)鏡像
pxelinux.cfg文件夾下的default文件為啟動(dòng)菜單配置項(xiàng)
編輯tftpboot\pxelinux.cfg
笆载,可以自定義autoinst.xml文件的訪(fǎng)問(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
允許匿名訪(fǎng)問(wèn)帳戶(hù)即可扑馁,配置好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)_。