自动化系统安装之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 19:21
下一篇 2018-01-29 21:08

相关推荐

  • MAN手册各章节功能及快捷键

    前言: man是manual的简称,中文说法可以是手册。而man手册分为不同的各个章节,每个章节保存这不通类型的手册。 各个章节功能:    Section 名称      说明 1 用户命令 可由任何人启动的 2 系统调用 即由内核提供的函数 3 例程   …

    Linux干货 2016-10-17
  • tar,cpio,rpm,yum的使用详解(适合初学者)

    基于linux下的tar包管理和yum源配置 友情提示:对于这些实际操作的,还是需要进行手工的尝试,由于这几个对于包管理的是比较常用和实用的, 所以,一定要熟练使用。 1.tar tar是对于系统中文件,目录等进行打包,解包的工具。tar也可以对文件进行打包存放到别的目录下, 所以在很早的时候,一些老的工程师经常使用tar对文件进行备份。很大程度上,所谓的t…

    Linux干货 2016-08-21
  • IT基础设施工具—Puppet

    一、Puppet简介 Puppet是一款使用GPLV2X协议授权的开源管理配置工具,基于ruby语言开发的自动化系统配置工具,可以C/S模式或独立运行,支持对所有UNIX及类UNIX系统的配置管理,既可以通过客户端—服务器的方式运行,也可以独立运行。Puppet适用于服务器管的整个过程 ,比如初始安装、配置更新以及系统下线。puppet可以为系统管理员提供方…

    Linux干货 2017-11-26
  • linux grep manual

    名称    grep – 打印匹配的行语法:     grep [option] pattern [file…]     grep [option] [-e pattern]…

    Linux干货 2015-08-31
  • linux树状结构

    linux 目录结构   /:根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中 /bin:/usr/bin:可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。 /boot:放置linux系统启动时用到的一些文件。/boot/vmlinuz为linux的内核文…

    Linux干货 2016-08-05
  • MySQL/MariaDB数据库基于SSL实现主从复制

    前言 备份数据库是生产环境中的首要任务,重中之重,有时候不得不通过网络进行数据库的复制,由于MySQL/MariaDB的主从复制是明文传送的,如果在生产环境中跨网络传送,数据的安全性就无法完全保证,为了解决这一问题,我们需要一种安全的方式进行传送,即基于SSL加密进行数据传输。 部署配置 实验拓扑 实验环境 系统环境:CentOS6.6 数据库版本:mari…

    Linux干货 2015-06-21