自动化系统安装之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运维部落立场,如若转载,请注明出处:http://www.178linux.com/91363

(0)
liuyongweiliuyongwei
上一篇 2018-01-29
下一篇 2018-01-29

相关推荐

  • 【听说要写一篇文章,我觉得标题比较长的人一定特别帅。】

    我叫小问。 计划是学好马哥所教授的知识。 目标是找到一份好工作!

    Linux干货 2016-10-23
  • vim编辑器练习&任务计划&脚本编程练习

    请详细总结vim编辑器的使用并完成以下练习题 vim总结: vi:Visual Interface,是一种文本编辑器,所谓文本数据是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。 文本编辑器的种类:  行编辑模式:所谓行编辑器是指一行一行来编辑处理的工具,如sed。  全屏编辑器:编辑空间占据整个屏幕,如nano…

    Linux干货 2016-10-31
  • 马哥教育网络班21期-第三周课程练习

    第三周课程练习 1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who | cut -f1 -d' ' | uniq  root 2、取出最后登录到当前系统的用…

    Linux干货 2016-07-12
  • FHS文件系统各目录功能

    前言 FHS将文件根据不同的用途和特性分成了可共享的(shareable)和不可共享的(unshareable),可变的(variable)和静态的(static)。不同的文件位于不同的目录里面,将目录分开了将有利于对文件的管理。 文件系统 可共享的 文件可以被存储于某一个主机上,然后供其他主机使用。如果想访问其他主机上可共享的文件,可以将其他主机目录挂载到…

    Linux干货 2016-10-17
  • 文件处理工具及正则表达式练习

    本节练习均在centos7系统下实现,部分练习只截取部分截图,另外排版的事情我已经放弃了! 1.找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行 注:^ 行首, . 匹配任意单个字符,* 匹配前面的字符任意次 突然发现前面解法错误,没有排除空格后加小括号的情况,下面是正确做法 2.统计last命令中…

    Linux干货 2017-07-29
  • kickstart文件及引导镜像的制作流程

    kickstart文件及引导镜像的制作流程 kickstart文件制作流程 安装制作kickstart文件的图形界面工具 [root@slave1 ~]# yum install system-config-kickstart 开启工具 [root@slave1 ~]# system-config-kickstart 在打开的图形界面中通过file菜单选项选…

    Linux干货 2017-09-04