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

相关推荐

  • Shell编程if语句

    Shell编程if语句 条件选择if语句(#if输入keywork) 选择执行: 注意:if语句可嵌套 单分支 if 判断条件(#如果为真执行下一条);then 条件为真的分支代码 fi(结尾) 双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi if 语句 多分支 if 判断条件1; then 条件为真的分支代码 e…

    2018-01-01
  • PXE自动部署CentOS6

    1、安装需要的软件    (1)dhcp     (2)http    (3)tftp-server    (4)system-config-kickstart    (5)syslinux [root@centos6 ~]# y…

    Linux干货 2016-06-26
  • N28-第二周博客作业

    常用通配符
    *:表示任意长度的任意字符;

    ?:表示任意的单个字符;

    []:表示在指定范围内的单个字符:[a-z];

    [^]:脱字符,是取反的意思,即在指定范围以外的任意字符,如 [^0-9]表示除数字以外的一切字符。

    [:digit:] 表示所有的数字,相当于0-9

    [:lower:] 表示所有的小写字母

    [:upper:] 表示所有的大写字母

    [:alpha:] 表示所有的字母,

    [:alnum:] 相当于[0-9a-z]

    [:space:] 相当于空白字符

    [:punct:] 表示所有的标点符号

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

    2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

    3、请使用命令行展开功能来完成以下练习:

    (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d

    (2)、创建/tmp/mylinux目录下的:
    mylinux/
    ├── bin
    ├── boot
    │?? └── grub
    ├── dev
    ├── etc
    │?? ├── rc.d
    │?? │?? └── init.d
    │?? └── sysconfig
    │?? └── network-scripts
    ├── lib
    │?? └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │?? └── local
    │?? ├── bin
    │?? └── sbin
    └── var
    ├── lock
    ├── log
    └── run

    4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

    5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?

    6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。

    7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

    8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

    9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

    10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

    11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

    12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

    Linux干货 2017-12-11
  • OPENSSL加密技术及私有CA的搭建

    加密方式有对称加密 非对称加密 单向加密 对称加密:     加密和加密都用同一个对称密钥,但是,这种加密方法存在一定问题,就是密钥传输时,容易被盗窃。还有密钥管理困难,对称加密的方法:DES、AES、Blowfish、Twofish、IDEA、RC6、CAST5。   非对称加密: 公钥…

    Linux干货 2015-08-17
  • 时间、screen、echo等——Linux基本命令(5)

    1.     时间 (1)查询时间: date          +%F  年月日          +%T  时分秒  &nbs…

    2017-07-13