本節索引:
一、KickStart安裝簡介
二、實驗:使用kickstart自動化安裝CentOS系統
三、實驗:制作CentOS6的自動化啟動引導文件boot.iso
四、實驗:制作U盤自動化安裝盤
五、實驗:制作不依賴網絡的完整CentOS6系統ISO自動安裝盤
一、KickStart安裝簡介
KickStart是一種半自動化的安裝方式。KickStart的工作原理是通過記錄典型的安裝過程中所需人工干預
填寫的各種參數,并生成一個名為ks.cfg的文件;在其后的安裝過程中(不只局限于生成KickStart安裝
文件的機器)當出現要求填寫參數的情況時,安裝程序會首先去查找KickStart生成的文件,當找到合適
的參數時,就采用找到的參數,當沒有找到合適的參數時,才需要安裝者手工干預。這樣,如果KickStart
文件涵蓋了安裝過程中出現的所有需要填寫的參數時,安裝者完全可以只告訴安裝程序從何獲取ks.cfg文件
,然后去忙自己的事情。等安裝完畢,安裝程序會根據ks.cfg中設置的重啟選項來重啟系統,并結束安裝。
KickStart文件的格式:
KickStart文件格式與anaconda-ks.cfg文件格式十分類似,總體由三部分組成:
1)命令段:指明各種安裝前配置,如鍵盤類型等
必備命令:
authconfig:認證方式配置
authconfig –useshadow –passalgo=sha512
bootloader:bootloader的安裝位置及相關配置
bootloader –location=mbr –driveorder=sda –
append=”crashkernel=auto rhgb quiet”
keyboard:設定鍵盤類型
lang:語言類型
part:創建分區
rootpw:指明root的密碼
timezone:時區
可選命令:
install OR upgrade
text:文本安裝界面
network
firewall
selinux
halt
poweroff
reboot
repo
user:安裝完成后為系統創建新用戶
url: 指明安裝源
key –skip 跳過安裝號碼,適用于rhel版本
2)程序包段:指明要安裝的程序包組或程序包,不安裝的程序包等
%packages
@group_name
package
-package
%end
3)腳本段:
%pre:安裝前腳本
運行環境:運行于安裝介質上的微型Linux環境
%post:安裝后腳本
運行環境:安裝完成的系統
安裝后腳本非常有用,我們可以在這里定義系統安裝完成后自動安裝yum源,創建一些普通用戶等功能
生成ks應答文件方法:
1.參照anaconda-ks.cfg文件修改(不常用)
2.利用system-config-kickstart圖形工具制作(常用)
檢查ks文件語法錯誤:
ksvalidator? /path/to/ks.cfg
在實驗之前,我們還是先了解下系統安裝程序anaconda以及光盤中isolinux目錄的功能
anaconda:系統安裝程序
1)安裝前配置階段:
安裝過程使用的語言
鍵盤類型
安裝目標存儲設備
Basic Storage:本地磁盤
特殊設備:iSCSI
設定主機名
配置網絡接口
時區
管理員密碼
設定分區方式及MBR的安裝位置
創建一個普通用戶
選定要安裝的程序包
2)安裝階段:
在目標磁盤創建分區,執行格式化操作等
將選定的程序包安裝至目標位置
安裝bootloader和initramfs
3)圖形模式首次啟動:
Iptables
Selinux
Core dump
系統在完成安裝后,會在用戶家目錄自動生成一個anaconda-ks.cfg配置文件,記錄了安裝系統時選擇的
各種參數,安裝包等內容
系統光盤中isolinux目錄列表文件:
boot.cat??? ? ? ? ? ? ? ? ? 類似于系統啟動時MBR的作用
grub.conf???????????????? grub.conf文件鏡像
initrd.img????????????????? 是ramfs虛擬文件系統(先cpio,再gzip壓縮)
isolinux.bin?????????????? 相當于grub的第二階段
isolinux.cfg?????????????? isolinux.bin的配置文件,當光盤啟動,會自動去找isolinux.cfg文件
memtest?????????????????? 內存檢測,這是一個獨立程序
splash.jpg???????????????? 光盤啟動界面的背景圖
vesamenu.c32?? ? ? ? 菜單風格,菜單圖標
vmlinuz???????????????????? 內核鏡像
二、實驗:使用kickstart半自動化安裝CentOS系統:
CentOS6:
一、系統默認未安裝system-config-kickstart,先進行yum安裝:
yum install system-config-kickstart
二、配置kickstart
1.基本配置
這里我們選擇語言、鍵盤模式、時區,設置root賬戶密碼并且選擇安裝后自動重啟以及字符界面安裝。
2.選擇安裝方式,我們以http安裝為例
3.Boot Loader設置
4.分區設置,與正常安裝CentOS系統時設置分區類似,點擊Add添加分區
5.網絡配置界面,用來配置系統安裝完成后的網絡地址
6.用戶加密方式設置,我們選擇默認即可
7.防火墻設置,在這里我們可以關閉SELinux策略,防火墻等級選擇默認
8.顯示設置
9.自定義安裝包,我們可以在這一項選擇想要安裝的安裝包,比如mysql數據庫等
10.安裝前腳本
11.安裝后腳本
我們可以在這里定義系統安裝完成后自動安裝yum源,創建一些普通用戶等功能
三、保存ks.cfg文件
打開ks.cfg文件,可以看到剛才設置的參數已經保存在文件中,我們還可以直接修改ks.cfg文件,比如添加一些安裝包等
四、在本機打開httpd服務,并將fs.cfg文件上傳到網頁
service httpd restart
service iptables stop
mv ks6_mini.cfg /var/www/html
瀏覽器:http://172.20.101.101/ks6_mini.cfg確認
五、開啟一臺新虛擬機:
網卡設置為橋接模式
在進入光盤引導界面后,按ESC,出現下圖界面,輸入:
boot:?linux ip=172.20.0.222? netmask=255.255.0.0? ks=http://172.20.0.223/ks6_mini.cfg
注:此處設置的ip地址是為了訪問httpd服務設置的ip地址,與系統安裝后的ip地址不同
六、自動化安裝
如果ks.cfg文件沒有設置出錯的話,將進入自動安裝界面
七、安裝完成
我們可以看到,安裝后腳本也執行成功,wang賬戶創建成功,分區創建成功!
CentOS7:
7版本的kickstart安裝與6基本一致,僅需修改個別版本參數
需要注意的是,在可選安裝包這一項,獲取不到安裝包信息
解決方法:將yum的base源名稱改為development即可
再次打開,我們發現可選安裝包又出現了
其他流程與安裝CentOS6版本基本一致:
三、實驗:制作CentOS6的啟動光盤boot.iso
思路:參考ISO光盤內文件,制作boot6.iso
1.將光盤isoliux目錄復制到/data/myiso目錄下,ks.cfg文件復制到/data/myiso/ksdir下
目錄結構如下:
rm -rf /data/*
cd /data
mkdir myiso
cp -r /misc/cd/isolinux? /data/myiso/
mkdir /data/myiso/ksdir
cp ?ks6_mini.cfg ?/data/myiso/ksdir
cp ?ks6_desktop.cfg ?/data/myiso/ksdir
2.修改isolinux.cfg文件
cd isolinux/
vim isolinux.cfg
內存檢測刪掉
本地安裝留下,且留作默認項(重要)
救援模式刪掉
增加桌面安裝
label desktop
kernel vmlinuz
append initrd=initrd.img ks=cdrom:/ksdir/ks6_desktop.cfg
增加最小化安裝
label mini
kernel vmlinuz
append initrd=initrd.img ks=cdrom:/ksdir/ks6_mini.cfg
3.生成boot.iso文件
mkisofs -R -J -T -v –no-emul-boot –boot-load-size 4 –boot-info-table -V “CentOS 6.9 x86_64 boot” -b isolinux/isolinux.bin -c isolinux/boot. cat -o /root/boot.iso /data/myiso/
4.將boot.iso文件導出系統,新開一臺虛擬機,掛載boot.iso;并設置光盤引導啟動
5.開機成功,顯示我們通過isolinux.cfg修改過的菜單選項,默認本地安裝,選擇其他選項將進行對應系統的自動安裝
四、實驗:制作U盤自動安裝盤
思路:以實驗三制作完成的boot.iso為啟動文件,增加一塊1G的虛擬硬盤/dev /sdc模擬U盤將iso轉
1.為混合模式
isohybrid? boot.iso
2.使用dd命令寫入新硬盤
dd? if=boot.iso? of=/dev/sdc
3.開啟一臺新的虛擬機,插入剛才的硬盤,并設置新硬盤為啟動項
4.啟動成功
五、實驗:制作不依賴網絡的完整CentOS6系統ISO自動安裝盤
1.將CentOS6的第一張盤和第二張盤所有內容拷入centos6目錄
mkdir ?/data/centos6??
cp -rv /misc/cd/? /data/centos6?????????????????? 第一張盤
cp -rv /misc/cd/*? /data/centos6???????????????? ??? 第二張盤
2.刪除centos6/repodata/文件,只留下.*comps.xml一個文件
3.根據.*comps.xml生成新的repodata目錄
cd centos6/
createrepo -g? .*comps.xml??
4.將準備好的ks.cfg文件拷入/data/centos6/ksdir目錄
mkdir? /data/centos6/ksdir
cp ?ks6_mini.cfg /data/centos6/ksdir
cp ?ks6_desktop.cfg /data/centos6/ksdir
5.刪除/data/centos6目錄下多余的文件,如TRANS.TBL文件
find /data/centos6 -name TRANS.TBL -exec rm {} \;
6.修改ks.cfg文件啟動方式為光盤啟動cdrom
vim ksdir/ks6_mini.cfg
#Use network installation
cdrom
7.按照ks.cfg文件修改isoinux.cfg文件啟動選項
cp /root/isolinux/isolinux.cfg?? .
vim isolinux.cfg
注意設置本地啟動為默認啟動項
8.生成boot.iso
mkisofs -R -J -T -v –no-emul-boot –boot-load-size 4 –boot-info-table -V “CentOS 6.9 x86_64 Everything” -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/CentOS-6.9-x86_64-Everything.iso /data/centos6/
9.將CentOS-6.9-x86_64-Everything.iso文件導出,由于文件過大,推薦使用xftp導出
10.新開一臺虛擬機,掛載CentOS-6.9-x86_64-Everything.iso,設置光盤為開機啟動
如無錯誤,將彈出選項可進行自動安裝
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/99307