CentOS 系統自動化安裝
概述:
系統安裝過程
配置anaconda
自動化安裝系統
CentOS 系統安裝:
1.啟動流程:
bootloader–>kernel(initrd)–>rootfs–>anaconda(啟動安裝程序)
2.anaconda:(系統安裝程序)
tui:基于cureses的文本配置窗口;
gui:圖形界面
Anaconda是RedHat、CentOS、Fedora等Linux的安裝管理程序。它可以提供文本、圖形等安裝管理方式,并支持Kickstart等腳本提供自動安裝的功能。此外,其還支持許多啟動參數,熟悉這些參數可為安裝帶來很多方便。該程序的功能是把位于光盤或其他源上的數據包,根據設置安裝到主機上。為實現該定制安裝,它提供一個定制界面,可以實現交互式界面供用戶選擇配置(如選擇語言,鍵盤,時區等信息)。Anaconda的大部分模塊用Python編寫,有少許的載入模塊用C編寫。
3.CentOS的安裝過程啟動流程:
★ MBR:boot.cat
★ Stage2:isolinux/isolinux.bin
配置文件:isolinux/isolinux.cfg
每個對應的菜單選項
加載內核:isolinux/vmlinuz
向內核傳遞參數:append initrd=initrd.img
其實整個光盤安裝啟動過程就是依賴于isolinux這個目錄下的文件的
★裝載根文件系統,并啟動anaconda
默認界面是圖形界面(GUI):512MB+內存空間
若需要顯示指定啟動TUI接口:向啟動內核傳遞一個參數“text”即可;
(1)按tab鍵,在后面增加text
(2)按ESC鍵:boot(提示符下): linux text
注意:
上述內容一般位于引導設備,例如可通過光盤、U盤、或網絡等;后續的anaconda及其安裝用到的程序包等可以來自于程序包倉庫。
此倉庫的位置可以為:
本地光盤、本地硬盤、ftp server、http server、nfs server
如果想手動指定安裝倉庫:按 ESC鍵:boot(提示符下):linux method
[root@centos7 isolinux]# less isolinux.cfg ... label linux menu label ^Install CentOS 7 kernel vmlinuz # 加載的內核 append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet # 向內核傳遞的參數
anaconda 工作過程
安裝前配置階段,安裝階段,首次啟動
1)安裝前配置階段:
安裝過程使用的語言;
鍵盤類型;
安裝目標存數設備;
Basic Storage:本地磁盤
Special Storage:ISCSI
設定主機名;
配置網絡接口;
時區;
管理員密碼;
設定分區方式及MBR的安裝位置;
創建一個普通用戶;
選定要安裝的程序包;
2)安裝階段:
在目標磁盤創建分區并執行格式化;
將選定的程序包安裝至目標位置;
安裝bootloader
3)重啟系統
iptables 防火墻
selinux
core dump 核心轉儲
anaconda 的配置方式:
交互式配置方式;
支持通過讀取配置文件中事先定義好的配置項自動完成配置;遵循特定的語法格式,此文件即為kickstart文件;
安裝引導選項:
boot:
text:文本安裝方式;
method:手動指定使用安裝方法;
與網絡相關的引導選項:
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
啟動救援模式:
rescue
裝載額外驅動:
dd
www.redhat.com/docs 《installation guide》 官方文檔
kickstart文件的格式
命令段:指定各種安裝前的配置選項,如鍵盤類型等;
必備命令
可選命令
程序包段:指明要安裝程序包,以及包組,也包括不安裝的程序包;
%packages :指明程序包段的開始;
@group_name:安裝一個包組;
package:安裝一個程序包;
-package :指明不安裝的程序包;
%end :指明程序包段的結尾;
腳本段:
%pre:安裝前腳本
運行環境:運行于安裝介質上的微型Linux環境
%post:安裝后腳本
運行環境:安裝完成的系統;
1)命令段中的必備命令
authconfig: 認證方式配置;
authconfig–useshadow–passalgo=sha512
bootloader:bootloader的安裝位置及相關配置;
bootloader –location=mbr –driveorder=sda –append="crashkernel=auto rhgb quiet"
keyboard: 設定鍵盤類型;
lang: 語言類型; lang zh_CN.UTF-8
part: 分區布局;
part /boot –fstype=ext4 –size=200
part pv.008002 –size=61440
補充:分區相關的其他命令:
clrarpart:清除分區
clearpart –none –drives=sda:清空磁盤分區
volgroup:創建卷組
volgroup vg0 –pesize=8192 pv.008002
logvol:創建邏輯卷
logvol / –fstype=ext4 –name=root –vgname=vg0 –size=20480
rootpw: 指明root的密碼;
timezone: 時區 timezone Asia/Shanghai
可選命令:
install OR upgrade;安裝或升級
text: 安裝界面類型,text為TUL,默認為GUI
network:配置網絡接口;
firewall:防火墻
系統安裝完成之后禁用防火墻
CentOS 6 :
# service iptables stop
# chkconfig iptables off
CentOS 7:
# systemctl stop firewalld.service
# systemctl disables firewalld.service
selinux:SElinux
系統安裝完成后禁用SElinux:
編輯/etc/sysconfig/selinux或/etc/selinux/config文件,修改SELINUX參 數的值為下面其中參數之一:permisslve,disabled
立即生效:
getenforce
setenforce 0
halt、poweroff、reboot:安裝完成之后的行為;
repo:安裝時使用的rpository
user:安裝完成后為系統創建新用戶
url: 指明安裝時使用的repository,但是為url格式;
key –skip 跳過安裝號碼,適用于rhel版本
CentOS 6 中的 anaconda-ks.cfg
[root@CentOS6 ~]# cat anaconda-ks.cfg # Kickstart file automatically generated by anaconda. #version=DEVEL install # 安裝 url --url= # 指明安裝時使用的倉庫 lang en_US.UTF-8 # 指明使用的語言 keyboard us # 指明使用的鍵盤 network --onboot yes --device eth0 --bootproto dhcp --noipv6 # 配置網絡接口 rootpw --iscrypted $6$CGsqab6d$Cd.PnnWtlL5XZAyr9J2zoMqyJH1QodcDp1pQp0uZ1f0Cq4eq9.TMkSQU6IfpvYZEYc32.lmF0lKuQwavnC49a0 # 指明root密碼 # Reboot after installation reboot # 安裝完成之后的行為 firewall --disabled # 防火墻 authconfig --useshadow --passalgo=sha512 # 認證方式配置 selinux --disabled # SElinux timezone Asia/Shanghai # 時區 bootloader --location=mbr --driveorder=sda --append="crashkernel=auto crashkernel=auto rhgb rhgb quiet quiet" # bootloader的安裝位置及相關配置 # 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
定制kickstart文件的方式:
(1)直接手動編輯;
依據某模板修改
(2)可使用創建工具:
# yum install system-config-kickstart
# system-config-kickstart
依據某模板修改并生成新配置;
(3)檢查ks文件的語法錯誤:ksvalidator
# ksvalidator /PATH/TO/KICKSTART_FILE
利用創建工具,操作如下:
[root@CentOS6 ~]# system-config-kickstart & # 運行命令,會出現如下編輯界
2)我們可以在編輯器上進行編輯,選擇分區,網絡,等配置,也可以導入模板文件(anaconda)在此基礎上修改配置,并創建文件名,保存至root下退出;
需要注意這里在分區時一定選擇清除主引導分區,刪除所有分區和初始化磁盤卷標,要不然在自動化安裝時會提醒你是否清除數據
3)查看root下生成的文件,并檢查語法錯誤,如下:
[root@CentOS6 ~]# ls anaconda-ks.cfg bin Desktop Documents Downloads f1 ks.cfg # 生成的文件 Music Pictures Public Templates Videos [root@CentOS6 ~]# ksvalidator ks.cfg # 檢查語法錯誤,有錯誤會報錯
制作引導光盤
1)創建引導光盤
# cp/media/cdrom/isolinux/ /tmp/myiso/
# vi /tmp/myiso/isolinux/isolinux.cfg
initrd=initrd.imgtext ks=cdrom:/myks.cfg
# cp/root/myks.cfg /tmp/myiso/
# cd /tmp
# mkisofs -R -J -T -v –no-emul-boot –boot-load-size 4 –boot-info-table -V "CentOS 6.6 x86_64 boot" -b isolinux/isolinux.bin-c isolinux/boot.cat -o /root/boot.iso myiso/
演示步驟如下:
[root@CentOS6 ~]# mkdir /tmp/myiso/ [root@CentOS6 ~]# cp -a /misc/cd/isolinux/ /tmp/myiso/ # 復制光盤下的isolinux到/tmp下 [root@CentOS6 ~]# cd /tmp/myiso/isolinux/ [root@CentOS6 isolinux]# ll # 可以看到,因為是光盤文件所以都是只讀的 total 44436 -r--r--r-- 1 root root 2048 Sep 13 12:11 boot.cat -r--r--r-- 1 root root 84 Sep 13 12:11 boot.msg -r--r--r-- 1 root root 321 Sep 13 12:11 grub.conf -r--r--r-- 1 root root 40688737 Sep 13 12:11 initrd.img # 文件驅動 -r--r--r-- 1 root root 24576 Sep 13 12:11 isolinux.bin -r--r--r-- 1 root root 923 Sep 13 12:11 isolinux.cfg # 配置文件 -r--r--r-- 1 root root 183012 Sep 13 12:11 memtest -r--r--r-- 1 root root 151230 Sep 13 12:11 splash.jpg # 為背景圖 -r--r--r-- 1 root root 2215 Sep 13 12:11 TRANS.TBL -r--r--r-- 1 root root 163728 Sep 13 12:11 vesamenu.c32 -r-xr-xr-x 1 root root 4264528 Sep 13 12:11 vmlinuz # 內核文件 [root@CentOS6 isolinux]# chmod u+w isolinux.cfg # 添加寫權限,進行修改 [root@CentOS6 isolinux]# vim isolinux.cfg
[root@CentOS6 tmp]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.8 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso myiso/ # 注意一定退出myiso目錄,創建光盤鏡像,指明路徑等信息,并在/root下生成一個boot.iso鏡像 [root@CentOS6 ~]# ls anaconda-ks.cfg bin boot.iso # 生成的鏡像文件 Desktop Documents Downloads f1 Music myks.cfg Pictures Public Templates Videos
新建一個虛擬機,用創建好的光盤鏡像在虛擬機上重新引導安裝,如下:
成功安裝:
原創文章,作者:zhumengxiaotao,如若轉載,請注明出處:http://www.www58058.com/48347