Linux之Kickstart

Linux系統(tǒng)自動安裝

Linux系統(tǒng)安裝類型:

1、手動安裝
  • 圖形化界面安裝
  • 命令行界面安裝
2、自動安裝
  • 圖形化、命令行界面的安裝
    • 利用kickstart文件腳本加載安裝配置信息,安裝方式可以為:
      • 本地CDROM
      • 磁盤驅動器
      • FTP
      • HTTP
      • NFS
注意:Linux的安裝程序是由Anaconda程序提供,其中kickstart只是其安裝方法的一種,大多的場景可以利用PXE架構方法,實現(xiàn)全自動安裝部署方案。

什么是anaconda?

簡介:

Anaconda是Red Hat、CentOS、Fedora等Linux的安裝管理程序。它可以提供文本、圖形等安裝管理方式,并支持Kickstart等腳本提供自動安裝的功能。此外,其還支持許多啟動參數(shù),熟悉這些參數(shù)可為安裝帶來很多方便。該程序是把位于光盤或其他源上的數(shù)據(jù)包,根據(jù)設置安裝到主機上的一個程序;為實現(xiàn)該定制安裝,其提供一個定制界面,可以實現(xiàn)交互式界面供用戶選擇配置(如選擇語言,鍵盤,時區(qū)等信息)

進入安裝步驟的引導方式:
  • 光盤小型鏡像的網(wǎng)絡安裝模式
  • U盤浮點型鏡像的網(wǎng)絡安裝模式
  • PXE的網(wǎng)絡安裝模式
  • 光盤完整鏡像的本地安裝模式
可用的安裝方式:
  • 本地CDROM
  • 磁盤驅動器
  • NFS
  • HTTP
  • FTP
安裝引導的選項
Anaconda的支持的啟動選項
  • 進入啟動選項的方法
    • 1、到開機引導界面點擊ESC ,就會彈出boot:的黑色界面窗口,格式如下:
      • LABEL <命令|方法> #LABEL為光盤中isolinux/isolinux.cfg中定義的標簽
    • 2、選中相關的label,然后點擊TAB,編輯選項,直接在后面添加,格式如下:
      • vmlinuz initrd=initrd.img ks=cdrom:/ks.cfg ip=" " [......]

          注意:也可以將此選項寫入到光盤中的isolinux/isolinux.cfg行中的append后面,可以實現(xiàn)自動加載選項,勿需手動輸入
        
  • 支持的啟動選項
    • 文本方式安裝
      • text
    • 與網(wǎng)絡相關的引導的選項
      • ip=ADDR
      • netmask=NETMASK
      • gateway=GATEWAY
      • dns=DNS
    • 遠程訪問功能相關的引導選項
      • vnc
      • vncpassword=‘PASSWORD’
    • 啟動緊急救援模式
      • rescue
    • 裝載額外驅動程序
      • dd
    • 指定ks文件
      • ks=[device]:/PATH
        注意:以上選項使用以上進入啟動選項的方法1時,需要指定標簽,如"linux rescue",進入啟動選項的方法2時,不需要指定標簽,直接在append后面指明選項,各選項使用空格隔開

什么是kickstart?

簡介

kickstart是一個利用Anconda工具實現(xiàn)服務器自動化安裝的方法;通過生成的kickstart配置文件ks.cfg,服務器安裝可以實現(xiàn)從裸機到全功能服務的的非交互式(無人值守式)安裝配置。ks.cfg是一個簡單的文本文件,文件包含Anconda在安裝系統(tǒng)及安裝后配置服務時所需要獲取的一些必要配置信息(如鍵盤設置,語言設置,分區(qū)設置等);Anconda直接從該文件中讀取必要的配置,只要該文件信息配置正確無誤且滿足所有系統(tǒng)需求,就不再需要同用戶進行交互獲取信息,從而實現(xiàn)安裝的自動化。

