Linux-pxe~install網絡安裝

pxe

PXE(preboot execute environment,預啓動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,並由此支持通過網絡啓動操作系統,在啓動過程中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啓動軟件包到本機內存中執行,由這個啓動軟件包完成終端(客戶端)基本軟件設置,從而引導預先安裝在服務器中的終端操作系統。PXE可以引導多種操作系統

 1、安裝:[[email protected] ~]# yum install dhcp tftp-server httpd syslinux -y


httpd ##共享安裝資源

dhcp ##分配ip以及讓客戶主機獲取pxelinux.0文件

pxelinux.0 ##預安裝環境頭文件,用來指定讀取後續文件的程序

tftp-server ##提供tftp協議,令客戶主機可以讀取到預安裝環境

syslinux ##提供pxelinux.0文件

2、[[email protected] ~]# vim /etc/xinetd.d/tftp

        disable                 = no開啓tftp服務

systemctl restart xinetd  之後重啓服務


3、查看端口

查看69端口 看看tftp服務是否開啓

[[email protected] ~]# netstat -anutple | grep 69

udp        0      0 0.0.0.0:69              0.0.0.0:*                           0          29769      1825/xinetd  

chkconfig --list 查看tftp是否開啓

xinetd based services:

chargen-dgram: off

chargen-stream: off

daytime-dgram: off

daytime-stream: off

discard-dgram: off

discard-stream: off

echo-dgram:     off

echo-stream:    off

tcpmux-server: off

tftp:           on ##tftp服務開啓

time-dgram:     off

time-stream:    off



4.製作預安裝環境


第一步 cp /var/www/html/rhel7.0/isolinux/*  /var/lib/tftpboot/ (切換到鏡像文件的掛載目錄下 再切換到isolinux目錄下把下面的東西全部拷貝到server中的/var/lib/tftpboot/下 

第二步 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

第三步 mkdir /var/lib/tftpboot/pxelinux.cfg


第四步 cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

最後ls查看一下所有的東西


systemctl restart xinetd然後進行重啓服務


5 啓用DHCP服務

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 之後y進行覆蓋


vim /etc/dhcp/dhcpd.conf 修改dhcp的配置文件


option domain-name "example.com"; ##客戶主機域名

option domain-name-servers 172.25.254.182; ##客戶主機獲得到的dns

default-lease-time 600; ##默認租約期

max-lease-time 7200; ##最長租約期

log-facility local7; ##日誌級別

subnet 172.25.254.0 netmask 255.255.255.0 { ##網段,子網掩碼

  range 172.25.254.180 172.25.254.190; ##ip地址池 獲取ip的網段

  option routers 172.25.254.182; ##客戶主機獲得到的網關

  filename "pxelinux.0"; ##客戶主機獲得到的預安裝環境頭文件找的文件爲pxelinux.0

  next-server 172.25.254.182; ##指定頭文件所在主機的ip ##表示誰提供tftp服務,就寫該服務器的ip

}

 systemctl start dhcpd

systemctl enable dhcpd

systemctl stop firewalld

systemctl disable firewalld

systemctl enable firewalld


之後我們在desktop中進行實驗 

1 首先boot啓動方式中選擇pxe啓動


然後開機進行測試 可以看到由DHCP獲取到的ip爲172.25.254.180  剛好是我寫入的網段 以及網關等信息


然後就進入了這個界面


但是我沒有寫入鏡像安裝源 所以還沒辦法安裝

接下來 我們可以在配置文件中修改加入鏡像的安裝源 和 修改 背景 標題 等待時間等

切換在這個目錄下 default就是配置文件

vim /var/lib/tftpboot/pxelinux.cfg/default  

  2 timeout 60(毫秒爲單位的)                               修改等待時間

    menu background splash.png 背景圖片 其所在的位置就是在/var/lib/tftpboot/ 我們可以自己在這個路徑中加入圖片 更改這個名稱指向源既可以更改 背景 但是要注意 格式的修改

  11 menu title Dou you  see my small bear ?   標題 名稱               

  61 label linux

  62   menu label ^Install Red Hat Enterprise Linux 7.0

  63   menu default 更改默認所在行數 這裏默認我們感概成了 簡短單詞的 這一行


  64   kernel vmlinuz

  65   append initrd=initrd.img repo=http://172.25.254.250/rhel7  鏡像安裝源的地址


  66

  67 label check

  68   menu label Test this ^media & install Red Hat Enterprise Linux 7.0

  69

  70   kernel vmlinuz

  71   append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.0\x20Server.x86_64 rd.live.    check quiet

 我們下載的圖標放在/var/lib/tftpboot中即使修改了配置文件的指向還不能直接用 格式可能有問題 這裏我們可以通過軟件命令來修改格式 convert  首先我們查看這個命令需要下載哪一個軟件

yum  whatprovides convert 可以看到需要下載的軟件 然後爲我們進行下載


yum install imagemagick -y


file splash.png 查看一下原來背景圖片的格式 然後使用命令

convert -resize 640x480! annie.png riven.png 後面這個是改成什麼名字 必須加 完了相當於多了一個圖片


然後我們就可以用desktop進行測試了

果然背景圖片發生了改變 標題 所在行數(原來在第二行)也都發生了改變 等待時間也改變了


然後就可以進行安裝了 



但是我們還是覺得太麻煩了 這時候就可以使用到kictstart 腳本寫入安裝的動作了 之後就可以實現全自動安裝了


六 設定自動化部署

yum install system-conifig-kickstart


system-config-kickstart ---->/var/www/html/rhel7.0.cfg

system-config-kickstart 然後選擇安裝的動作

 選擇下面兩個 並設置好密碼


寫入http安裝 再寫入鏡像文件的位置


第三個不選 第四個全部選擇第一個再進行分區


boot 分區 給200m


swap 分區給500m


剩下的全部給跟下 選擇fill all~


設備寫入eth0


防火牆選擇disabled狀態


然後將這個ks.cfg腳本保存到/var/www/html/下


然後我們可以在ks.cfg這個腳本中寫入想讓安裝中執行的動作和安裝包

38 %packages

 39 @base

 40 lftp

 41 %end

 42

 43

 44

 45 %post

 46 cat >>/etc/yum.repos.d/yum.repo <<EOF

 47 [rhel7.2]

 48 gpgcheck=0

 49 baseurl=http://172.25.254.22/rhel7.2

 50 EOF

 51 rm -fr /etc/sysconfig/network-scripts/ifcfg-eth0

 52 cat >>/etc/sysconfig/network-scipts/ifcfg-eth0 <<EOF

 53 DEVICE=eth0

 54 ONBOOT=yes

 55 BOOTPROTO=none

 56 IPADDR=172.25.254.99

 57 NETMASK=255.255.255.0

 58 EOF

 59 systemctl restart network

 60 %end



然後我們可以用ksvalidator ks.cfg命令來查看寫入是否正確沒有問題 


vim /var/lib/tftpboot/pxelinux.cfg/default

label autoinstall ##選項標籤

  menu label ^Autoinstall RHEL7.0 ##標題

  kernel vmlinuz ##啓動的內核文件 

這是將7.0鏡像的isolinux中的vmlinuz文件複製過來

  append initrd=initrd.img repo=http://172.25.254.100/rhel7.0 ks=http://172.25.254.182/ks.cfg

         ##初始化鏡像 ##安裝資源 ##自動安裝腳本

然後在配置文件中 鏡像源的後面加上這個ks.cfg腳本的位置 使得系統安裝過程中可以去讀取這個腳本


kickstart裝:  

還要做好dhcpd,注意版本,server用7.0的鏡像裝

 然後我們仍然在desktop中進行測試 看到ks.cfg腳本被讀取 系統開始安裝 則等待安裝成功即可 大功告成啦!!!~

 


                                                                                                                                                                                                                                 over~