运维工具pxe环境的实现(一)

2023年 7月 15日 93.0k 0

PXE and Cobbler 

1,pxe

PEX全称:预引导执行环境(Preboot  execute environment)

PXE依赖ftp,http,tftp,dhcp

 

搭建dhcp:dynamin host configuration protocol

www.Isc.org

[root@Pxe ~]# yum -y install dhcp

[root@Pex ~]# ifconfig eth2 10.5.5.1/24 up

[root@Pex ~]# cp/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

cp: overwrite `/etc/dhcp/dhcpd.conf'? y

[root@Pex ~]#vim /etc/dhcp/dhcpd.conf

option domain-name "example.org";    搜索域域名

option domain-name-servers ns1.example.org,ns2.example.org;  dns服务器

 

default-lease-time 600;   默认租约期限

max-lease-time 7200;        最大租约期限

log-facility local7;                记录日志使用的那个facility

subnet 10.152.187.0 netmask 255.255.255.0 {}             定义一个为其分配地址的网络

 

subnet 10.5.5.0  netmask 255.255.255.0 {

 range 10.5.5.20  10.5.5.50; 地址池

# option domain-name-servers ns1.internal.example.org;

# option domain-name "internal.example.org";

 option routers 10.5.5.1;  网关

 

 

[root@Pex ~]# service dhcpd restart

Shutting down dhcpd:                                       [  OK  ]

Starting dhcpd:

[root@Pex ~]# ss -unl |grep :67

UNCONN    0      0                         *:67                       *:*    

[root@Pex ~]#

确保iptables没有阻止

[root@Pex ~]# iptables -L -n

 

在第二台机器进行获取,正常获取到10.5.5.x

在PXE查看IP地址租约日志

[root@Pex ~]# tail/var/lib/dhcpd/dhcpd.leases

server-duid"\000\001\000\001\035\034J\206\000\014)`b#";

 

lease 10.5.5.20 {

 starts 2 2015/06/23 16:53:51;

 ends 2 2015/06/23 17:53:51;

 cltt 2 2015/06/23 16:53:51;

 binding state active;

 next binding state free;

 hardware ethernet 00:0c:29:b5:3c:7d;

}

[root@Pex ~]#

 

DHCP在分配地址时,也可以绑定MAC地址,假设我们绑定MAC地址00:0C:29:B5:3C:7D,ip为10.5.5.30

注意:这里的地址肯定不能使用地址池的地址,使用地址池之外的预留地址

host ftpserver {

       hardware ethernet 00:0C:29:B5:3C:7D;

       fixed-address 10.0.10.60;

}

 

[root@Pex ~]# vim /etc/dhcp/dhcpd.conf

在option routers 10.0.10.1;添加以下两项

 next-server 10.0.10.1;  告诉dhcp,tftp是谁

 filename "pxelinux.0";  这个文件由syslinux提供,这个文件的存放位置在tftp目录下

 

在PXE机器上安装tftp服务器

[root@Pex ~]#yum  -y install tftp-server tftp

复制文件测试

[root@Pex ~]# cp /etc/fstab/var/lib/tftpboot/

[root@Pex ~]# tftp 10.5.5.1

[root@Pex dhcp]# cd /var/lib/ tftpboot/

[root@Pex tftpboot]# ls

fstab

这种方式基于UDP,文件传输有可能发生错误!

 

安装syslinux复制pxelinux.0文件

[root@Pex tftpboot]# yum -y installsyslinux

将pxelinux.0复制到tftpboot目录下

[root@Pex tftpboot]# cp/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

复制完成后,仅仅只是把PXE环境配置好,还需要挂载光盘把基于PXE启动的文件复制过来

 

如果互联网有安装树的源,也可以使用。这里演示使用挂载本地光盘

[root@Pex ~]# mount -r /dev/cdrom /mnt/

[root@Pex ~]# cd /mnt/

[root@Pex mnt]# cd isolinux/

[root@Pex isolinux]# cd ..

[root@Pex mnt]# cd images/pxeboot/

而后复制文件vmlinuz  initrd.img到/var/lib/tftpboot/

复制vesamenu.c32splash.jpg boot.msg 到/var/lib/tftpboot/

 

[root@Pex pxeboot]# cp /mnt/images/pxeboot/vmlinuz initrd.img      /var/lib/tftpboot/

[root@Pex pxeboot]# cd ../../isolinux/

[root@Pex isolinux]# cp vesamenu.c32splash.jpg boot.msg  /var/lib/tftpboot/

创建pxelinux.cfg目录

[root@Pex isolinux]# mkdir/var/lib/tftpboot/pxelinux.cfg

复制光盘中isolinux.cfg到/var/lib/tftpboot/pexlinux.cfg中命名为default

[root@Pex isolinux]# cp isolinux.cfg/var/lib/tftpboot/pxelinux.cfg/default

我们编辑default,在menu title Welcome to CentOS 6.6添加LinuxEA字段标识

[root@Pex pxelinux.cfg]# vim default

menu title Welcome to CentOS 6.6 LinuxEA!

运维工具pxe环境的实现(一)-1

我们开始测试。从网卡启动!测试下能否读取到pxe的tftp

 

而后在/var/www/html/下创建centos6.6目录,将本地光盘绑定至centos6.6

[root@Pex isolinux]#Mkdir /var/www/html/centos6.6

[root@Pex isolinux]#Mount –bind /mnt/var/www/html/centos6.6

在启动httpd

[root@Pex isolinux]#Service httpd start

通过浏览器http://172.16.249.108/centos6.6/访问

 运维工具pxe环境的实现(一)-2

而后我们就开始复制Kickstart文件了,这个文件在/root/目录下,叫anaconda-ks.cfg、我们把他复制到/var/www/html/下,改名为ks.cfg[root@Pex isolinux]#  cp /root/anaconda-ks.cfg  /var/www/html/ks.cfg

回头编辑/var/lib/tftpboot/pxelinux.cfg/default文件,添加ks.cfg文件

[root@localhost pxelinux.cfg]# vim/var/lib/tftpboot/pxelinux.cfg/default

label linux

 menu label ^Install or upgrade an existing system

 menu default

 kernel vmlinuz

 append initrd=initrd.img  ks=http://10.5.5.1/ks.cfg

运维工具pxe环境的实现(一)-3

运维工具pxe环境的实现(一)-4

 

相关文章

对接alertmanager创建钉钉卡片(1)
手把手教你搭建OpenFalcon监控系统
无需任何魔法即可使用 Ansible 的神奇变量“hostvars”
openobseve HA本地单集群模式
基于k8s上loggie/vector/openobserve日志收集
openobseve单节点和查询语法

发布评论