kickstart的優(yōu)勢
  • 1、流線化自動化的安裝;
  • 2、快速大量的裸機部署;
  • 3、強制建立的一致性(軟件包,分區(qū),配置,監(jiān)控,安全性)
  • 4、減少人為的部署失誤
使用Kickstart方法安裝的過程:
  • 1、創(chuàng)建一個kickstart文件
  • 2、創(chuàng)建有kickstart文件的引導介質或者使這個文件在網(wǎng)絡上可用;
  • 3、籌備一個安裝樹
  • 4、開始ks安裝:anconda自身啟動 -->選取ks安裝模式--> 從ks文件讀取配置 --> 最后安裝
    • 如果使用的是小型cdrom安裝方式,為了讀取網(wǎng)絡安裝樹做的引導,可以將ks文件放置到光盤上,在光盤isolinux/isolinux.cfg文件中,配置append后添加 ks=cdrom:/ks.cfg(需要將ks.cfg文件放到cdrom的根目錄下)
Kickstart文件的配置方法
  • vim
  • system-config-kickstart
kickstart的配置文件格式
  • 1、命令部分(必選項)
    • 配置系統(tǒng)的屬性及安裝中的各種必要設置信息,如語言、鍵盤類型、時區(qū)等信息
  • 2、設定需要安裝的軟件包及包組,Anaconda會自動解決依賴關系
    • 使用%packages指明開始,%end指明結束.包組以@開始標明,軟件名可以直接寫,但每個之間需要換行
  • 3、安裝前腳本
    • 使用%pre指明開始,%end指明結束,將每個命令寫一行
  • 4、安裝后腳本
    • 使用%post指明開始,%end指明結束,將每個命令寫一行
