Linux-pxe~install网络安装

pxe

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统

 1、安装:[[email protected] ~]# yum install dhcp tftp-server httpd syslinux -y


httpd ##共享安装资源

dhcp ##分配ip以及让客户主机获取pxelinux.0文件

pxelinux.0 ##预安装环境头文件,用来指定读取后续文件的程序

tftp-server ##提供tftp协议,令客户主机可以读取到预安装环境

syslinux ##提供pxelinux.0文件

2、[[email protected] ~]# vim /etc/xinetd.d/tftp

        disable                 = no开启tftp服务

systemctl restart xinetd  之后重启服务


3、查看端口

查看69端口 看看tftp服务是否开启

[[email protected] ~]# netstat -anutple | grep 69

udp        0      0 0.0.0.0:69              0.0.0.0:*                           0          29769      1825/xinetd  

chkconfig --list 查看tftp是否开启

xinetd based services:

chargen-dgram: off

chargen-stream: off

daytime-dgram: off

daytime-stream: off

discard-dgram: off

discard-stream: off

echo-dgram:     off

echo-stream:    off

tcpmux-server: off

tftp:           on ##tftp服务开启

time-dgram:     off

time-stream:    off



4.制作预安装环境


第一步 cp /var/www/html/rhel7.0/isolinux/*  /var/lib/tftpboot/ (切换到镜像文件的挂载目录下 再切换到isolinux目录下把下面的东西全部拷贝到server中的/var/lib/tftpboot/下 

第二步 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

第三步 mkdir /var/lib/tftpboot/pxelinux.cfg


第四步 cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

最后ls查看一下所有的东西


systemctl restart xinetd然后进行重启服务


5 启用DHCP服务

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 之后y进行覆盖


vim /etc/dhcp/dhcpd.conf 修改dhcp的配置文件


option domain-name "example.com"; ##客户主机域名

option domain-name-servers 172.25.254.182; ##客户主机获得到的dns

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

max-lease-time 7200; ##最长租约期

log-facility local7; ##日志级别

subnet 172.25.254.0 netmask 255.255.255.0 { ##网段,子网掩码

  range 172.25.254.180 172.25.254.190; ##ip地址池 获取ip的网段

  option routers 172.25.254.182; ##客户主机获得到的网关

  filename "pxelinux.0"; ##客户主机获得到的预安装环境头文件找的文件为pxelinux.0

  next-server 172.25.254.182; ##指定头文件所在主机的ip ##表示谁提供tftp服务,就写该服务器的ip

}

 systemctl start dhcpd

systemctl enable dhcpd

systemctl stop firewalld

systemctl disable firewalld

systemctl enable firewalld


之后我们在desktop中进行实验 

1 首先boot启动方式中选择pxe启动


然后开机进行测试 可以看到由DHCP获取到的ip为172.25.254.180  刚好是我写入的网段 以及网关等信息


然后就进入了这个界面


但是我没有写入镜像安装源 所以还没办法安装

接下来 我们可以在配置文件中修改加入镜像的安装源 和 修改 背景 标题 等待时间等

切换在这个目录下 default就是配置文件

vim /var/lib/tftpboot/pxelinux.cfg/default  

  2 timeout 60(毫秒为单位的)                               修改等待时间

    menu background splash.png 背景图片 其所在的位置就是在/var/lib/tftpboot/ 我们可以自己在这个路径中加入图片 更改这个名称指向源既可以更改 背景 但是要注意 格式的修改

  11 menu title Dou you  see my small bear ?   标题 名称               

  61 label linux

  62   menu label ^Install Red Hat Enterprise Linux 7.0

  63   menu default 更改默认所在行数 这里默认我们感概成了 简短单词的 这一行


  64   kernel vmlinuz

  65   append initrd=initrd.img repo=http://172.25.254.250/rhel7  镜像安装源的地址


  66

  67 label check

  68   menu label Test this ^media & install Red Hat Enterprise Linux 7.0

  69

  70   kernel vmlinuz

  71   append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.0\x20Server.x86_64 rd.live.    check quiet

 我们下载的图标放在/var/lib/tftpboot中即使修改了配置文件的指向还不能直接用 格式可能有问题 这里我们可以通过软件命令来修改格式 convert  首先我们查看这个命令需要下载哪一个软件

yum  whatprovides convert 可以看到需要下载的软件 然后为我们进行下载


yum install imagemagick -y


file splash.png 查看一下原来背景图片的格式 然后使用命令

convert -resize 640x480! annie.png riven.png 后面这个是改成什么名字 必须加 完了相当于多了一个图片


然后我们就可以用desktop进行测试了

果然背景图片发生了改变 标题 所在行数(原来在第二行)也都发生了改变 等待时间也改变了


然后就可以进行安装了 



但是我们还是觉得太麻烦了 这时候就可以使用到kictstart 脚本写入安装的动作了 之后就可以实现全自动安装了


六 设定自动化部署

yum install system-conifig-kickstart


system-config-kickstart ---->/var/www/html/rhel7.0.cfg

system-config-kickstart 然后选择安装的动作

 选择下面两个 并设置好密码


写入http安装 再写入镜像文件的位置


第三个不选 第四个全部选择第一个再进行分区


boot 分区 给200m


swap 分区给500m


剩下的全部给跟下 选择fill all~


设备写入eth0


防火墙选择disabled状态


然后将这个ks.cfg脚本保存到/var/www/html/下


然后我们可以在ks.cfg这个脚本中写入想让安装中执行的动作和安装包

38 %packages

 39 @base

 40 lftp

 41 %end

 42

 43

 44

 45 %post

 46 cat >>/etc/yum.repos.d/yum.repo <<EOF

 47 [rhel7.2]

 48 gpgcheck=0

 49 baseurl=http://172.25.254.22/rhel7.2

 50 EOF

 51 rm -fr /etc/sysconfig/network-scripts/ifcfg-eth0

 52 cat >>/etc/sysconfig/network-scipts/ifcfg-eth0 <<EOF

 53 DEVICE=eth0

 54 ONBOOT=yes

 55 BOOTPROTO=none

 56 IPADDR=172.25.254.99

 57 NETMASK=255.255.255.0

 58 EOF

 59 systemctl restart network

 60 %end



然后我们可以用ksvalidator ks.cfg命令来查看写入是否正确没有问题 


vim /var/lib/tftpboot/pxelinux.cfg/default

label autoinstall ##选项标签

  menu label ^Autoinstall RHEL7.0 ##标题

  kernel vmlinuz ##启动的内核文件 

这是将7.0镜像的isolinux中的vmlinuz文件复制过来

  append initrd=initrd.img repo=http://172.25.254.100/rhel7.0 ks=http://172.25.254.182/ks.cfg

         ##初始化镜像 ##安装资源 ##自动安装脚本

然后在配置文件中 镜像源的后面加上这个ks.cfg脚本的位置 使得系统安装过程中可以去读取这个脚本


kickstart装:  

还要做好dhcpd,注意版本,server用7.0的镜像装

 然后我们仍然在desktop中进行测试 看到ks.cfg脚本被读取 系统开始安装 则等待安装成功即可 大功告成啦!!!~

 


                                                                                                                                                                                                                                 over~