首页 > 代码库 > 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文件

 

       DHCPWEBtftp

 

 

       DHCP

 

              DHCPDynamic 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如何及以何种方式引导界面】然后在内存中展开运行。显示如下图引导界面:

 wKioL1PaKlmAKFgtAALQ0EpTPnI396.jpg

然后开始加载kernel(vmlinuz)ramdisk(initrd.img),其中initrd.imgdefault中添加附加选项例如:ks配置文件的位置是否使用dhcp获取地址等。在内存展开后会运行会运行/init init会调用/bin/loader根据附加选项中提供的ks地址去下载ks配置文件 根据ks配置文件提供的信息去下载服务器主机提供的安装树上image/install.image 这个文件中包含anaconda应用程序 然后启动anaconda anaconda根据ks配置文件至此安装过程启动

上述的dhcp的安装配置

wKiom1PaKevApFYvAAGgH2pqVvI417.jpg

然后启用dhcp 

 service dhcpd start

wKioL1PaK3mRgxwSAAOeuSZviw0563.jpg

在启动一下dhcp

  server dhcpd restart

然后安装的包

yum install -y dhpd

本文出自 “正则表达式和fgrep” 博客,请务必保留此出处http://9025736.blog.51cto.com/9015736/1533418