Kickstart文件參數(shù)說明
  • Install

    • 可選,指明此次是全新安裝
  • cdrom

    • 可選,指明安裝源為本地的光驅
  • url

  • harddrive

    • 可選,指明安裝源為本地的硬盤
    • harddrive --partition=/dev/sdb2 --dir=/data/iso
  • nfs

    • 可選,指明安裝源為NFS服務
    • nfs --server=192.168.1.254 --dir=/data/iso
  • bootloader

    • 設定bootloader安裝選項
    • bootloader --location=mbr --append=“rhgb quiet” --driveorder=sda,sdb
      • --append= 可以指定內核參數(shù)
      • --driveorder= 設定設備BIOS中的開機設備啟動順序
      • --location= 設定引導記錄的位置; mbr:默認值;partition:將boot loader安裝于包含kernel的分區(qū)超級快
  • clearpart

    • 在建立新分區(qū)前清空系統(tǒng)上原有的分區(qū)表,默認不刪除分區(qū)
    • clearpart --all
    • clearpart --drives=hda,hdb --all --initlabel
      • -all 擦除系統(tǒng)上原有所有分區(qū);
      • --drives 刪除指定驅動器上的分區(qū)
      • --initlabel 初始化磁盤卷標為系統(tǒng)架構的默認卷標
      • --linux 擦除所有的linux分區(qū)
      • --none(default)不移除任何分區(qū)
  • zerombr

    • 可選,清除mbr信息,會同時清空系統(tǒng)原有分區(qū)表
  • drivedisk

    • 可選,如果使用特殊存儲方式時,需要指定驅動程序盤位置以便加載存儲驅動
  • firewall

    • 可選,配置防火墻選項
    • firewall --enable --trust eth0 --trust eth1 --port=80:tcp
    • firewall —service=ssh :表示啟用防火墻,但行了ssh
    • firewall —disabled
      • --enable 拒絕外部發(fā)起的任何主動連接;
      • --disable 不配置任何iptables防御規(guī)則;
      • --trust 指定完全信任網(wǎng)卡設備;
      • --port 使用port:protocol格式指定可以通過防火墻的服務;
  • selinux

    • 可選,配置selinux選項,默認選項為enforcing
    • selinux [ --disabled|–enforcing|--premissive ]
  • reboot

    • 可選,在系統(tǒng)成功安裝完成后默認自動重啟系統(tǒng)(kickstart方法時);在裝系統(tǒng)完成后,會提示按任意鍵進行重啟;在配置中沒有指明其他方法時,默認完成就會reboot
  • halt

    • 可選,在系統(tǒng)安裝完成后關機,默認為reboot
  • graphical

    • 可選,安裝時使用圖形化界面,默認為graphical
  • text

    • 可選,安裝時使用文本方式界面安裝,默認為graphical
  • key

    • 設置一個安裝碼,用于獲取redhat的官方支持服務
    • --skip,表示跳過key設置,如果不設備會跳到交互模式,讓用戶選擇
  • keyboard

    • 設置鍵盤類型,一般為us
    • keyboard us
  • lang

    • 設置系統(tǒng)語言,默認為en_US
    • lang en_US
  • timezone

    • 設置系統(tǒng)時區(qū)
    • timezone Asia/Shanghai
  • auth

    • 設置系統(tǒng)的認證方式
    • auth --useshadow --passalgo=sha512
  • rootpw

    • 設置root的密碼
    • rootpw abcde123
    • rootpw rootpw --iscrypted $1$iRHppr42$VMesh73wBqhUTjKp6OYOD.
      • 可以使用 openssl passwd -1 -salt openssl rand -hex 4生成加密的密碼串
  • network

    • 設置主機的網(wǎng)絡,在遠程安裝的模式下,必須指定
    • network —onboot no —device eth0 —bootproto dhcp —noipv6
  • service

    • 可選,設置禁用或允許列出的服務
    • services --disabled autid,cups,smartd,nfslock
      • --disabled 設置服務為禁用
      • --enabled 啟動服務
  • part

    • 設置磁盤分區(qū)

        part /boot --fstype="ext4" --size=200
        part pv.008 --size=10240
        volgroup vg0 --pesize=8192 pv.008
        logvol / --fstype=ext4 --name=root --vgname=vg0 --size=1024
        logvol swap --name=swap --vgname=vg0 --size=1024
        logvol /usr --fstype=ext4 --name=usr --vgname=vg0 --size=1024
        logvol /var --fstype=ext4 --name=var --vgname=vg0 --size=2048
        
        
        part  <mntpoint>|swap|pv.id|rdid.id  options
        mntpoint:掛載點,是在創(chuàng)建普通分區(qū)時指定新分區(qū)掛載位置的項;掛載點需要格式正確
        swap: 創(chuàng)建swap分區(qū);
        raid.id:  表示創(chuàng)建的分區(qū)類型為raid型;必須用id號進行唯一區(qū)別;
        pv.id:  表示所創(chuàng)建的分區(qū)類型為LVM型;必須用唯一id號進行區(qū)別;
        --size=  設置分區(qū)的最小值,默認單位為M,但是不能寫單位;
        --grow  讓分區(qū)自動增長利用可用的磁盤空間,或是增長到設置的maxsize值;
        --maxsize 設置分區(qū)自動增長(grow)時的最大容量值,以M為單位,但不能寫單位;
        --onpart=/--usepart=     設置使用原有的分區(qū);
        --noformat    設置不格式化指定的分區(qū),在跟—onpart一同使用時,可以避免刪除原有分區(qū)上的數(shù)據(jù),在新安裝的系統(tǒng)中保留使用數(shù)據(jù);
        --asprimary    強制制定該分區(qū)為主分區(qū);若指定失敗,分區(qū)會失敗,導致安裝停止;
        --fstype=    新增普通分區(qū)時指定分區(qū)的類型,可以為ext2、ext3、ext4、swap、vfat及hfs;
        --ondisk=/--ondrive=     設定該分區(qū)創(chuàng)建在一個具體的磁盤上;
        --start   指定分區(qū)以磁盤上那個磁道開始;需要跟--ondisk參數(shù)一塊使用;
        --end    指定分區(qū)以磁盤上那個磁道結束;需要跟上述兩個參數(shù)一起使用;
        --recommended:讓系統(tǒng)自行決定分區(qū)的大小;在創(chuàng)建swap分區(qū)時,若RAM<2G,則分區(qū)大小為2*RAM;若RAM>=2G時,分區(qū)大小為RAM+2G;
        --bytes-pre-inode=    指定分區(qū)格式化時inode的大小;默認值為4096
        --fsoptions=    指定創(chuàng)建fstab文件時該分區(qū)掛載參數(shù)項;
        
      
      
        例:
         part  /boot  --fstype=“ext3” --size=100
         part  swap  --fstype=“swap” –size=512  
         part  /  --bytes-pre-inode=4096  --fstype=“ext4”--size=10000
         part  /data    --onpart=/dev/sdb1  --noformat
         part  raid.100  --size=2000
         part  pv.100     --size=1000
      

