天天看點

Linux系統實作自動化安裝

在介紹自動化安裝系統之前讓我們來回顧一下系統的啟動流程,系統的啟動大概分為一下幾個步驟:加電自檢 boot sequence(mbr)-- boot loader -->kernel(initramfs)—>rootfs  /sbin/init大概就是這麼幾個過程了,接下來來介紹系統的安裝,安裝系統雖然看起來簡單,普通的安裝大多數使用者會選擇一直下一步的安裝把,但是想實作高逼格的安裝還是需要簡單的加工一下,好吧,開始介紹

anaconda:系統安裝程式fedora 的一個開源項目

在系統啟動的時候就會啟動anaconda程式,它預設啟動gui接口,并向核心傳遞text參數即可,然後啟動系統安裝

anaconda安裝系統分成兩個階段

安裝前配置階段

鍵盤類型

安裝過程中的餘元

支援的語言

時區

選擇要使用的磁盤裝置

分區格式化

選擇要安裝的程式包

管理者密碼

是否啟用iptables

是否啟用selinux

想必安裝過作業系統的小夥伴都應該知道需要經過這麼幾步,沒裝過的小夥伴需要親自去安裝體驗一下

安裝階段

在目标磁盤上建立分區,執行格式化操作

将標明的程式包安裝到指定目标磁盤

安裝boot loader和initramfs

啟動安裝過程一般位于引導裝置中,後續的anaconda及安裝用到的程式包等由以下幾種方式:

本地CD光牒

本地硬碟

ftp伺服器

http伺服器

nfs伺服器

Linux系統實作自動化安裝

如果想手動指定安裝源

在啟動後安裝esc之後會出現boot:開頭的提示符在後面輸入linux askmethod選擇指定的安裝源

boot的引導選項,要使用引導選項請在boot:提示符後輸入linux   option(以下的多種方式)

指定語言

linux keymap=gr

更新anaconda

linux updates

linux text:文本方式安裝

askmethod:手動指定安裝源

         repo=cdrom:device

         repo=hd:device/path

         repo=http://host/path

         repo=ftp://username:password@hosts/path

         repo=nfs:server:path

與網絡相關的引導選項

ip=ipaddr

netmask=mask

gateway=gw

dns=dns ip

啟用對安裝系統的遠端通路

linux vnc vncpassword=密碼串

啟用遠端通路

linux  sshd=1

進入救援模式

linux rescue

kickstart檔案格式

指令段:用于配置系統

  install

  firewall

  part

  lvm

程式包段:指定要安裝的程式包及程式包組

    %packages:表示

    @base:使用@指定包組

    lftp:直接寫程式包名

    -package

    %end:軟體包結束

注意:在程式包錢加-,不安裝相關包

腳本段

%pre:安裝過程開始錢的預備腳本,所能執行的操作較小,它是一個首先得環境,因為其實僅有簡單版的shell環境

%post:所有的軟體完成之後執行的腳本,此時具有完整意義的shell環境,但并非所有指令都安裝,先確定所有的程式已經安裝

%end:腳本結束段

kickstart 檔案的格式中的指令段中必備指令

authconfig:認證方式配置

         authconfig –usershadow –passalgo=sha512

boot loader :boot loader 的安裝位置及相關配置

         boot loader –location=mbr –driveorder=sda –append=”crashkernel=auto rhgb quiet “

kerboard:設定鍵盤類型

lang:語言類型

part:建立分區

rootpwd:root的密碼

timezone:時區

可選指令

install  or upgrade

text:檔案安裝界面

network

firewall

selinux

halt

poweroff

reboot

repo

user:安裝完成後建立新使用者

url:指定安裝源

key –skip:跳過安裝号碼,使用與rhel版本的作業系統

建立kickstart檔案

建立kickstart檔案的方式

直接手動編輯

         依據已安裝好系統上的kickstart檔案模版修改

使用建立工具:system-config-kickstart,建議使用/root/anaconda-ks.cfg模版生成

    1、生成預設語言,鍵盤類型,時區,以及root的密碼,還可以指定安裝後自動重新開機,指定是在字元界面安裝作業系統,還是在圖形界面安裝作業系統

