PXE自動安裝CentOS6與CentOS7的實現
阿新 • • 發佈:2018-01-13
裝系統 asi sock conf ice rep proc 安裝包 軟件包 一、 準備工作
- anaconda程序的運行配置文件 kickstart 文件,root用戶家目錄下的anaconda.cfg即ks.cfg文件。
- CentOS6與CentOS7系統鏡像文件
- 軟件/工具:httpd 、tftp-server 、dhcp 、syslinux 包
二、 安裝軟件包/工具,啟用
- yum install Packages { httpd , tftp-server , dhcp , syslinux }
- 配置dhcpd.conf文件,示範文件地址:/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
- 如果在自己實驗,網卡選擇主機模式,並且關閉DHCP服務
``` subnet 192.168.163.0 netmask 255.255.255.0 { range 192.168.163.40 192.168.163.60;#dhcp服務的ip地址範圍 option routers 192.168.163.1;#網關 filename"pxelinux.0";#文件名寫死,固定在tftp空間尋找這一個文件 next-server 192.168.163.20;#系統文件提供機器的地址 #詳細dhcp配置請自行了解 } ```
- httpd服務使用
- httpd服務目錄地址 /ver/www/html/
mkdir -pv centos/{6,7} ksdir #kickstart 文件放到 ksdir目錄下,方便尋找;
- 將系統鏡像文件分別掛載到 centos/6和7的目錄下
mount /dev/sr0 /var/www/html/centos/6 #掛載7同法 #導入的系統鏡像文件,掛載加 -o loop 比較通用
- 將所有共享出去的文件權限修改為 644 權限;不然無法獲取到安裝文件
- httpd服務目錄地址 /ver/www/html/
-
啟動服務
- 關閉SElinux 修改/etc/selinux/config文件 SELINUX=disabled
- 關閉防火墻
service iptables stop chkconfig iptables off #開機不啟動 #centos6方法 systemctl stop firewalld systemctl disable firewalld #centos7方法
- 啟動服務
systemctl enable httpd #開機自動啟動http dhcp tftp 服務 systemctl enable dhcpd systemctl enable tftp.socket
三、 文件配置
- kickstart 創建
- 安裝包 system-config-kickstart ,命令system-config-kickstart 打開軟件,可以根據自己的需求直接創建kickstart文件。
- 使用root家目錄中的 anaconda.cfg文件修改
- kickstart文件格式
簡單說明,詳情請自行了解
#version=DEVEL
auth --enableshadow --passalgo=sha512 #密碼加密方式
url --url=http://192.168.163.20/centos/7 #使用什麽方式去引導啟動
install #安裝
text #命令模式安裝 可以選擇
reboot #安裝完,自動重啟
selinux --disabled #關閉SElinux
firewall --disabled #關閉防火墻
firstboot --enable #初始化開啟
ignoredisk --only-use=sda #選擇磁盤 sda
keyboard --vckeymap=us --xlayouts=‘us‘ #語言和鍵盤選擇
lang en_US.UTF-8 #文字選擇
network --bootproto=dhcp --device=ens33 --onboot=off --ipv6=auto --activ
ate #網卡設置
network --hostname=localhost.localdomain #主機名設置
rootpw --iscrypted xxxxxxx #設置密碼 為加密文本
services --disabled="chronyd"
timezone Asia/Shanghai --isUtc --nontp #時區選擇
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda #分區引導
zerombr yes #清除分區
clearpart --all --initlabel #清空磁盤
#磁盤分區
part pv.198 --fstype="lvmpv" --ondisk=sda --size=10240
part /boot --fstype="xfs" --ondisk=sda --size=1024
volgroup centos --pesize=4096 pv.198
logvol / --fstype="xfs" --size=5120 --name=root --vgname=centos
logvol swap --fstype="swap" --size=2048 --name=swap --vgname=centos
logvol /app --fstype="xfs" --size=2048 --name=app --vgname=centos
eula --agreed #同意選項 centos7中必備
%packages #安裝的包
@^minimal
@core
kexec-tools
vim-enhanced
%end
%post #安裝後運行腳本
rm -f /etc/yum.repos.d/*
cat > /etc/yum.repos.d/base.repo <<EOF
[base]
name=basemage
baseurl=http://192.168.163.141/centos/6
gpgcheck=0
EOF
useradd arno
echo 123456 |passwd --stdin arno &> /dev/null
%end
- httpd哪些文件
-
配置tftp中的文件
- tftp為輕量級共享文件方式,網卡自帶集成tftp的客戶端
- 共享目錄為:/var/lib/tftpboot
- 安裝syslinux包後,我們要用到/usr/share/syslinux目錄下兩個的文件
- 文件全部完成後,註意權限需要 644
cd /var/lib/tftpboot
cp /usr/share/syslinux/{pxelinux.0,menu.c32} .
#將兩個文件拷貝過來
#menu.c32是簡單的啟動菜單文件 ,啟動頁面比較簡陋
mkdir {6,7}
#創建系統區分目錄,將兩個系統的啟動文件拷入 vmlinuz initrd.img
cp /var/www/html/centos/6/isolinux/{vmlinuz,initrd.img} .
#拷貝進tfpboot目錄
mkdir pxelinux.cfg
#創建目錄,放置菜單的布局配置文件
cp /var/www/html/centos/6/isolinux/isolinux.cfg pxelinux.cfg/default
#拷貝進isolinux.cfg目錄下,並改名為default
-
tftp-server哪些文件?
- 鏡像裏的 isolinux.cfg 文件格式
default menu.c32 #菜單樣式文件
timeout 60 #倒計時6s後自動選擇默認選項
menu title PXE CentOS 7 #菜單標題
label desktop
menu label ^Install MIni CentOS 7 # 選項 ; ‘^‘表示首字母快捷鍵選擇
kernel 7/vmlinuz #內核文件路徑
append initrd=7/initrd.img ks=http://192.168.163.20/ksdir/ks7-mini.cfg
#initrd.img文件路徑,和kickstart文件路徑
label mini
menu label Install ^mini CentOS 6
menu default #默認選項;進入菜單,光標自動選擇該選項
kernel 6/vmlinuz
append initrd=6/initrd.img ks=http://192.168.163.20/ksdir/ks6-mini.cfg
label centos6mini
menu label Install Desktop ^CentOS 6
kernel 6/vmlinuz
ppend initrd=6/initrd.img ks=http://192.168.163.20/ksdir/ks6-desktop.cf
g
label local
#磁盤啟動 ;不安裝系統時,該項設置成默認選項,不然重復安裝系統
menu label Boot from ^local drive
localboot 0xffff
menu end
四、 打開需要安裝系統的電腦,在一個局域網內,且沒有其他DHCP服務器的環境;選擇網卡啟動------------------>成功
PXE自動安裝CentOS6與CentOS7的實現