Linux中的無人職守安裝指令碼kickstart

郭亮的資源發表於2020-10-30

一.kickstart自動安裝指令碼的作用

#在企業中安裝多臺作業系統時面臨的問題#
當安裝Linux作業系統時,安裝過程會需要回答很多關於設定的問題
這些問題必須手動選擇,否則無法進行安裝
當只安裝1臺Linux系統,手動選擇設定工作量比較輕鬆
當安裝多臺Linux,這些設定需要重複多次,這些重複動作是效率底下的操作

#如何解決以上問題?#
用檔案來記錄所有安裝過程中問題的答案,並讓所有需要安裝的主機自動讀取

#kickstart作用#
以上解決方案中記錄系統安裝過程中所有問題答案的檔案叫kickstart指令碼

二.實驗環境
1.主機名稱 :guo1
2.ip :172.25.254.105
3.火牆,selinux關閉
4.httpd服務開啟
5.配置軟體倉庫能正常工作

三.kickstart自動安裝指令碼的製作

在rhel7系統中提供圖形的kickstart製作方式
在rhel8中已經把圖形的工具取消,並新增到rhn網路中
在rhel8中如果無法通過rhn網路製作kickstart,可以使用模板生成

#通過模板生成kickstart檔案#

在已經裝好的rhel8中,/root/anaconda-ks.cfg 就是安裝當前系統時回答的所有問題的答案
生成的kickstart,此檔案為kickstart模板

操作步驟:
1.共享資源:
dnf install httpd -y
systemctl enable --now httpd
systemctl disable --now firewalld
setenforce 0 ##selinux調整為警告模式
mkdir /var/www/html/westos_5
mount /dev/cdrom /var/www/html/westos_5
在這裡插入圖片描述

測試資源共享:
firefox http://172.25.254.105/guo.cfg

#共享資源的意義#
在安裝作業系統時,每個被安裝的作業系統都要有安裝資源
如果使用映象安裝,每個安裝的系統都需要載入一個映象
這樣會浪費儲存,通過網路來共享映象中的資源,讓安裝系統的主機能通過
網路訪問被共享的資源這樣就可以解決多臺主機需要多個映象安裝的問題

#用模板自作kickstart#
在已經裝好的rhel8中,/root/anaconda-ks.cfg 就是安裝當前系統時回答的所有問題的答案
生成的kickstart,此檔案為kickstart模板

cp /root/anaconda-ks.cfg /var/www/html/guo.cfg

vim /var/www/html/guo.cfg
隨機生成密碼,寫入指令碼當中
在這裡插入圖片描述

指令碼內容
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

在這裡插入圖片描述安裝需要的軟體環境,檢測指令碼有無錯誤
在這裡插入圖片描述在這裡插入圖片描述
在這裡插入圖片描述發現有錯誤,少寫%end結尾,更正再次檢測
在這裡插入圖片描述

然後按照虛擬機器安裝的流程在進入基礎配置介面點選

插入ks=http://172.25.254.105/guo.cfg(共享的源)

在這裡插入圖片描述在這裡插入圖片描述
在這裡插入圖片描述

例項:

#version=RHEL8
ignoredisk --only-use=sda ##只是用我們系統中的第一快硬碟
#Partition clearing information
clearpart --all --initlabel ##把sda硬碟的所有內容刪掉
#Use graphical install
#graphical ##安裝過程開啟圖形
text ##安裝過程不開圖形
repo --name=“AppStream” --baseurl=http://172.25.254.20/westos_8/AppStream ##軟體安裝資源
#Use netsource installation media
url --url=“http://172.25.254.20/westos_8” ##系統安裝資源
#Keyboard layouts
keyboard --vckeymap=us --xlayouts=‘us’ ##鍵盤佈局為美式鍵盤
#System language
lang en_US.UTF-8 --addsupport=zh_CN.UTF-8 ##系統支援的語言

#Network information
network --bootproto=dhcp --device=ens160 --onboot=on --ipv6=auto --no-activate ##網路卡設定
network --hostname=localhost.localdomain ##主機名設定
#Root password
rootpw --plaintext westos
authselect --enableshadow --passalgo=sha512 ##系統預設開啟的加密認證方式
#X Window System configuration information
#xconfig --startxonboot ##安裝完成後開機啟動圖形
skipx ##安裝完成後開機不啟動圖形
#Run the Setup Agent on first boot
firstboot --disable ##首次啟動初始化禁止
#System services
services --disabled=“chronyd,firewalld” --enabled=“sshd” ##在開機時開啟或關閉的服務
#System timezone
timezone Asia/Shanghai --isUtc --nontp ##系統時區,啟用utc計時方式,不其同ntp時間同步
#user --name=westos --password= 6 6 6W8HmY8FoDLmjcv65$Xo.SIxQ4rAWK19QBUvXP1et1us191K5w6GlIZvyEMaKx1FBK6EFTiwHC0X5DiktBfJzRsCyxDlmVemkSWfHlx1 --iscrypted --gecos=“westos”
#Disk partitioning information
part / --fstype=“xfs” --grow --size=1 ##讓/分割槽使用全部空閒磁碟空間
part /boot --fstype=“xfs” --size=200 ##/boot分割槽大小為200M
part swap --fstype=“swap” --size=500 ##swap分割槽大小為500M
reboot
%packages
@base ##安裝軟體組base
httpd ##安裝單個軟體httpd
%end

#%pre ##系統安裝前自動執行的指令碼
#%end

%post ##系統安裝後自動執行的指令碼
cat >> /etc/yum.repos.d/westos.repo <<EOF
[AppStream]
name=AppStream
baseurl=http://172.25.254.20/westos_8/AppStream
gpgcheck=0

[BaseOS]
name=BaseOS
baseurl=http://172.25.254.20/westos_8/BaseOS
gpgcheck=0

EOF

%end

ksvalidator /var/www/html/westos.cfg ##檢測westos.cfg語法

chmod 644 /var/www/html/westos.cfg

##搭建dhcpd伺服器##
讓被安裝的主機可以獲得ip來訪問網路資源及kickstart檔案

#搭建方式#
之前在網路管理單元中的方式在此使用即可

測試
在系統安裝基面選擇
Install Red Hat Enterprise Linux 8.0.0 <---- 鍵

ks=http://172.25.254.20/westos.cfg <----鍵

檢視效果

全自動安裝虛擬機器
指令碼create_vm.sh
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

相關文章