1.实现DHCP服务 :(实现此服务是自动化安装的前提)
续租
50% :租赁时间达到50%时来续租,刚向DHCP服务器发向新的DHCPREQUEST 请求。如果dhcp服务没有拒绝的理由,则回应DHCPACK信息。当DHCP客户端 收到该应答信息后,就重新开始新的租用周期
87.5%:如果之前DHCP Server没有回应续租请求,等到租约期的7/8时,主机 会再发送一次广播请求
同网段多DHCP服务
DHCP服务必须基于本地
先到先得的原则
跨网段
RFC 1542 Compliant Routers (此种路由只允许DHCP的广播通过;需要购买此标准的路由器)
dhcrelay: 中继代理服务(使用普通路由器启用代理服务)
DHCP服务器的实现 (本身需要设为为静态地址)6得到7的DHCP地址
前提检查环境:selinux设为关闭,防火墙也要关
1.以7作为DHCP服务器,将网卡只留一个,并且设为仅主机模式,然后将IP地址设为手动指定的静态IP,
2 在6上也只设一个仅主机的网卡,并且启用DHCP服务将网卡的配置文件修改即可:BOOTPROTO=dhcp
3 .yum install dhcp :(此包在光盘里需要将epel源停用)
4 .安装好之后需要配置DHCP的配置文件才可以启动此服务:
配置文件路径:vim /etc/dhcp/dhcpd.conf (打开配置文件发现配置文件是空的没有多少内容,提示你需要复制模板文件到此处)
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf (复制模板文件到此)
再次进入配置文件来修改:
systemctl start dhcpd.service (启动DHCP服务) (如果服务起不来查看更改的设置是否一样,一个字母或者少一个分号都不行)
6的机器重启后就可以获得7设定的DHCP的地址了(要保证7和6设置的网段在同一虚拟网段)
配置tftp服务 ;/var/lib/tftpboot/配置文件的路径
1 yum install tftp-server (装包) 在6和7上都装上:
2启用tftp服务(在7上)
systemctl enable tftp.service (开机就启用)
systemctl start tftp.service (启动服务)
在6上是非独立服务依靠xinetd来启动,
chkconfig tftp on
service xinetd restart
如果6想要访问7的tftp服务则需要在6上安装tftp客户端工具:yum install tftp
如何查看6的tftp服务可以连接到7上:
1首先在7上的tftp的主目录下建个文件
2在6上连接7的tftp服务并下载此文件如果成功说明连接上了
tftp 192..168.60.4(7的IP)
get fstab(此文件为7上主目录所创建的新文件)
ls 查看有没有下载下来。
重启机器7查看设置的开机自启的DHCP 的67端口和tftp的69端口是否启动了,后续自动化安装需要用到
(ss -ntul 此命令来查看端口号)
PXE自动化安装CentOS (以上的DHCP和tftp服务为下列实现PEX的基础)
1 .查看是否安装http服务;如果没有则安装;并且启动服务:查看80端口是否打开
systemctl start httpd
systemctl enable httpd
2 /var/www/html/(此为http的主目录可以将应答文件等所有的东西都存放到此处)
在此目录下新建cent7的文件夹并将光盘挂载到此处:
如果要实现永久挂载则需要写到/etc/fstab 文件里:具体内容
/dev/sr0 /var/www/html/cent7 iso9660 defaults 0 0
然后mount -a 让其生效
mount /dev/sr0 /var/www/html/cent7 (临时挂载使用)并用浏览器查看是否能打开
3 在主目录里新建一个应答文件的文件夹 (应答文件最好使用工具来生成不会容易出错)
mkdir /var/www/html/ksdir
将模板的应答文件拷贝到此且重名名并修改一下:(确保权限,不够增加)
cp /root/anaconda.cfg /var/www/html/ksdir/ks7.cfg
chmod 644 ks7.cfg
多余的包可以选择不装,删掉以最小化安装;在添加加reboot和将graphical改为text在上图里,(忘记添加了,reboot 随便写在哪一行都行)
4 再次配置DHCP服务:(此次配置添加了两行关于tftp的两项内容)
总结:在上述配置中分号少添加了,结果导致DHCP服务起不来修改过后就可以起来了。
5 .进入tftp的共享目录:cd /var/lib/tftpboot/ (此服务为启动菜单的的引导项)
在此目录下新建文件夹:mkdir pexlinux.cfg
安装包:yum install syslinux
查找上述包里的一个文件并复制到刚才新建的文件夹里去;
rpm -ql syslinux | grep pxelinux.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
6 将启动时的菜单风格文件从光盘里拷贝到此处:
cp /var/www/html/cent7/isolinux/vesamenu.c32 .
此时/var/lib/tftpboot/ 的目录结构为:
.
├── pexlinux.cfg
├── pxelinux.0
└── vesamenu.c32
将光盘里的内核和启动程序拷贝到此处 (也可以将整个isolinux里的文件拷贝过来)
cp /var/www/html/cent7/isolinux/vmlinuz /var/lib/tftpboot/
cp /var/www/html/cent7/isolinux/initrd.img /var/lib/tftpboot/
7 .制作启动菜单文件
将光盘里的引导文件复制到pxelinux.cfg/目录下并且重命名
cp /var/www/html/cent7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
修改引导文件:
确认文件结构一个也不能少:
├── initrd.img
├── pxelinux.0
├── pxelinux.cfg
│? └── default
├── vesamenu.c32
└── vmlinuz
1 directory, 5 files
到此已经全部完成了:
开始测试:新建硬件系统;将网络设置为和DHCP服务器同一虚拟网段的仅主机模式。
启动时进入救援模式界面选择走网络安装模式(最后一项)
使用cobbler来实现自动化的安装:(此服务可自动生成应答文件和引导文件不用再手动生成了)
PXE的二次封装,将多种安装参数封装到一个菜单
Python编写
提供了CLI和Web的管理形式
配置文件目录 /etc/cobbler
cobbler 命令介绍
cobbler commands介绍
cobbler check 核对当前设置是否有问题
cobbler list 列出所有的cobbler元素
cobbler report 列出元素的详细信息
cobbler sync 同步配置到数据目录,更改配置最好都要执行下
cobbler reposync 同步yum仓库
cobbler distro 查看导入的发行版系统信息
cobbler system 查看添加的系统信息
cobbler profile 查看配置信息
实验:在7上配置cobbler来实现6和7的网络自动化安装:
工作环境:7上需要实现DHCP和TFTP服务(参照上文来解决);cobbler需要连接外网所以需要添加一个桥接的网卡并确认可以和外网相连接;防火墙以及selinux服务统统关闭 ,http(80端口)服务也要起来
DHCP 配置文件先不要添加,后续的cobbler服务会自动生成配置文件的
1.安装cobbler:此包依赖与epel源来安装:
yum install cobbler
2.启动cobbler服务:
systemctl start cobblerd
systemctl enable cobblerd
服务都起来之后查看端口来确认:ss -ntlu
DHCP (67)
TFTP (69)
HTTP (80)
3 .查看tftp的共享目录会发现自动生成了8个文件
cd /var/lib/tftpboot/
4 .配置cobbler;
cobbler check (此命令检查cobbler缺少的东西会提示你)
如果检查没有出现1……..9的提示列表:需要重启http服务systemctl restart httpd
在此检查就可以了
第一项解决的问题:
vim /etc/cobbler/settings (打开此文件来修改)
384行将server :192.168.60.4 (服务器7的仅主机IP地址)
第二项,解决的问题:
272行将server:192.168.60.4 (tftp服务器的地址也是7主机的IP地址)
第三项,解决的问题:
cobbler get-loaders 运行此命令下载文件(确保外网能够访问)
cobbler sync (将下载的文件同步到)/var/lib/tftpboot文件里面
第四项;有个默认口令为cobbler可以不用修改
最后将242行的0 改为1 (目的是使用Cobbler来管理DHCP自动生成模板文件只需稍微修改一下即可)
修改完后重新启动cobbler服务:systemctl restart cobblerd
5 .配置DHCP文件
vim /etc/cobbler/dhcp.template (修改配置文件)
cobbler sync (改完之后同步一下)
再次重启cobbler服务
6.挂在光盘
载7中的服务器机器上挂上两个光盘
echo ‘- – -‘ > /sys/class/scsi_host/host0/scan (将挂载的光盘同步一下)
新建两个文件夹,分别挂载两个光盘
mkdir /mnt/cdrom0
mkdir /mnt/cdrom1
mount /dev/sr0 /mnt/cdrom0
mount /dev/sr1 /mnt/cdrom1
导入光盘文件:两个都要导入 (导入之前查看光盘挂载的名字与后面重新定义的名字是否相同)
cobbler import –path=/mnt/cdrom1/ – -name=centos-6.9-x86_64 – -arch=x86_64 (先拷贝6的光盘)
–name=centos……..(为倒完以后自己取得系统的名称)
cobbler import –path=/mnt/cdrom0/ – -name=centos-7-x86_64 – -arch=x86_64 (在拷贝7的光盘)
在du -sh /var/www/cobbler/ ks_mirror/下可以看到光盘的内容都考到此目录下了
拷贝完成后进入目录下cd /var/www/cobbler/ks_mirror/centos-6.9-x86_64/
光盘导入之后应答文件和引导菜单文件都会自动生成,具体位置为:
引导菜单文件:/var/lib/tftpboot/pxelinux.cfg/default
应答文件:/var/lib/cobbler/kickstarts/* (此目录下具体那个文件要看 下面命令搜索的结果)
cobbler distro list (执行此命令会发现有i386的文件)
cd /var/lib/tftpboot/pxelinux.cfg/ 此目录下的引导文件已经生成了,如果导入两个磁盘则生成两个引导文件。
cobbler profile list (此命令可以查看应答文件和引导文件的选项)
cobbler distro list (此命令查看安装光盘的选项)
cobbler profile remove –name=centos6.9-i386 (此命令可以删除多余的应答文件和引导文件)
cobbler distro remove –name=centos6.9-i386 (此命令删除多余的安装光盘)
cobbler profile report –name=centos-6.9-x86_64 (此命令查看应答文件真实的路径)
cat /var/lib/cobbler/kickstarts/default.ks (按找到的应答文件的路径来打开应答文件)
最后总结:
开始安装之前再次确认:DHCP ;tftp;cobbler;http;服务是否开启。查看端口号或者查看服务状态也行。
ss -nult
systemctl status dhcpd httpd tftpd (查看状态)
systemctl start dhcpd httpd tftpd (开启服务)
systemctl restart dhcpd httpd tftpd (重启服务)
此时已经可以走网络来重新安装系统了,走网络安装时要注意安装的主机必须要和服务器在同一网段并且能够获得作为DHCP的服务器,所分分配的IP地址,否则无法连接DHCP服务器里的cobbler数据信息,则无法安装。
如果想将自己所制作的应答文件加进cobbler里作为引导菜单另一种方式的安装;
具体步骤及其方法:
1.将自己的应答文件最修改:路径要修改
url –url=$tree (只改此项就行了)
2 .生成新的引导菜单:要和光盘的版本关连到一起:
查看安装光盘列表:cobbler distro list
将新的应答文件关连到所需要对应的光盘,首先将应答文件拷贝到应答文件的目录下才可以用:
mv ks6_mini.cfg /var/lib/cobbler/kickstarts/
cobbler profile add –name=centos-699999mini –distro=centos-6.9-x86_64 —
kickstart=/var/lib/cobbler/kickstarts/ks6_mini.cfg
(–name 为自己命名的引导菜单选项里的名字,后面是关连光盘的名字,最后是刚移进去的应答文件的路径)
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/99449