歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 基於AutoYaST 自動化安裝 SUSE 實踐

基於AutoYaST 自動化安裝 SUSE 實踐

日期:2017/2/28 14:00:41   编辑:Linux教程

前言

在金融行業中我所接觸的操作系統主要是AIXSLES(SUSE Linux Enterprise Server),也許大家平時用得更多是CentOS,雖然有部分差異但原理都是相通的,SMITYaST也是灰常實用的功能,推薦大家有機會嘗試體驗下。因為網上關於SuSE自動化部署的參考文章較少,這套自動化部署方案已經被驗證並在生產系統使用了1年半,配置相對成熟和穩定。遵循Don't Repeat Yourself原則,本文主要介紹基於AutoYaST實現半自動化SuSE定制光盤和PXE網絡全自動化安裝SuSE的實踐過程,如需了解更加詳細的參數說明可以參考擴展閱讀中的SuSE官網。

AutoYaST是自動化部署SuSE的黃金搭檔


SuSE自動安裝光盤

定制版本

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

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

AutoYast簡介

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

生成AutoYaST配置文件

AutoYast配置成功後,生成一個名為autoinst.xml的XML配置文件,SuSE Linux通過這個文件控制操作系統的安裝。

AutoYast生成配置文件有3種方式:

  1. 系統安裝時自動生成
  2. 系統安裝後通過運行命令生成
  3. 直接編輯生成(偷懶最佳姿勢

系統安裝時生成配置文件

按照正常步驟安裝SLES11,把必須的軟件全部安裝。運行到最後一步“安裝已完成”,勾選“為AutoYast復制此系統”,系統開始克隆系統生成配置文件,並彈出提示窗口。生成配置文件用時約2分鐘左右,生成的配置文件位於/root目錄下。

運行命令生成或者修改配置文件

如果在系統安裝時沒有生成配置文件,可以運行命令生成。在系統中打開終端,以root用戶運行命令yast2 autoyast,打開AutoYast配置窗口,選擇“工具”->“創建參考配置文件”,彈出“創建參考控制文件”窗口。勾選需要配置的項目,如軟件包選擇、語言、分區、鍵盤布局、防火牆、網絡設置等,AutoYast根據選擇的項目從系統獲取相關配置信息。選擇“文件”->“保存”,彈出“另存為”窗口,輸入文件名“autoinst.xml",選擇“保存”,系統提示文件保存到指定目錄下。

有時我們需要對模塊做些調整,比如磁盤分區、軟件包等。以調整磁盤分區為例介紹配置文件的修改。 以root用戶運行yast2 autoyast,打開AutoYast窗口,選擇“文件”->“打開”,選擇autoinst.xml文件,等系統讀取配置後,在AutoYast窗口顯示配置配件名稱,修改後保存即可。

制作安裝光盤

AutoYast配置文件生成後,可以開始制作一鍵安裝光盤了。制作一鍵安裝光盤需要用到SLES11的原安裝光盤的數據。

  1. #首先復制SLES11原安裝光盤的數據到指定目錄
  2. mkdir /tmp/sles11
  3. cp -R /media/S*/* /tmp/sles11
  4. #復制autoinst.xml
  5. cp /root/autoinst.xml /tmp/sles11
  6. #編輯isolinux.cfg文件,找到# install所在位置
  7. cd boot/x86_64/loader/
  8. vi isolinux.cfg
  9. # install
  10. append initrd=initrd autoyast=file:///autoinst.xml splash=silent showopts
  11. :x!
  12. #運行mkisofs命令生成自動安裝光盤
  13. cd /tmp/sles11
  14. 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 .

我的配置文件

預設分區

名稱格式大小 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 總計 71G

預裝軟件包

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

預設語言

  • 主要:英語
  • 添加:中文

預設用戶名/密碼

root/如果你直接復用我的配置文件請私信我獲取密碼 :D

預設網絡配置

禁用服務:防火牆,IPv6

SuSE自動化PXE網絡安裝

PXE基本原理

什麼是PXE?

PXE(Pre-boot Execution Environment)是由Intel設計的協議,它可以使計算機通過網絡啟動。協議分為client和server兩端,PXE client在網卡的ROM中,當計算機引導時,BIOS把PXE client調入內存執行,並顯示出命令菜單,經用戶選擇後,PXE client將放置在遠端的操作系統通過網絡下載到本地運行。 PXE協議的成功運行需要解決以下兩個問題: 1. 既然是通過網絡傳輸,那麼計算機在啟動時,它的IP地址由誰來配置; 2. 通過什麼協議下載Linux內核和根文件系統。

對於第一個問題,可以通過DHCP Server解決,由DHCP server來給PXE client分配一個IP地址,DHCP Server是用來給DHCP Client動態分配IP地址的協議,不過由於這裡是給PXE Client分配IP地址,所以在配置DHCP Server時,需要增加相應的PXE特有配置。 至於第二個問題,在PXE client所在的ROM中,已經存在了TFTP Client。PXE Client使用TFTP Client,通過TFTP協議到TFTP Server上下載所需的文件。 這樣,PXE協議運行的條件就具備了,下面我們就來看看PXE協議的工作過程。

工作過程

在下圖中,PXE client是需要安裝Linux的計算機,TFTP Server和DHCP Server運行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux內核以及Linux根文件系統都放置在Linux Server上TFTP服務器的根目錄下。 PXE client在工作過程中,需要三個二進制文件:bootstrap、Linux 內核和Linux根文件系統。Bootstrap文件是可執行程序,它向用戶提供簡單的控制界面,並根據用戶的選擇,下載合適的Linux內核以及Linux根文件系統。

方案介紹

這種方案需要首先設置一個啟動服務器和一個安裝服務器(可以配置在同一台物理機上),然後通過網絡啟動存放在啟動服務器上的安裝程序。安裝程序會自動訪問存放在安裝服務器上的安裝配置文件和安裝介質來完成安裝。

涉及到的技術 該方案主要應用了三種技術: 1. 在PC上從網絡啟動SLES安裝程序的PXE協議 2. SLES安裝程序提供的網絡安裝功能(即指通過網絡訪問安裝介質) 3. SLES安裝程序提供的無人值守安裝功能(SuSE稱為AutoYast)

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

  • 一台PC機器作為啟動和安裝服務器(其它架構機器也可以)
  • 一台待安裝的PC機器,它的網卡必須帶有PXE支持
  • 一個建好的局域網,上述兩台機器已經連接入同一子網
  • 待安裝的SLES安裝介質

配置tftpd

為了簡化步驟,我們在XP虛擬機下搭建DHCP和TFTP服務端,用tftpd工具來整合實現PXE網絡引導,注意服務端與客戶端要在同一局域網內。在Linux下配置服務的原理���似,具體方法可參考互聯網。

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

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

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

(4)TFTP設置如下 Base Directory:對應存放Linux的引導文件 PXE Compatibility:增強對不同型號網卡的網絡啟動支持 Show Progress bar:在網絡引導過程中顯示進度 Translate Unix file names:轉化Unix文件名 Allow "\" As virtual root:允許虛擬路徑 其它高級選項:設置包括兼容性以及一些細節

(5)DHCP配置 重點注意Boot File引導文件的設置和DHCP綁定地址

(6)tftpboot目錄結構

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

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

  1. default linux
  2. # Install Linux
  3. label linux
  4. kernel linux
  5. 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)設置ftp 允許匿名訪問帳戶即可,配置好ftp路徑 提取SLES鏡像內的安裝目錄至ftp目錄下

配置AutoYaST

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

網絡啟動機器

前面的配置工作完成後,下面我們就在待安裝機器上通過網絡以無人值守的方式來安裝

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

(2)網卡中的PXE代碼會聯系DHCP服務器來獲取IP地址以及啟動鏡像,然後啟動鏡像被載入並運行。

(3)開始全自動安裝

安裝後添加自定義模塊

我這裡以添加Kernel內核補丁為例

  1. <scripts>
  2. <init-scriptsconfig:type="list">
  3. <script>
  4. <filename>instkernel.sh</filename>
  5. <debug config:type="boolean">true</debug>
  6. <location></location>
  7. <interpreter>shell</interpreter>
  8. <source><![CDATA[
  9. #!/bin/bash
  10. #
  11. #After installation, the logfile from this script can be found in
  12. #/var/adm/autoinstall/logs
  13. #
  14. echo "========================================="
  15. echo "... Starting AutoYAST included script ..."
  16. echo "========================================="
  17. rpm -ivh --root=/ ftp://144.131.254.206/update/3.0...-0.6.8.1.x86_64.rpm
  18. rpm -ivh --root=/ ftp://144.131.254.206/update/3.0...-0.6.8.1.x86_64.rpm
  19. rpm -ivh --root=/ ftp://144.131.254.206/update/3.0...-0.6.8.1.x86_64.rpm
  20. rpm -ivh --root=/ ftp://144.131.254.206/update/3.0...-0.6.8.1.x86_64.rpm
  21. ]]>
  22. </source>
  23. </script>
  24. </init-scripts>
  25. </scripts>

小結

其實在研究自動化部署的過程中我們會遇到各種坑,只有踩過的人才能夠體會其中的不容易,如果大家在測試和使用SuSE自動化安裝時遇到任何問題,歡迎直接在原文下方留言,我們一起學習和成長_

更新歷史

2015年05月28日 - 初稿

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

擴展閱讀

  • SuSE - https://www.suse.com/zh-cn/
  • AutoYaST - http://doc.opensuse.org/projects/autoyast/

更多SUSE相關信息見SUSE 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=3

Copyright © Linux教程網 All Rights Reserved