1. 程式人生 > >PXE自動安裝CentOS6與CentOS7的實現

PXE自動安裝CentOS6與CentOS7的實現

裝系統 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 權限;不然無法獲取到安裝文件
  • 啟動服務

    • 關閉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的實現