系統自動化安裝:實現同時部署多臺操作系統,批量進行安裝linux系統
CentOS系統安裝
系統啟動流程:
bootloader–>kernel(initaramfs)–>rootfs–>/sbin/init
anaconda:系統安裝程序
tui:基于圖形庫curses的文本窗口
gui:圖形窗口
MBR:boot.cat ====>類似于MBR
stage2:isolinux/isolinux.bin(stage2)
配置文件:/misc/cd/isolinux/isolinux.cfg
每個對應的菜單選項:
加載內核:isolinuz/vmlinuz
想內核傳遞參數:append initrd=initrd.img…..
裝載根文件系統,并啟動anaconda
默認啟動GUI接口
若是顯示指定使用TUI接口:向內核傳遞text參數即可(在光盤引導界面)
1.按tab鍵,在后面增加text
2.按ESC鍵:boot:linux text
anaconda工作過程
Anaonda安裝系統分成三個階段:
安裝前配置階段
安裝過程使用的語言
鍵盤類型
安裝目錄存儲設備
Basic Storage:本地磁盤
特殊設備:iSCSI
設定主機名
配置網絡接口
時區
管理員密碼
設定分區方式及MBR的安裝位置
創建一個普通用戶
選定要安裝的程序包
安裝階段
在目標磁盤創建分區,執行格式化操作
將選定的程序包安裝至目標位置
安裝bootloader和initramfs
首次啟動
iptables
selinux
core dump
系統安裝
啟動安裝過程一般應位于引導設備;后續的anaconda及其安裝用到的程序包等可來自下面幾種方式
本地光盤
本地硬盤
ftp server:yum repository
http server:yum repostory
nfs server
如果想手動安裝指定安裝源
boot:linu askmethod
根據以上選項,可選擇不同的安裝源
ancconda的配置方式:
1.交互式配置方式
2.通過讀取事先給定的配置文件自動完成配置
按特定語法給出的配置選項
kickstart
安裝boot引導選項:boot
text:文本安裝方式
askmethod:手動指定使用的安裝方法
與網絡相關的引導選項:
ip=IPADDR
netmask=MASK
gateway=GW
dns=DNS_SERVER_IP
ifname=NAME:MAC_ADDR
與遠程訪問功能相關的引導選項
vnc
vncpassword=“PASSWORD”
指明kickstart文件的位置: ks=
DVD drive: ks=cdrom:/ PATH/TO/KICKSTART_FILE
Hard drive: ks=hd:device:/directory/ 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
NFS server:ks=nfs:host :/ path/to/ KICKSTART_FILE
啟動緊急救援模式:
rescure
官方文檔 :
《Installation Guide》
kickstart文件的格式
命令段:指明各種安裝前配置,如鍵盤類型等;
程序包段:指明要安裝的程序包組成或程序包,不安裝的程序包等;
%packages
@group_name
package
-package
%end
腳本段:
%pre:安裝前腳本
運行環境:運行于安裝介質上的微型Linux環境
%post:安裝后腳本
運行環境:安裝完成的系統
命令段中的命令:
必備命令:
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版本
創建kickstart文件的方式
-
直接手動編輯:
依據某模板修改(家目錄下的anaconda.cfg,安裝系統時生成的,記錄了安裝時的選項)
[root@localhost ~]# cat anaconda-ks.cfg # Kickstart file automatically generated by anaconda. #version=DEVEL install url --url=http://10.1.0.1/cobbler/ks_mirror/6/ lang en_US.UTF-8 keyboard us network --onboot yes --device eth0 --bootproto dhcp --noipv6 rootpw --iscrypted $6$CGsqab6d$Cd.PnnWtlL5XZAyr9J2zoMqyJH1QodcDp1pQp0uZ1f0Cq4eq9.TMkSQU6IfpvYZEYc32.lmF0lKuQwavnC49a0 # Reboot after installation reboot firewall --disabled authconfig --useshadow --passalgo=sha512 selinux --disabled timezone Asia/Shanghai bootloader --location=mbr --driveorder=sda --append="crashkernel=auto crashkernel=auto rhgb rhgb quiet quiet" # Clear the Master Boot Record #zerombr # 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=200 #part pv.008002 --size=61440 #volgroup vg0 --pesize=8192 pv.008002 #logvol / --fstype=ext4 --name=root --vgname=vg0 --size=20480 #logvol swap --name=swap --vgname=vg0 --size=2048 #logvol /usr --fstype=ext4 --name=usr --vgname=vg0 --size=10240 #logvol /var --fstype=ext4 --name=var --vgname=vg0 --size=20480 repo --name="CentOS" --baseurl=http://10.1.0.1/cobbler/ks_mirror/6/ --cost=100 %packages @Base @Core @base @basic-desktop @chinese-support @client-mgmt-tools @core @desktop-platform @fonts @general-desktop @graphical-admin-tools @legacy-x @network-file-system-client @perl-runtime @x11 lftp tree %end %post echo -e 'Mage Education Learning Services\nhttp://www.magedu.com\n' >> /etc/issue sed -i '1,$s@id:[0-9]:initdefault:@id:3:initdefault:@g' /etc/inittab [ ! -d /root/.ssh ] && mkdir /root/.ssh && chmod og=--- /root/.ssh cat >> /root/.ssh/authorized_keys << EOF ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAlmq1z0G/7wbGuSUewfXlFnwzqCg/myqTi/AwP8LP+JJ49xzIKMzpeWXHD8RWIf5RlDzo+6N7uPK5O22x/QtMosi0egz4shavEJeUkO0EH+KygXXgBIGuMWmAsL+yzbgWXT9H3zdzXi/qWcrBeBv2nYB5mpYSf7o0xqdhCst1MTfcYLD8qxvkwC8RiqBA/1u9N6jeDFbHO+UzZYYCr9zgk9uz4Rrhb9BU7c1GhjUCgRwBDAuo47IHw/OT6KS9lb8lT2R/ujVoDARy/eOhw8cAFXo+QcvzNSW2qKf/Qo21uR/wz2u9SRV0lvUDNSvC2PYtR+iPlDwHY81md430yiNf9w== root@server.magelinux.com EOF ClientName=`ifconfig eth0 | awk '/inet addr:/{print $2}' | awk -F. '{print $NF}'` sed -i "s@HOSTNAME=.*@HOSTNAME=client$ClientName.magelinux.com@g" /etc/sysconfig/networks # set hosts echo '10.1.0.1 server.magedu.com server' >> /etc/hosts # yum repo %end
-
可使用創建工具:system-config-kickstart
依據某模板修改并生成新配置
檢查ks文件的語法錯誤:ksvalidator
#ksvalidator /PATH/TO/KICKSTART_FILE
實例:
-
首先需要安裝一個圖形界面使用的命令:
yum install system-config-kickstart
2.切換到圖形界面運行此命令,界面如下
3.Basic Configuration 選項設置
4.Installation Method設置(我選擇網絡安裝)
5.Boot Loader Options 選項設置(不弄那么復雜了)
6.分區信息設置(按自己要求設置)
7.網絡設置
8.Authentication設置
9.firewall 防火墻設置
10.Display Configuration設置
11.Package Selection 包設置(選擇需要的安裝即可)
12.開機前腳本沒什么內容可寫,所有選擇了開機后腳本,設置如下
13.保存至root命令下ks.cfg文件,內容如下
[root@localhost ~]# cat 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/6" # Root password rootpw --iscrypted $1$vvw.7lmZ$vHhd8RrB4hePFMNIPOPqe. # System authorization information auth --useshadow --passalgo=sha512 # Use text mode install text firstboot --disable # System keyboard keyboard us # System language lang en_US # SELinux configuration selinux --enforcing # Installation logging level logging --level=info # Reboot after installation reboot # System timezone timezone Asia/Shanghai # Network information network --bootproto=static --device=eth0 --gateway=10.1.0.1 --ip=10.1.252.135 --nameserver=8.8.8.8 --netmask=255.255.0.0 --onboot=on # System bootloader configuration bootloader --location=mbr # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part /boot --fstype="ext4" --size=500 part / --fstype="ext4" --size=100000 part swap --fstype="swap" --size=2048 %post useradd qiuwei echo 123456 |passwd --stdin qiuwei echo pingxiongshishabi >> /etc/issue mkdir /etc/yum.repos.d/bak mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak cat > /etc/yum.repos.d/*.repo <<EOF [base] baseurl=http://10.1.0.1/cobbler/ks_mirror/6 gpgcheck=0 EOF %end %packages @base @basic-desktop @ftp-server %end
14.因為沒有服務器,在我的另一個centos7系統上安裝一個vsftpd,當作服務器
使用yum或者rpm都可以,裝好后啟動vsftpd服務
centos7
15.將剛才生成的ks.cfg文件復制到centos7系統上
centos 6上執行命令
centos 7上的結果
16.reboot重啟,進入到光盤引導界面,鍵入ESC或者tab,
輸入boot :linux ks=ftp://10.1.249.150/pub ==>(centos 7上的ks.cfg的路徑 )
設置ks路徑,然后回車運行,等待即可,畫面如下,為防火墻沒關
在centos7上關閉防火墻,還是不可以,找了好久,應該是文件的權限有問題,之前的權限是600,我改成666了再次執行
就沒問題,可以執行了,之后就是等待安裝了,安裝后會自動重啟,
案例成功,當然因為模塊方面不太了解,所有基本上是參照centos6上的boot目下的.config文件做的,等以后深入了解了,
可以自己做一個!
原創文章,作者:qiuwei,如若轉載,請注明出處:http://www.www58058.com/47605
作為中小公司的運維,經常會遇到一些機械式的重復工作,例如:有時公司同時上線幾十甚至上百臺服務器,而且需要我們在短時間內完成系統安裝。KICKSTART無人值守安裝對我們來說是一個重要能力了。