以前是怎么安裝系統的
- 光盤(ISO文件,光盤的鏡像文件)===》每一台物理機都得給一個光驅,如果用外置光驅的話,是不是每台機器都需要插一下
- U盤:ISO鏡像刻錄到U盤==》需要每台機器都需要插一下
- 並行安裝==》網絡安裝
- 自動化安裝
備注:(WDS,需要安裝在Windows Server 2008)
Linux系統批量安裝
kickstart是RedHat公司開源的軟件,所以對CentOS兼容性最好。
原理:我們將手動安裝的所有的詳細步驟記錄到一個文件中,然后kickstart通過讀取這個文件就可以實現自動化安裝系統。
kickstart是一個項目的名稱。沒有這個軟件。使用者水平是高中以上
cobbler是對kickstart的所有組件的封裝。使用者水平是初中以上。本質上就是網頁版本的kickstart。
kickstart的原理及組件
安裝DHCP服務
環境准備
[root@kickstart ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@kickstart ~]# uname -r
3.10.0-693.el7.x86_64
[root@kickstart ~]# getenforce
Disabled
[root@kickstart ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
[root@kickstart ~]# hostname -I
10.0.0.201 172.16.1.201
安裝DHCP
yum -y install dhcp
配置DHCP
cat >>/etc/dhcp/dhcpd.conf<<EOF
subnet 172.16.1.0 netmask 255.255.255.0 {
range 172.16.1.100 172.16.1.199;
option subnet-mask 255.255.255.0;
default-lease-time 21600;
max-lease-time 43200;
next-server 172.16.1.201;
filename "/pxelinux.0";
}
EOF
啟動dhcp查看日志
[root@kickstart ~]# systemctl start dhcpd
[root@kickstart ~]# systemctl status dhcpd
tailf /var/log/messages
DHCP服務對kickstart系統的影響程度
新建空白虛擬機,建完后做快照。
TFTP沒有最終報錯
安裝TFTP服務
安裝
[root@kickstart ~]# yum -y install tftp-server
啟動
systemctl start tftp.socket
TFTP服務對kickstart系統的影響程度
上面報錯是在TFTP服務的根目錄找不到啟動文件pxelinux.0 下載
[root@kickstart ~]# cd /var/lib/tftpboot/ # TFTP服務的根目錄
[root@kickstart tftpboot]# ls
[root@kickstart tftpboot]#
syslinux是一個功能強大的引導加載程序,而且兼容各種介質。SYSLINUX是一個小型的Linux操作系統,它的目的是簡化首次安裝Linux的時間,並建立修護或其它特殊用途的啟動盤。如果沒有找到pxelinux.0這個文件,可以安裝一下。
yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
首先排除最簡單故障原因:selinux是否關閉,防火牆是否關閉
上面的錯誤是因為pxelinux.0這個小系統的配置文件(default)不存在,或者文件名不對
如何找到這個配置文件
第一步:掛載鏡像
第二步
mkdir -p /var/www/html/CentOS7
mount /dev/cdrom /var/www/html/CentOS7
第三步:從鏡像中找到相關的配置文件
cp -a /var/www/html/CentOS7/isolinux/* /var/lib/tftpboot/
mkdir -p /var/lib/tftpboot/pxelinux.cfg
cp /var/www/html/CentOS7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
啟動軟件安裝報錯
這是因為centos 文件沒有進行修改 跳過直接安裝http
安裝HTTP服務
作用1:提供自動應答文件下載
作用2:提供安裝系統所需的所有rpm包下載
[root@kickstart ~]# yum -y install httpd
[root@kickstart ~]# systemctl start httpd.service
檢查步驟
curl http://172.16.1.201/CentOS7/
default配置文件
-
[root@kickstart tftpboot]# pwd
-
/var/lib/tftpboot
-
[root@kickstart tftpboot]# cd pxelinux.cfg/
-
[root@kickstart pxelinux.cfg]# vim default
-
efault ks
-
prompt 0
-
label ks
-
kernel vmlinuz
-
append initrd=initrd.img ks=http://172.16.1.201/ks_config/CentOS7-ks.cfg net.ifnames=0 biosdevname=0 ksdevice=eth1
-
配置 網卡
創建ks.cfg文件
通常,我們在安裝操作系統的過程中,需要大量的和服務器交互操作,為了減少這個交互過程,kickstart就誕生了。使用這種kickstart,只需事先定義好一個Kickstart自動應答配置文件ks.cfg(通常存放在安裝服務器上),並讓安裝程序知道該配置文件的位置,在安裝過程中安裝程序就可以自己從該文件中讀取安裝配置,這樣就避免了在安裝過程中多次的人機交互,從而實現無人值守的自動化安裝。
生成kickstart配置文件的三種方法:
-
方法1、 每安裝好一台Centos機器,Centos安裝程序都會創建一個kickstart配置文件,記錄你的真實安裝配置。如果你希望實現和某系統類似的安裝,可以基於該系統的kickstart配置文件來生成你自己的kickstart配置文件。(生成的文件名字叫anaconda-ks.cfg位於/root/anaconda-ks.cfg)
-
方法2、Centos提供了一個圖形化的kickstart配置工具。在任何一個安裝好的Linux系統上運行該工具,就可以很容易地創建你自己的kickstart配置文件。kickstart配置工具命令為redhat-config-kickstart(RHEL3)或system-config-kickstart(RHEL4,RHEL5).網上有很多用CentOS桌面版生成ks文件的文章,如果有現成的系統就沒什么可說。但沒有現成的,也沒有必要去用桌面版,命令行也很簡單。
-
方法3、閱讀kickstart配置文件的手冊。用任何一個文本編輯器都可以創建你自己的kickstart配置文件。
-
[root@CentOS-7 ks_config]# vim CentOS7-ks.cfg
-
-
# Kickstart Configurator for CentOS 7 by yao zhang
-
Install 告知安裝程序,這是一次全新安裝,而不是升級upgrade。
-
url --url=http://172.16.1.201/CentOS7/ 通過FTP或HTTP從遠程服務器上的安裝樹中安裝。
-
text 使用文本模式安裝。
-
lang en_US.UTF-8 設置在安裝過程中使用的語言以及系統的缺省語言
-
keyboard us 設置系統鍵盤類型。keyboard us
-
zerombr 清除mbr引導信息。系統引導相關配置。
-
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
-
--location=,指定引導記錄被寫入的位置.有效的值如下:mbr(缺省),partition(在包含內核的分區的第一個扇區安裝引導裝載程序)或none(不安裝引導裝載程序)。
-
--driveorder,指定在BIOS引導順序中居首的驅動器。
-
--append=,指定內核參數.要指定多個參數,使用空格分隔它們。
-
network --bootproto=static --device=eth1 --ip=172.16.1.202 --netmask=255.255.255.0 –activate
-
--bootproto=[dhcp/bootp/static]中的一種,缺省值是dhcp。bootp和dhcp被認為是相同的
-
--ip=,要安裝的機器的IP地址. --netmask=,安裝的系統的子網掩碼.
-
network --hostname=Cobbler --hostname=,安裝的系統的主機名.
-
#network --bootproto=dhcp --device=eth1 --onboot=yes --noipv6 --hostname=CentOS7
-
--bootproto=[dhcp/bootp/static]中的一種,缺省值是dhcp。bootp和dhcp被認為是相同的。 --onboot=,是否在引導時啟用該設備.
-
timezone --utc Asia/Shanghai 設置系統時區。timezone --utc Asia/Shanghai
-
authconfig --enableshadow --passalgo=sha512 系統認證信息。authconfig --enableshadow --passalgo=sha51設置密碼加密方式為sha512?啟用shadow文件
-
clearpart --all –initlabel 清空分區。clearpart --all –initlabel --all 從系統中清除所有分區,--initlable 初始化磁盤標簽 磁盤分區。
-
part /boot --fstype xfs --size 1024 --size=,以MB為單位的分區最小值.在此處指定一個整數值,如500.不要在數字后面加MB。
-
part swap --size 1024
-
part / --fstype xfs --size 1 –grow --fstype=,為分區設置文件系統類型.有效的類型為ext2,ext3,swap和vfat。
-
firstboot –disable
-
selinux --disabled
-
firewall --disabled
-
logging --level=info
-
reboot
-
-
%packages
-
@^minimal 指定安裝的包組
-
@compat-libraries
-
@debugging
-
@development
-
tree
-
nmap
-
sysstat
-
lrzsz
-
dos2unix
-
telnet
-
wget
-
vim
-
bash-completion
-
%end
-
-
%post
-
systemctl disable postfix.service
-
%end
保存,啟動安裝虛擬機,就可以一件化安裝。
不該出現的錯誤
報錯原因:selinux沒關