系統安裝--無人職守


CentOS 系統安裝

無人職守安裝是anaconda接受kickstart配置文件,代替了人的交互式設置實現了無人安裝。


anaconda是什麼?kickstart是什麼?

你知道當你把光驅里加載iso系統,啓動後爲什麼會出現如下這個界面嗎?

        圖1 

這就是系統安裝程序anaconda提供的圖形配置界面


anaconda是怎樣橫空出世的呢?

bootloader --> kernel(initrd(rootfs)) --> anaconda

開機後bootloader把內核加載到內存中,並以只讀掛載臨時根文件系統rootfs。接着anaconda成爲運行在內核之上的第一個應用程序。

再細一點:你的光盤是如何啓動了anaconda?

光盤的引導程序MBR:boot.cat 的stage1引出如下:

Stage2:isolinux/isolinux.bin 打印出圖形安裝界面

配置文件:isolinux/isolinux.cfg

每個對應的菜單選項在isolinux.cfg中有定義

加載內核:isolinux/vmlinuz

向內核傳遞參數:append  initrd=initrd.img

                    圖3

裝載根文件系統,並啓動anaconda

 注意:上述內容一般位於引導設備,例如可通過光盤、U盤或網絡等;

後續的anacona及其安裝用到的程序包等可以來自於程序包倉庫,此倉庫的位置可以爲:

本地光盤

本地硬盤

ftp server

http server

nfs server



 如果想手動指定安裝倉庫:按ESC  boot: linux method 注:method是指安裝方法


          安裝引導選項:

boot:

text:文本安裝方式

method:手動指定使用的安裝方法

與網絡相關的引導選項:

ip=IPADDR

netmask=MASK

gateway=GW

dns=DNS_SERVER_IP

遠程訪問功能相關的引導選項:

vnc

vncpassword='PASSWORD'

啓動緊急救援模式:

rescue

裝載額外驅動:

dd






總結:

anaconda安裝前配置階段分兩類

交互式配置 即爲手動安裝

提供配置文件kickstart(自動配置)

安裝階段

首次啓動

anaconda啓動後,如果我們給它提供了kickstart文件,那麼就可以自動安裝。如果不提供我們可以選擇label開啓手動安裝。



我們來了解下anaconda的工作過程:

安裝前配置階段

安裝過程使用的語言;

鍵盤類型

安裝目標存儲設備

Basic Storage:本地磁盤

Special Storage: iSCSI

設定主機名

配置網絡接口

時區

管理員密碼

設定分區方式及MBR的安裝位置;

創建一個普通用戶;

選定要安裝的程序包;

安裝階段

在目標磁盤創建分區並執行格式化;

將選定的程序包安裝至目標位置;

安裝bootloader;

首次啓動

iptables

selinux

core dump 



kickstart詳解

anaconda從哪裏讀取kickstart?

安裝引導選項:

ks:指明kickstart文件的位置;

DVD drive:      ks=cdrom:/PATH/TO/KICKSTART_FILE

Hard Drive:    ks=hd:/DEVICE/PATH/TO/KICKSTART_FILE

HTTP Server:   ks=http://HOST[:PORT]/PATH/TO/KICKSTART_FILE

FTP Server:     ks=ftp://HOST[:PORT]/PATH/TO/KICKSTART_FILE

HTTPS Server:   ks=https://HOST[:PORT]/PATH/TO/KICKSTART_FILE




俯瞰kickstart文件的格式

命令段:

    指定各種安裝前配置選項,如鍵盤類型等;

    必備命令

    可選命令


程序包段:

     指明要安裝程序包,以及包組,也包括不安裝的程序包;

%packages     起始

@group_name

package

-package

%end          結束


腳本段:

     %pre:安裝前腳本    運行環境:運行安裝介質上的微型Linux系統環境;運行的命令有限

     %post:安裝後腳本   運行環境:安裝完成的系統;




let me逐條看看kickstart的含義


命令段中的必備命令:

1.authconfig:認證方式配置

    authconfig  --enableshadow  --passalgo=sha512


2.bootloader:定義bootloader的安裝位置及相關配置

   bootloader  --location=mbr  --driveorder=sda  --append="crashkernel=auto rhgb quiet"


3.keyboard:設置鍵盤類型

    keyboard us


4.lang:語言類型

   lang  zh_CN.UTF-8


5.part:分區佈局;

    part  /boot  --fstype=ext4  --size=500

    part  pv.008002  --size=51200

補充:分區相關的其它指令

    clearpart:清除分區

    clearpart  --none  --drives=sda:清空磁盤分區;

volgroup:創建卷組

   volgroup  myvg  --pesize=4096  pv.008002

logvol:創建邏輯卷

    logvol  /home  --fstype=ext4  --name=lv_home  --vgname=myvg  --size=5120



6.rootpw:管理員密碼

rootpw   --iscrypted        $6$4Yh15kMGDWOPtbbW$SGax4DsZwDAz4201.O97WvaqVJfHcISsSQEokZH054juNnoBmO/rmmA7H8ZsD08.fM.Z3B    r/67Uffod1ZbE0s.

  

擴展:生成加密密碼的方式:

     ~]# openssl  passwd  -1  -salt `openssl rand -hex 4`


7.timezone:時區

     timezone  Asia/Shanghai



可選命令:

  1.  install  OR  upgrade:安裝或升級;

  2.  text:安裝界面類型,text爲tui,默認爲GUI

  3.  network:配置網絡接口

  4.  network  --onboot yes  --device eth0  --bootproto dhcp  --noipv6

  5.  firewall:防火牆 

  6.  firewall  --disabled

  7.  selinux:SELinux

  8.  selinux --disabled

  9.  halt、poweroff或reboot:安裝完成之後的行爲;

  10.  repo:指明安裝時使用的repository;

  11.  repo  --name="CentOS"   --baseurl=cdrom:sr0  --cost=100

  12.  url: 指明安裝時使用的repository,但爲url格式;

  13.  url --url=http://172.16.0.1/cobbler/ks_mirror/CentOS-6.7-x86_64/




定製kickstart文件:

# yum install  system-config-kickstart

# system-config-kickstart

檢查語法錯誤:

# ksvalidator





       創建光盤鏡像:

~]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6 x86_64 boot" -c isolinux/boot.cat -b isolinux/isolinux.bin -o  /root/boot.iso   myboot/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章