一起学习网 一起学习网


PXE 自动化安装系统介绍

网络编程 PXE 自动化安装系统介绍 10-08

pxe

pxe实现全自动安装操作系统,其中用到的软件包括(dhcp首先给客户端分配IP地址提供的系统引导安装系统指向tftp-server启动并加载网络repo仓库由http服务和系统镜像制作)

dhcp–> 分配主机地址并提供引导文件–>tftp-server–>读取配置–>repo仓库完成系统安装

dncp:动态主机配置协议能够在网段内的主机分配IP、掩码、网关和dns,默认监听端口是UDP67.

分配模式

静态分配:租赁IP地址过期后可回收。(租赁的ip到期后dhcp进行单播确定是否续约)

动态分配:通过IP班定客户端MAC地址。

dhcp 功能

dhcpd:作为dhcp服务

dhcrelay:作为中继服务器

程序文件

/etc/sbin/dpcp dhcp主程序

/etc/dhcp/dhcpd.conf ipv4服务配置文件

/etc/dhcp/dhcpd6.conf ipv6服务配置文件

/etc/sbin/dhcrelay 中继服务主程序

/etc/rc.d/init.d/dhcrelay 中继服务配置文件

/etc/resolv.conf 记录信息

配置dhcp服务器:

配置环境:

主机设置临时固定IP地址段:192.168.200.1

确保网卡打开了广播功能

ip link set ens33 multicast on

# 安装配置dhcp

[root@localhost] yum -y install dhcp

# 拷贝配置模板到/etc/dhcp/内修改名为dhcpd.conf配置文件

[root@localhost] cp -f /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

option domain-name `magedu.com`;option domain-name-servers 192.168.20.1; //仅作提示option routers 192.168.20.1;default-lease-time 600; //默认租赁时间max-lease-time 7200;  //最长续租时间log-facility local7; 日志记录subnet 192.168.0.0 netmask 255.255.0.0 {  //定义子网,注意此处网段必须符合规定,不然守护进程无法启动        range 192.168.200.1 192.168.200.10;             //地址池        option routers 192.168.200.1;                   //给定的路由        option domain-name-server 192.168.200.1;        //dhcp服务器主机名字        option domain-name `dome`;                      // 服务器        default-lease-time 600;                         //子网默认租赁时间        max-lease-time 7200;                            //子网默认最长租赁时间                filename `pxelinux.0`;          //指定引导文件名,此文件需要装syslinux 生成        next-server 192.168.200.20;     //定义引导文件服务器IP   }host fantasia {                     //IP地址与客户端MAC绑定,实现静态分配地址,绑定服务端主机        hardware ethernet 00:0c:29:22:1e:ec;        fixed-address 192.168.200.20;       //固定的IP地址不能是已经使用中的。}

配置开启系统引导文件:

# 安装syslinux 引导文件提供服务[root@localhost ~]# yum -y install syslinux# 拷贝引导的模拟环境所需要的配置文件到tftpboot的默认引导目录[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/    # 这个即使刚刚dhcp指向的文件[root@localhost ~]# cp /var/www/html/centos/7/x86_64/images/pxeboot/vmlinuz /var/lib/tftpboot/[root@localhost ~]# cp /var/www/html/centos/7/x86_64/images/pxeboot/initrd.img /var/lib/tftpboot/# 拷贝菜单简单图形引导文件[root@localhost ~]# cp /usr/share/syslinux/chain.c32 /var/lib/tftpboot/[root@localhost ~]# cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/[root@localhost ~]# cp /usr/share/syslinux/memdisk /var/lib/tftpboot/[root@localhost ~]# cp /usr/share/syslinux/mboot.c32 /var/lib/tftpboot/创建图形引导文件[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default修改引导图形菜单default menu.c32        prompt 5        timeout 30        MENU TITLE CentOS 7 PXE Menu        LABEL linux        MENU LABEL Install CentOS 7 x86_64        KERNEL vmlinuz        APPEND initrd=initrd.img ip=192.168.100.5 netmask=255.255.255.0 inst.repo=http://192.168.100.5/centos/7/x86_64/

配置tftp

设置文件服务并开机启用,默认监听端口UPD:68

配置文件:

/var/lib/tftpboot/

软件:

tftp_server:服务端

tftp:客户端

服务启动:

CentOS 6:service inetd start

CentOS 7 : systemctl start tftp.socket

# 安装tftp 支持软件[root@localhost dhcp]# yum -y install tftp httpd tftp-server# 创建目录yum仓库目录[root@localhost dhcp]# mkdir -pv /var/www/html/centos/7/x86_64 # 挂载仓库光盘[root@localhost dhcp]# mount -r /dev/cdrom /var/www/html/centos/7/x86_64/创建kickstarts 配置文件目录,实现自动化安装。[root@localhost ~]# mkdir /var/www/html/kickstarts/[root@localhost ~]# cp anaconda-ks.cfg /var/www/html/kickstarts/centos7.cfg# 启动服务并设置开机启动[root@localhost dhcp]# systemctl start tftp-service httpd[root@localhost dhcp]# systemctl enable tftp-service httpd编辑kickstarts文件将usr指向设置为yum仓库的主机[root@localhost ~]# vim /var/www/html/kickstarts/centos7.cfg                 usr --usr=`http://192.168.200.20/centos/7/x86_64/`

开启一台新机器与pxe主机在同一网段,开机会自动分配地址,自动安装。

cobbler

和pxe相同提供实现全自动快速安装操作系统与pxe不同的是能够tftp-server、dhcp功能、yum仓库功能融合到了一起,而且还提供一个cobbler-web的图形管理界面,该程序在epel仓库。默认服务端口是UPD:69

配置文件:

/etc/cobbler/settings 主配置文件

