首页 > 代码库 > pxe 与dhcp
pxe 与dhcp
安装过程:
POST--> Bootloader (kernel+ramdisk) --> anaconda
BootLoader界面:
GUI界面
text界面
boot:
anaconda接口:
text接口
GUI接口
安装过程分为两个阶段:
安装前的配置阶段: (既可交互式进行,亦可直接读取配置文件自动完成)
键盘类型
安装过程中的语言
支持使用语言
时区
选择要使用磁盘设备
分区、格式化配置
选择要安装的包
管理员密码
安装阶段:
在目标磁盘创建分区、执行分区格式化
将选定的程序包安装至目标磁盘
安装bootloader
第一次启动配置:
iptables
selinux
corekdump
kickstart文件:文本文件
建议单独分区:
/
/home
/usr
/var
swap
不能单独分区:
/proc,/sys, /etc, /bin, /sbin, /lib, /media, /mnt, /dev
/boot:
单独分区与否,取决于rootfs所在设备的类型当root处于lvm时、
Boot要单独分区
boot:
启动安装过程的引导参数
CentOS6:
text:文本安装界面
repo=服务器的路径
http://server/path/to/repo/
ftp://username:password@server/path/to/repo
网络配置:
ip=ip
netmask=mask
gateway=网关
dns=
ifname=:指定此地址配置到地的网络接口
指定使用的kickstart文件及其位置
ks=cdrom:/path/to/ksfile
ks=http://server/path/to/ksfile
ks=ftp://username:password@server/path/to/ksfile
例如:http://172.16.0.1/centos6.x86_64.cfg
如果额外加载驱动程序:
dd
CentOS7:
指定安装源:
inst.repo=
指定额外需要加载驱动:
inst.dd=
指定kickstart文件及其位置:
inst.ks=
指定使用TUI界面:
inst.text
instNaNdline:必须与kickstart文件一同使用
网络功能选项:
ip=method
可用method: dhcp, dhcp6, auto6
ip=interface:method
ip=IP::GATEWAY:NETMASK:HOSTNAME:INTERFACE:none
nameserver=kickstart文件:
命令段
软件包段
%packages安装包
pack_name安装包的名字
@group安装包组
-pack_name:不安装的包,但如果被依赖,也会被安装
脚本段
%pre
安装前脚本
%post
安装后脚本
%end 结束
图形配置接口:
先配置好自己的yum元 下载kickstat
#yum install system-config-kickstart
配置命令:开始配置
#system-config-kickstart
配置完成后的语法检查命令:
#ksvalidator /path/to/ks_file 要检查的的文件
文件路径、path/to/file
基于isolinux目录创建引导盘:
#mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V"CentOS 6.5 x86_64 boot" -b isolinux/isolinux.bin -cisolinux/boot.cat -o /root/boot.iso myiso/
- V 卷标
-c
-b 要把那个文件作为iso映像
-o 保存位置
回顾:Linux, C6,C7
isolinux,anaconda, kickstart
system-config-kickstart,ksvalidator
批量部署:
物理机:PXE
负载均衡
虚拟机:映像文件模板
分布式文件系统
PXE + kickstart文件
DHCP,WEB,tftp
DHCP:
DHCP:Dynamic Host Configuration Protocol
ip/netmask
gateway
nameserver
bootp
dhcp是基于C/S架构:Server, Client
dhclient/dhcpd
Client:DHCP DISCOVER 请求dhcp一个ip
Server:DHCP OFFER 回复一个给clinent一个ip
Client:DHCP REQUEST 请求使用ip
Server:DHCP ACK 允许使用ip
Dhcp是以广播的形式来获取iP地址的:
有租约的形式:使用的期限
租约:
当租约到自己使用ip的时间的一半时 会重新向server发送次ip的重新使用
例如:DHCP REQUEST
DHCP ACK
当使用的ip时间是两个小时时:发送请求的时间
1hour--> 2hours
1hour--> 1.5hours --> 1.75hours --> 1.875hours
DHCPDISCOVER
DHCPRelay: 中继
安装:
#yum install dhcp
Centos6
服务脚本:/etc/rc.d/init.d/
监听端口
dhcpd, 67/udp
dhclient, 68/udp
/var/lib/dhcpd/dhcpd.leases
servicedhcpd configtest
配置文件语法测试
保留地址:专用于某特定客户端的地址,不应该使用地址池中的地址;
优先于地址池中的地址;
CentOS 7: 服务控制
#systemctl is-enabled DAEMON.service
#systemctl enable DAEMON.service
#systemctl disable DAEMON.service
#systemctl {start|stop|restart|status} DAEMON.service
总结:Vim /etc/dhcp/dhcp.conf
dhcpd.conf
optiondomain-name 主机名
optiondomain-name-servers ip 和网关
option routers 网关
subnetNETWORK netmask MASK {
rangeSTART_IP END_IP;
hostHOSTID {
hardwareethernet 00:11:22:33:44:55;
fixed-addressIP;
}
}
首先我们将根据此图说明PXE自动安装的过程:
主机1开机以网卡方式启动,发现自己没有IP地址, 那么网卡rom中的dhcp客户端会发起discovery的广播请求,dhcp服务器发现请求后会给网卡分配一个ip地址告诉客户端TFTP服务器的地址及pxelinux.0所在的路径(相对路径)。于是客户端启动网络卡rom中的tftp客户端到TFTP服务器下载pxelinux.0及其配置文件pxelinux.cfg/default 和相关文件【此配置文件会告诉pxelinux.0如何及以何种方式引导界面】然后在内存中展开运行。显示如下图引导界面:
然后开始加载kernel(vmlinuz)和ramdisk(initrd.img),其中initrd.img在default中添加附加选项例如:ks配置文件的位置是否使用dhcp获取地址等。在内存展开后会运行会运行/init 。init会调用/bin/loader根据附加选项中提供的ks地址去下载ks配置文件 根据ks配置文件提供的信息去下载服务器主机提供的安装树上image/install.image 这个文件中包含anaconda应用程序 然后启动anaconda 。anaconda根据ks配置文件至此安装过程启动
上述的dhcp的安装配置
然后启用dhcp
service dhcpd start
在启动一下dhcp
server dhcpd restart
然后安装的包
yum install -y dhpd
本文出自 “正则表达式和fgrep” 博客,请务必保留此出处http://9025736.blog.51cto.com/9015736/1533418