自动化系统安装之DHCP服务实现

DHCP服务实现
dhcp的工作过程是基于UDP协议的,其中用到了UDP的67(服务器),68(客户端)端口
使用场景
自动化安装系统
解决IPV4资源不足的问题
同网段多dhcp服务
dhcp服务必须基于本地
先到先得
跨网段
RFC 1542
dhcpclient客户端向dhcpsercer服务器请求续约时,中间相隔多网段时,如果路由器是
RFC1542 Compliant Routers 兼容的路由器时,要求路由器符合1542标准的路由器,是
允许跨路由广播通过的,只有特定的discover才能通过
dhcrelay:中继
设置一个dhcp的中继代理,中继代理跟客户端是在一个网段,客户端发广播申请地址的
时候,这个网络中是没有dhcp服务器的,不做任何响应,中继代理就收到discover,然
后再转发(单波)到dhcpserver服务器,单波可以穿过路由器,服务器通过代理把地址转
发到客户端(路由器的接口配置也可以成为中继代理)

服务流程
0 selinux 关 iptables 禁
1 安装包
2 配置文件
3 准备数据
4 启动服务
5 测试

(7)
实验环境:一定要修改网卡仅主机模式,关闭主机本地dhcp服务桥接网卡断掉
做服务器的主机必须是静态IP
1 systemctl start dhcp
启动dhcp服务器时由于没有配置/etc/dhcp/dhcpd.conf文件是不能启动的
2 cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
覆盖此文件,生成配置文件在此基础上修改
option domain-name “centos.com”;(分号)
客户端申请地址域名也可以自动获取,获取这个域名/地址,访问某一个主机的时候没有
域后缀,会自动补后缀(不是很重要设置)
option domain-name-servers 114.114.114.114,8.8.8.8;(分号)
DNS设置(非实验环境需连接外部网络)
option routers 192.168.27.1;
网管
default-lease-time 86400;
默认的最大租期(秒为单位)服务器压力大,时间可以设置长
max-lease-time 864000;
最大租期
subnet 192.168.27.0 netmask 255.255.255.0 { (这里必须跟自己网段匹配,否则服务不能启动)
range(范围)192.168.27.50 192.168.27.200
}
IP地址的分配,把哪个网段的IP地址分配出,可制定范围内
subnet (可为多个网段分配IP)
subnet 192.168.27.0 netmask 255.255.255.0 {
range 192.168.27.50 192.168.27.200;
option routers 192.168.27.254;
option domain-name-servers 223.5.5.5;
filename “pxelinux.0”; *
next-server 192.168.27.0; *

。。。
以下字段都不需要,注释掉
:.,$s/^/#/
:set nohlsearch 取消高亮

3 打开一台客户机自动获取地址
4 watch -n1 tail /var/lib/dhcpd/dhcpd.leases
查看dhcp服务器给那些客户端分配了地址
5 cat /var/lib/dhclient/dhclient-eth1.leases
查看客户端的dhcp信息
killall dhclient;dhclient -d 呼到前台杀掉进程

自动化安装系统
DHCP配置文件
其他配置选项
filename:指明引导文件名称(指定一个文件名,将来用来启动自动安装系统的机器,从网
络中获取一个启动程序,网络中启动程序的名字就是pxelinux.0)
next-server:提供引导文件的服务器IP地址
示列:
filename “pxelinux.0” (这个名字就是放在tftp服务的某个固定目录下,所以只需要告诉它tftp服务地址
就会自动到固定目录下寻找这个文件下载下来,后续就可以实现自动化安装)
next-server 192.168.100.100(这个是网络中一个服务器的地址,同时它还要求提供一个特殊服务tftp服务,
这个是一个简化版的ftp服务)
检查语法
server dhcp configtest

dhcp服务器要先指明tftp服务器的地址
1 /etc/dhcp/dhcpd.conf
subnet中写入
filename”pxelinux.0″;
next-server 192.168.27.7;
2 为客户端指定某个地址,需要获取客户机mak地址,跟要分配的地址绑定
host testclient(名字可随意填写){
hardware ethernet 0:0:c0:5d:bd:95;
fixed-address 192.168.27.100;
option routers 192.168.27.200;
option domain-name-servers 223.6.6.6;
}

3 (6)/var/lib/dhclient/ \rm *
4 killall dhclient
5 dhclient -d 呼到前台执行获取dhcp服务器地址

————————————————————————————
安装dhcp
1 yum install dhcp(修改仅主机模式)
将虚拟机的虚拟网络编辑器的仅主机模式的(使用本地DHCP服务)对勾去掉
/var/lib/dhcpd/dhcpd.leases dhcp分配出去的地址
2 cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
用dhcp服务器配置文件模板覆盖/etc/dhcp/dhcpd.conf配置文件进行修改

1 vim /etc/dhcp/dhcpd.conf
{cat /etc/resolv.conf; ifcfg-eth0 DOMAIN= }
1 option domain-name “centos.com”;
2 option domain-name-servers 114.114.114.114,8.8.8.8;
dns配置
option routers 192.168.27.1;
网关配置
3 default-lease-time 86400;
max-lease-time 86400;
最大租期
4 subnet 192.168.27.0 netmask 255.255.255.0 {
range 192.168.27.50 192.168.27.200;
option routers 192.168.27.254;
option domain-name-servers 223.5.5.5;
*filename “pxelinux.0”
*next-server 192.168.27.3; *配置自动安装要获取的服务
}
设置IP分配的范围
5 .,$s/^/#/ 注释一下所有行
host testclient {
hardware ethernet 00:0c:29:54:2f:d3;
fixed-address 192.168.27.100;
option routers 192.168.27.200;
option domain-name-servers 223.6.6.6;
}

2 寻找一台机器作为客户端即可
cat /var/lib/dhclient/dhclient-eth0.leases
在客户机查询从那台server获取的地址
killall dhclient
dhclient -d
……………………………………………………………………………
PXE
PXE:(端口69)
preboot Excution Environment 预启动执行环境
Intel公司研发
基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统
PXE可以引导和安装Windows Linux等多种操作系统
PXE功能是集成在网卡上,早期大部分都没有此功能

PXE 需要搭三个服务:DHCP;TFTP;httpd
rpm -q …可查看已安装多个服务
三个服务都要设置为开机启用
1 需要安装应答文件/var/www/html/ mkdir skdir

centos7:服务器
TFTP-server(网卡中内置可tftp客户端)
1 yum install tftp-server
2 tftp IP
客户端连接服务器时只认为自己连接的是服务器的/var/lib/tftpboot目录(工作目录)
/var/lib/tftpboot/ 目录下存放tftp的共享文件

centos6:客户端
yum install tftp
get file 下载
put file 上传

1 cd /var/www/html/mkdir/ksdir/
2 cp /root/anaconda-ks.cfg ks7-pxe.cfg 图形菜单
1 vim /etc/fstab
/dev/sr0 /var/www/html/centos/7 iso9660 defaults 0 0
2 vim /var/www/html/ksdir/ks7-pxe.cfg
# Use CDROM installation media
url –url=http://192.168.27.3/centos/7
# Use graphical install
firewall –disabled
selinux –disabled
text
reboot
# Partition clearing information
zerombr
clearpart –all –initlabel 清空分区

eula –agreed 同意许可
%packages
最后:脚本
%post
rm -f /etc/yum.repo.d/*
mkdir /root/.ssh
cat > /root/.ssh/authorized_keys <<EOF
ssh-rsa
EOF
chmod 600 /root/.ssh/authorized_keys
cat > /etc/yum.repo.d/base.repo <<EOF
[base]
name=base
baseurl=http://172.18.104.47/centos/7
gpgcheck=0
EOF
useradd liu
echo centos | passwd –stdin liu &> /dev/null
systemctl set-default multi-user.target
systemctl disable initial-setup-graphical.service 禁用初始化
%end
system-config-kickstart 也可使用图形化工具配置应答文件
chmod 644 * 应答文件权限
3 vim /etc/dhcp/dhcpd.conf
host testclient {
hardware ethernet 00:0c:29:54:2f:d3;
fixed-address 192.168.27.100;
option routers 192.168.27.200;
option domain-name-servers 223.6.6.6;
这一段全部去掉
准备内核跟启动菜单
4 yum install syslinux
cd /var/lib/tftpboot/ 共享目录
cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/
cp /misc/cd/isolinux/{initrd.img,vmlinuz} .
mkdir pxelinux.cfg/ 创建一个目录
cp /misc/cd/isolinux/isolinux.cfg pxelinux.cfg/default

vim pxelinux.cfg/default(菜单)
default menu.c32
timeout 600

menu title PXE INSTALL Centos

label desktop
menu label ^Install Desktop CentOS 7
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.27.3/ksdir/ks7-pxe.cfg

label mini
menu label Install ^Mini CentOS 7
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.27.3/ksdir/ks7-mini.cfg

label local
menu default
menu label Boot from ^local drive
localboot 0xffff
menu end
5 创建新虚拟机测试

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:/91363

发表评论

登录后才能评论

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班

友情链接:万达娱乐  万达直属QQ  万达开户  万达开户  测试  万达注册  万达娱乐主管  万达注册  万达直属  万达娱乐开户