/etc/cobbler/tftpd.template tftp模板

/etc/cobbler/dhcp.template dhcp模板

常用命令:

cobbler check:运行环境检查;

cobbler distro liste:列出以生成的系统

cobbler profile liste:列出已生成的系统配置

cobbler sync:同步

需要用到的程序:

httpd+tftp:配置源及yum仓库

cobbler 默认提供命令行

cobbler-web 提供图形界面需要Django程序

配置环境:

拥有两块网卡用来下载配置文件

ens33 192.168.200.30        \\内网固定ip

ens37 192.168.199.194        \\外网ip 用于连接网络下载程序和组件

关闭防火墙:或者放行也可设置规则放行TCP:80、DUP:67、68、69号端口
systemctl stop firewalld.service

关闭selinux
vim /etc/selinux/config
SELINUX=disabled  (或permissive)

[root@localhost ~]# setenforce 0

预先安装配置好epel-release仓库;
[root@localhost ~]# yum -y install epel-release

安装所需要用到的软件

[root@localhost ~]# yum -y install httpd dhcp tftp-server cobbler cobbler-server Django rsync

# 修改主配置文件:[root@localhost ~]# vim /etc/cobbler/settings\\修改为内网IPserver:192.168.200.30           \\引导主机地址,改为内网IPnext-server:192.168.200.30       \\启用cobbler 管理dhcpd服务manage_dhcpd: 1                   \\修改cobbler root默认密码,(被调用)default_password_crypted:"$1$abc$mJPQCTATLDV5aNzcHMYLr/"# \\启用 Cobbler的rsynmanage_rsync: 1

# \\生成密码方式:
# openssl passwd -1 -salt ‘abc’ ‘123456’
# $1$abc$mJPQCTATLDV5aNzcHMYLr/

修改tftp配置文件

[root@localhost cobbler]# vim /etc/xinetd.d/tftpdisable                 = no    \\将yes修改为no 启动服务[root@localhost cobbler]# systemctl start xinetd.service httpd.service cobblerd.service

下载cobbler的引导文件

[root@localhost cobbler]# cobbler get-loaders......*** TASK COMPLETE ***

修改DHCP模板

[root@localhost cobbler]# vim /etc/cobbler/dhcp.templatesubnet 192.168.200.0 netmask 255.255.255.0 {           \\修改网段     option routers             192.168.200.5;         \\修改路由地址     option domain-name-servers 192.168.200.1;         \\修改网段名称     option subnet-mask         255.255.255.0;         \\掩码地址     range dynamic-bootp        192.168.200.100 192.168.200.254;  \\可用IP地址段     default-lease-time         21600;     max-lease-time             43200;     next-server                $next_server;     class `pxeclients` {          match if substring (option vendor-class-identifier, 0, 9) = `PXEClient`;          if option pxe-system-type = 00:02 {                  filename `ia64/elilo.efi`;          } else if option pxe-system-type = 00:06 {                  filename `grub/grub-x86.efi`;          } else if option pxe-system-type = 00:07 {                  filename `grub/grub-x86_64.efi`;          } else if option pxe-system-type = 00:09 {                  filename `grub/grub-x86_64.efi`;          } else {                  filename `pxelinux.0`;          }     }}host fantasia {                                     \\地址绑定,非必要。        hardware ethernet 00:0c:29:22:1e:ec;        \\绑定的MAC地址        fixed-address 192.168.200.30;               \\绑定的IP地址}host client {                                       \\多条地址绑定只需要修改host NAME 即可        hardware ethernet 00:0c:29:b4:0c:93;        fixed-address 192.168.200.99;}

准备本地网络repo 安装源

首先准备一张 CentOS-6 光盘

\\只读的方式挂载[root@localhost cobbler]# mount -r /dev/cdrom /media/cdrom/[root@localhost cobbler]# cobbler import --name='CentOS-6' --path='/media/cdrom/'......*** TASK COMPLETE ***查看配置的主机和仓库[root@localhost cobbler]# cobbler distro list   列出配置系统   CentOS-6-x86_64[root@localhost cobbler]# cobbler profile list  列出配置文件   CentOS-6-x86_64重启服务[root@localhost cobbler]# systemctl restart httpd.servier cobblerd.service同步[root@localhost cobbler]# cobbler sync

指定KS配置文件路径

查看report 信息[root@localhost cobbler]# cobbler profile report    Name                           : CentOS-6-x86_64    TFTP Boot Files                : {}    Comment                        :     DHCP Tag                       : default    Distribution                   : CentOS-6-x86_64    Enable gPXE?                   : 0    Enable PXE Menu?               : 1    Fetchable Files                : {}    Kernel Options                 : {}    Kernel Options (Post Install)  : {}    Kickstart                      : /var/lib/cobbler/kickstarts/sample_end.ks    Kickstart Metadata             : {}    Management Classes             : []    Management Parameters          : <<inherit>>    Name Servers                   : []    Name Servers Search Path       : []    Owners                         : ['admin']    Parent Profile                 :     Internal proxy                 :     Red Hat Management Key         : <<inherit>>    Red Hat Management Server      : <<inherit>>    Repos                          : []    Server Override                : <<inherit>>    Template Files                 : {}    Virt Auto Boot                 : 1    Virt Bridge                    : xenbr0    Virt CPUs                      : 1    Virt Disk Driver Type          : raw    Virt File Size(GB)             : 5    Virt Path                      :     Virt RAM (MB)                  : 512    Virt Type                      : kvm
修改ks文件所在的目录[root@localhost cobbler]# cobbler edit --name=CetOS-6-x86_64 --kiskstart=/etc/cobbler/kickstart/CentOS-6.ks

编辑:一起学习网

标签:地址,配置文件,仓库,文件,主机