实验(一):部署PXE远程安装服务

服务器的批量部署

规模化:同时配多台服务器

自动化:安装系统,配置各种服务

远程实现:不需要光盘,U盘等安装介质

实验基本步骤要素:

1,DHCP(自动分配IP地址 定位引导文件)

next-server    //指向TFTP路径

filename      //引导程序文件位置

2,TFTP(简单文件传输协议 UDP:69 高效率 容量小)(引导程序pxelinux.0(syslinux包),压缩内核vmlinuz,系统初始化文件initrd.img,启动菜单default)

3,FTP(vsftpd 文件传输协议 系统镜像(centos7)  安全,容量大  TCP:20数据传输,21:连接)

需要的安装包:dhcp,tftp-server,vsftpd,syslinux

实验环境:

一台Linux服务器作为PXE装机

一台未安装系统的裸机

(一)为了不影响使用NAT模式,我们给Linux服务器安装一个新的网卡,并设置为仅主机模式,并对新网卡配置一个固定的IP地址作为dhcp分配地址

1,将Linux服务器设置中添加一块新的网卡,并设置为仅主机模式

2,配置新网卡ens36信息

[root@localhost ~]# cd /etc/sysconfig/network-scripts/   复制一份网卡信息作为新网卡的配置文件
[root@localhost network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36
[root@localhost network-scripts]# vim ifcfg-ens36   对新网卡ens36配置
[root@localhost network-scripts]# systemctl restart network  重启网络服务


(二)安装DHCP服务,编辑配置文件/etc/dhcp/dhcpd.conf

[root@localhost network-scripts]# yum install dhcp -y  安装dhcp服务
[root@localhost network-scripts]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 复制为dhcp的配置文件
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
[root@localhost network-scripts]# vim /etc/dhcp/dhcpd.conf  编辑dhcp配置文件
subnet 192.168.100.0 netmask 255.255.255.0 {
        range 192.168.100.20 192.168.100.30;
        option routers 192.168.100.100;
        option domain-name-servers 114.114.114.114;
        next-server 192.168.100.100;
        filename "pxelinux.0";
}

(三)安装syslinux,tftp服务

1,安装syslinux并查看引导文件pxelinux.0位置

[root@localhost network-scripts]# yum install syslinux -y  安装syslinux
[root@localhost network-scripts]# rpm -ql syslinux | grep pxelinux  查看引导文件位置

2,安装tftp服务

[root@localhost network-scripts]# yum install tftp-server -y 安装tftp服务
[root@localhost network-scripts]# rpm -ql tftp-server  查看文件位置
[root@localhost network-scripts]# vim /etc/xinetd.d/tftp 开启tftp服务


3,复制引导文件pxelinux.0到/var/lib/tftpboot(TFTP站点中)

[root@localhost network-scripts]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot 复制引导文件到站点中
[root@localhost network-scripts]# cd /var/lib/tftpboot/  切换到站点中查看
[root@localhost tftpboot]# ls 
pxelinux.0


(四)安装vsftp服务(安装之前先将centos7镜像文件连接到光盘),将压缩内核和初始化文件复制到TFTP站点中

[root@localhost tftpboot]# yum install vsftpd -y  安装vsftp服务
[root@localhost tftpboot]# cd /var/ftp
[root@localhost ftp]# mkdir centos7
[root@localhost ftp]# mount /dev/cdrom centos7/
[root@localhost ftp]# cd centos7/images/pxeboot/
[root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/
[root@localhost pxeboot]# ls /var/lib/tftpboot/

(五)编辑启动菜单default配置文件,关闭防火墙并开启三个服务

[root@localhost pxeboot]# cd /var/lib/tftpboot/   切换到tftp站点
[root@localhost tftpboot]# mkdir pxelinux.cfg   创建配置文件目录
[root@localhost tftpboot]# ls
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# vim default  编辑default配置文件
[root@localhost pxelinux.cfg]# systemctl stop firewalld.service  关闭防火墙
[root@localhost pxelinux.cfg]# setenforce 0
[root@localhost pxelinux.cfg]# systemctl start dhcpd   启动三个服务
[root@localhost pxelinux.cfg]# systemctl start tftp
[root@localhost pxelinux.cfg]# systemctl start vsftpd
default auto
prompt 1

label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.100.100/centos7

label linux text
        kernel vmlinuz
        append text initrd=initrd.img method=ftp://192.168.100.100/centos7

label linux rescue
        kernel vmlinuz
        append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7

(六)创建并开启未安装系统的裸机,选择网络装机,安装系统

1,创建的未安装系统的裸机需要选择仅主机模式

2,打开未安装系统的裸机,选择网络装机

成功部署pxe批量装机服务!!!


实验(二):kickstart无人值守技术

创建应答文件(ks.cfg),预先定义号各种安装设置

免去交互设置过程,从而实现全自动化安装

通过添加%post脚本,完成安装后的各种配置操作

(一)安装kickstart软件包,并打开设置(除了我列出的图片要修改的之外,其余的不需要修改)

[root@localhost ~]# yum install system-config-kickstart -y  安装kickstart软件

1,安装好之后打开kickstart进行设置


2,设置安装的内容信息

基本配置选择中文语言,时区,root密码,安装后重启

安装方法选择FTP服务器,并指明服务器的地址

设置分区信息,启动目录/boot:500M 家目录/home:4096M 交换空间swap:4096M 根目录/:为分配的所有空间

设置网路设备信息为ens33

防火墙设置为禁用

填写安装后脚本的解释器为/bin/bash

保存ks.conf到/var/ftp目录中

(二)将安装软件包的模板复制到ks.cfg中,并在/var/lib/tftproot中引导加载模板,让其生效

1,查看ks.conf,复制本地anaconda-ks.cfg中的packages软件包模板到ks.cfg中

[root@localhost pxelinux.cfg]# ls /var/ftp  切换到/var/ftp查看保存的ks.cfg设置配置文件
centos7  ks.cfg  pub
[root@localhost pxelinux.cfg]# cd /root  切换到本地/root下
[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  公共  模板  视频  图片  文档  下载  音乐  桌面
[root@localhost ~]# vim anaconda-ks.cfg 将anaconda-ks.cfg中的安装软件包模块复制到/var/ftp/下的ks.cfg中
[root@localhost ~]# vim /var/ftp/ks.cfg

(三)引导加载ks.cfg模板到/var/lib/tftproot/pxelinux.cfg/下的default配置文件中

[root@localhost ~]# cd /var/lib/tftpboot/pxelinux.cfg/   切换到/var/lib/tftpboot/pxelinux.cfg/目录下
[root@localhost pxelinux.cfg]# ls
default
[root@localhost pxelinux.cfg]# vim default 编辑


(四)开启为安装系统的裸机,看看安装的效果

直接跳过交互界面,直接安装系统,实现了无人值守安装


扩展:红帽6中如何使用pxe,和无人值守安装,步骤其实都一样的配置,只不过启动菜单default不需要自己去写,只需要在挂载的镜像isolinux目录下的isolinux.cfg配置文件复制到/var/lib/tftpboot/pxelinux.cfg/default(安装菜单)中即可;

另外还需要复制挂载镜像下的isolinux下的vesamenu.c32(图形化安装菜单)到/var/lib/tftpboot中即可


谢谢阅读!!!