使用軟件定制kickstart文件

1、yum install system-config-kickstart
2、system-config-kickstart
    需依賴于圖形環(huán)境,確保x window服務運行

Centos 6.7光盤isolinux下文件及作用:

  • vmlinuz
    • 內核文件
  • initrad.img
    • 虛根文件系統(tǒng)映像
  • isolinux.cfg
    • Linux內核引導參數(shù)配置文件,定義了啟動界面的相關信息,如超時時間(毫秒)、背景顏色、title、內核及虛根的文件位置
  • splash.jpg
    • 定義了引導界面的圖片
  • isolinux.bin
  • boot.cat
  • boot.msg : 引導時的各種提示信息文件
  • grub.conf
  • mem.test

以小型光盤引導讀取遠程文件服務器安裝樹,完成系統(tǒng)自動化安裝

    1、復制光盤中的isolinux目錄到myboot目錄下
    2、把制作好的ks文件放到isolinux同級目錄,名為ks.cfg
    3、修改isolinux/isolinux.cfg文件中的append行后添加 ks=cdrom:/ks.cfg
    4、退出myboot目錄,執(zhí)行如下命令:
        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 /root/myboot/
        
    5、完成后,加載boot.iso即可以完成安裝。
    
    ks.cfg配置實例如下:
        # Kickstart file automatically generated by anaconda.

        #version=DEVEL
        install
        url --url="http://172.16.0.1/cobbler/ks_mirror/CentOS-6.7-x86_64/"
        text
        lang en_US.UTF-8
        keyboard us
        network --onboot no --device eth0 --bootproto dhcp --noipv6
        rootpw  --iscrypted $6$yhbmeil2c47tl6x6$BPp9Qcl2kB8u2gJ0GG/RMFwf6Bm98eiFIi4qy7mEcVN.8Dm6gN0ICwK9ibfuv8EkdKinEuuHmS3I6O2EgFw2O/
        firewall --service=ssh
        authconfig --enableshadow --passalgo=sha512
        selinux --enforcing
        timezone --utc Asia/Shanghai
        bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
        # The following is the partition information you requested
        # Note that any partitions you deleted are not expressed
        # here so unless you clear all partitions first, this is
        # not guaranteed to work
        clearpart --all

        part /boot --fstype=ext4 --size=500
        part pv.008002 --grow --size=10240

        volgroup vg_zhenping --pesize=4096 pv.008002
        logvol / --fstype=ext4 --name=lv_root --vgname=vg_zhenping --grow --size=1024 --maxsize=5120
        logvol swap --name=lv_swap --vgname=vg_zhenping --grow --size=1984 --maxsize=1024

        #repo --name="CentOS"  --baseurl=http://172.16.0.1/fedora-epel/6/x86_64/ --cost=100

        %packages
        @core
        @server-policy
        @workstation-policy
        %end
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容