Linux系統實作自動化安裝

   2、選擇安裝方式

Linux系統實作自動化安裝

3、安裝boot loader

Linux系統實作自動化安裝

    4、分區資訊,是否清除之前的mbr,清楚磁盤所有分區表,并初始化磁盤卷标

Linux系統實作自動化安裝

    5、網絡配置,即可以使用dhcp來擷取ip位址,也能自己手動指定位址

Linux系統實作自動化安裝

   6、密碼檔案加密方式,有md5,sha256,sha512等方式

Linux系統實作自動化安裝

   7、防火牆設定,禁用或啟用

Linux系統實作自動化安裝

   8、顯示配置,是否安裝圖形環境

Linux系統實作自動化安裝

   9、選擇要安裝的軟體包

Linux系統實作自動化安裝

    10、安裝前腳本,将自己想要設定的内容寫到本初,比如更改issue檔案

Linux系統實作自動化安裝

    11、安裝後腳本,比如給系統添加一個repo檔案

Linux系統實作自動化安裝

  生成後的ks.cfg檔案可以通過ksvalidator指令來檢查ks檔案的文法錯誤指令

  指令用法:ksvalidator  ks.cfg

生成好的ks.cfg檔案内容

#platform=x86, amd64, or intel em64t

#version=devel

# firewall configuration

firewall --disabled

# install os instead of upgrade

install

# use network installation

url --url="http://10.1.0.1/cobbler/ks_mirror/centos-6-x86_64/"

# root password

rootpw --iscrypted $1$hhtxxiki$dj/fz1tpagho37ta9k7xl/

# system authorization information

auth  --useshadow  --passalgo=sha512

# use graphical install

graphical

firstboot --disable

# system keyboard

keyboard us

# system language

lang zh_cn

# selinux configuration

selinux --enforcing

# installation logging level

logging --level=info

# system timezone

timezone  africa/abidjan

# network information

network  --bootproto=dhcp --device=et0 --onboot=on

# system bootloader configuration

bootloader --location=mbr

# clear the master boot record

zerombr

# partition clearing information

clearpart --all 

# disk partitioning information

part / --fstype="ext4" --size=10000

part /boot --fstype="ext4" --size=300

%packages

@backup-client

@base

@basic-desktop

@compat-libraries

@console-internet

@debugging

@desktop-debugging

@desktop-platform

@development

@dial-up

@directory-client

@emacs

@fonts

@general-desktop

@graphical-admin-tools

@graphics

@input-methods

@internet-applications

@internet-browser

@office-suite

@server-platform-devel

@technical-writing

@tex

git

%end

制作引導CD光牒

    mkdir  /linuxiso

 将ks.cfg檔案拷貝到/linuxiso目錄下

    cp  /media/isolinux/   /linuxiso

    vim  /linuxiso/isolinux/isolinux.cfg

 将initrd=initrd.img text ks=cdrom:/ks.cfg

   cp  /root/ks.cfg  /linuxiso/

   mkisofs:-r -j -t -v --no-emul-boot --boot-load-size 4 --boot-info-table -v "centos 6.5 x86_64 boot(可改)" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/centos6.5.boot.iso(可改) linuxiso/

制作好CD光牒後,将CD光牒插入機器(當然這裡使用的是虛拟的),調整啟動次序為CD光牒啟動,将機器連接配接到網絡中的安裝,前提是網絡當中有安裝源,如果沒有安裝源可以自己搭建一個ftp的伺服器,安裝vsftpd啟動服務,将CD光牒當中的所有檔案都拷貝到/var/ftp/pub目錄下,然後将安裝樹的源寫到ks.cfg檔案的url  --url那一行即可,這樣就可以實作自動化安裝作業系統,但是需要注意的是,當你安裝完成作業系統後,你的機器的啟動次序還是CD光牒,那麼它将會重複安裝作業系統,在這裡提醒各位的是,在作業系統安裝完成之後将啟動次序調整為硬碟啟動

建立優盤啟動

de  if=/dev/cdrom  of=/dev/sdb

繼續閱讀