歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> linux 特別篇 PXE

linux 特別篇 PXE

日期:2017/3/3 11:42:35   编辑:Linux技術
一.配置YUM源
掛載光盤 復制光盤內容到FTP的服務器根目錄下
安裝createrepo 軟件包
createrepo -v ./ 生成YUM源依賴關系
二.自動安裝配置
准備安裝源、安裝TFTP服務、linux內核和初始化鏡像文件、引導程序和啟動菜單、DHCP服務、應答文件、安裝後腳本編寫
1、准備機器
配置IP地址,將網卡的連接模式修改為vmnet模式
[root@kickstart ~]# ifconfig eth0 | grep Bcast
inet addr:172.16.254.200 Bcast:172.16.255.255 Mask:255.255.0.0
2、安裝配置dhcp
[root@kickstart ~]# yum install dhcp -y
[root@kickstart ~]# vim /etc/dhcp/dhcpd.conf
subnet 172.16.0.0 netmask 255.255.0.0 {
range 172.16.254.100 172.16.254.150;
next-server 172.16.254.200; //指定tftp服務器的IP地址
filename "pxelinux.0"; //指定需要加載的引導文件的名字,即bootloader文件的名字
}
[root@kickstart ~]# /etc/init.d/dhcpd start
3、安裝配置tftp、拷貝客戶端需要的文件
[root@kickstart ~]# yum install tftp-server -y //該服務是由xinetd進程管理的
[root@kickstart ~]# vim /etc/xinetd.d/tftp //未修改
----------------------------------------------------
server_args = -s /var/lib/tftpboot //tftp服務的主目錄,類似於ftp服務器的/var/ftp
disable = yes //是否啟動該服務,默認是不啟動
----------------------------------------------------
[root@kickstart ~]# chkconfig tftp on //將服務設置為啟動
[root@kickstart ~]# /etc/init.d/xinetd start //啟動總管進程
[root@kickstart ~]# chkconfig xinetd on
pxelinux.0文件在哪? //該文件在紅帽6裡面默認沒有安裝
[root@kickstart ~]# yum provides */pxelinux.0
-------------------------------------
syslinux-4.02-8.el6.x86_64 : Simple kernel loader
...: which boots from a FAT filesystem
Repo : Server
Matched from:
Filename : /usr/share/syslinux/pxelinux.0
-------------------------------------
[root@kickstart ~]# yum install syslinux -y
[root@kickstart ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
//將引導文件拷貝到tftp的共享目錄下
[root@kickstart ~]# cd /mnt/cdrom/isolinux/
[root@kickstart isolinux]# mkdir /var/lib/tftpboot/pxelinux.cfg
default文件裡面定義了安裝哪個系統等
[root@kickstart isolinux]# cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
拷貝內核、驅動以及菜單文件到tftp的共享目錄下
[root@kickstart isolinux]# cp vmlinuz initrd.img vesamenu.c32 /var/lib/tftpboot/
[root@kickstart ~]# yum install tree -y
[root@kickstart ~]# tree /var/lib/tftpboot/
/var/lib/tftpboot/
├── initrd.img
├── pxelinux.0
├── pxelinux.cfg
│?? └── default
├── vesamenu.c32
└── vmlinuz
4、共享安裝源 ftp
[root@kickstart ~]# yum install vsftpd -y
[root@kickstart ~]# mkdir /var/ftp/iso
[root@kickstart ~]# mount /dev/sr0 /var/ftp/iso/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@kickstart ~]# /etc/init.d/vsftpd start
Starting vsftpd for vsftpd: [ OK ]
[root@kickstart ~]# chkconfig vsftpd on
[root@kickstart ~]# firefoxftp://172.16.254.200/iso & //訪問測試
5、創建ks.cfg文件
[root@kickstart ~]# yum install system-config-kickstart -y
[root@kickstart ~]# system-config-kickstart
6. cat <<EOF > /etc/yum.repos.d/local.repo
[base]
name=base
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
EOF
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
echo "mount /dev/sr0 /mnt/cdrom" >> /etc/rc.local
7.修改default文件
[root@kickstart ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
在最後添加如下行:
-------------------------------------------------
label rhel6464
menu label ^ks rhel6464
kernel vmlinuz
append ks=ftp://172.16.254.200/pub/ks.cfg initrd=initrd.img
-------------------------------------------------
8.客戶端驗證
創建一個新的虛擬機,然後開機,選擇自己定義的那個標簽,然後就會自動安裝系統。
----------------------------------------------------------------------------------------------
安裝之後執行的操作
服務器端將yum的配置文件共享
[root@kickstart ~]# cp /etc/yum.repos.d/local.repo /var/ftp/pub/
修改ks.cfg文件(system-config-kickstart)
[root@kickstart ~]# vim /var/ftp/pub/ks.cfg
%post
wgetftp://172.16.254.200/pub/local.repo -O /etc/yum.repos.d/local.repo
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
echo "mount /dev/sr0 /mnt/cdrom" >> /etc/rc.local
%end
wget命令:linux中下載網絡上的文件的命令,可以從http或者ftp等服務器下載文件
-O:指定輸出文件的
---------------------------------------------------------------------------------------------
網絡yum源
使用ftp或者是http共享
[root@kickstart ~]# vim /var/ftp/pub/local.repo
[root@kickstart ~]# cat /var/ftp/pub/local.repo
[Server]
name=Server
baseurl=ftp://172.16.254.200/iso/Server
enabled=1
gpgcheck=0
[HighAvailability]
name=HighAvailability
baseurl=ftp://172.16.254.200/iso/HighAvailability
enabled=1
gpgcheck=0
[LoadBalancer]
name=LoadBalancer
baseurl=ftp://172.16.254.200/iso/LoadBalancer
enabled=1
gpgcheck=0
[ResilientStorage]
name=ResilientStorage
baseurl=ftp://172.16.254.200/iso/ResilientStorage
enabled=1
gpgcheck=0
[ScalableFileSystem]
name=ScalableFileSystem
baseurl=ftp://172.16.254.200/iso/ScalableFileSystem
enabled=1
gpgcheck=0
===================================
:%s@file:///mnt/cdrom@ftp://172.16.254.200/iso@ //執行替換動作
===================================
[root@kickstart ~]# vim /var/ftp/pub/ks.cfg
%post
wgetftp://172.16.254.200/pub/local.repo -O /etc/yum.repos.d/local.repo
%end
----------------------------------------------------------------------------------------------
dhcp和dns聯動:ddns 實現既給客戶端分配IP,又能分配主機名
[root@kickstart ~]# vim /etc/dhcp/dhcpd.conf
添加如下兩行內容:在subnet上面添加
-----------------------------------
ddns-update-style interim; //interim表示dhcp和dns互動更新
option domain-name-servers 172.16.254.200; //dns服務器的IP
subnet 172.16.0.0 netmask 255.255.0.0 {
range 172.16.254.100 172.16.254.150;
next-server 172.16.254.200;
filename "pxelinux.0";
}
-----------------------------------
[root@kickstart ~]# /etc/init.d/dhcpd restart
[root@kickstart ~]# yum install bind -y
[root@kickstart ~]# vim /etc/named.conf
options {
directory "/var/named";
};
zone "up.com" {
type master;
file "up.com.zone";
};
zone "16.172.in-addr.arpa" {
type master;
file "172.16.rev";
};
[root@kickstart ~]# cd /var/named/
[root@kickstart named]# cp -p named.localhost up.com.zone
[root@kickstart named]# vim up.com.zone
-------------------------------------------------------------
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.up.com.
dns A 172.16.254.200
$GENERATE 100-150 cli$ A 172.16.254.$
[舉例:cli10.up.com 192.168.1.10]
-------------------------------------------------------------
[root@kickstart named]# cp -p named.loopback 172.16.rev
[root@kickstart named]# vim 172.16.rev
-----------------------------------------------------
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.up.com.
dns A 172.16.254.200
$GENERATE 100-150 $ PTR cli$.up.com.
-----------------------------------------------------
[root@kickstart named]# /etc/init.d/named restart
Copyright © Linux教程網 All Rights Reserved