PXE网络引导系统自动化安装CentOS7

 一.PXE

注意:安装前 selinux 禁用,iptables 关闭 dhcp 服务器静态IP地址

 1.PXE的工作原理:

     Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC
      地址),如果合法则返回Client的IP地址,同时将启动文件pxelinux.0的位置信息一并传送给Client
     Client向PXE Server上的TFTP发送获取pxelinux.0请求消息,TFTP接收到消息之后再向Client发送pxelinux.0大小
    信息,试探Client是否满意,当TFTP收到Client发回的同意大小信息之后,正式向Client发送pxelinux.0
2.基于pxe自动化安装所需的组件

(1)DHCP 服务器

需要在subnet配置中配置参数

filename “”;                                  基于网卡引导时要加载的initial  boot file的文件名;
next-server  HOST;                       
要是一个tftp-servr,简单文件传输协议

(2) tftp-server服务 

一般该服务器仅用于PXE预引导加载环境。用于提供预引导加载文件pxelinux.0的读取。

服务启动运行方式:
CentOS6:
# chkconfig tftp on
# service xinetd  restart
CentOS7:
# systemctl start  tftp.socket

(3)syslinux包

(4) file server(yum repository)yum仓库

3.安装服务

 (1)首先要安装 dhcp  tftp  syslinux 

  yum install dhcp tftp-server  httpd  syslinux 

(2)启动服务
 systemctl enable dhcpd.service tftp.service  httpd
  systemctl start tftp
 systemctl start httpd

(3)查看是否是69 端口
 ss -nulp 69

4 配置dhcp.conf 文件

cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf

vim /etc/dhcp/dhcpd.conf
subnet 192.168.8.0 netmask 255.255.255.0 {
         range 192.168.8.180 192.168.8.200;
         option routers 192.168.8.1;
         option domain-name-servers 223.5.5.5,223.6.6.6;
         filename “pxelinux.0”;
         next-server 192.168.8.133;
}

   启动服务
          systemctl start dhcpd

5.挂载镜像准备Yum安装源和kickstart文件

mkdir /var/www/html/centos7

mount /dev/sr0 /var/www/html/centos7

ks文件

mkdir /var/www/html/ks

cp /root/anaconda-ks.cfg /var/www/html/ks/centos7.cfg

vim /var/www/html/ks/centos7.cfg

url –url=http://192.168.8.133/centos7

text

reboot.

6.创建pxelinux.cfg 文件.拷贝镜像文件

mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /misc/cd/isolinux/{vmlinuz,initrd.img}  /var/lib/tftpboot/
cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/
cp /misc/cd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

创建安装菜单
vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
timeout 600

menu title PXE CentOS Linux 7 Install Menu
label automini 
  menu label ^Automatic Mini Install CentOS 7 
  kernel vmlinuz
  append initrd=initrd.img ks=http://192.168.8.133/ks/centos7.cfg
label autodesktop 
  menu label Automatic ^Desktop Install CentOS 7 
  kernel vmlinuz
  append initrd=initrd.img ks=http://192.168.8.133/ks/centos7-2.cfg
label manual
  menu label ^Manual Install CentOS 7 
  kernel vmlinuz
  append initrd=initrd.img 
label local
  menu label Boot from ^local drive
  menu default
  localboot 0xffff

原创文章,作者:gd1479,如若转载,请注明出处:http://www.178linux.com/82375

赞 (2)
gd1479gd1479
上一篇 2017-07-24 20:54
下一篇 2017-07-24 21:08

相关推荐

  • shell脚本编程之循环语句

      在运行脚本时重复执行一系列的命令是很常见的,这时我们就需要使用循环语句来达到这个目的。 一、for命令   格式:for 变量 in 列表;do          循环体       done   for命令会遍历列表中的每一个值,并且在遍历完成…

    Linux干货 2016-01-03
  • week3:cut,sort,grep等shell工具的应用及用户,组管理类命令

    1、列出当前系统上所有已经登录的用户的用户名,注意,同一个用户登录多次只显示一次即可    who | cut -d' ' -f1 | sort –u 2、取出最后登录到当前系统的用户相关信息    who | cut -d' ' -f1 | tail -1 | id 3、取出当…

    Linux干货 2016-11-20
  • 认识shell

    一、认识shell 什么是shell?shell为单词外壳的意思。那么这是谁的外壳?我们知道一个系统中实际工作的是那些硬件,cpu、内存、磁盘等。我们如何调用这些硬件为我们工作?实际上,硬件是由内核kernel控制的。我们可以通过kernel控制硬件,但我们不能直接和内核kernel交流。我们需要一个外壳,这个外壳就是shell来沟通kernel。何为she…

    Linux干货 2015-09-22
  • 往死里苦练脚本啊啊啊啊啊啊啊~~~~~~~~~~~~~~~~

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #脚本内容 [root@centos script]# cat week9_title1.sh  #!/bin/bash #Author …

    Linux干货 2017-02-16
  • zabbix如何监控webserver

    1、模版 2、应用集 3、项目 4、触发器

    Linux干货 2016-02-19
  • 初入命令世界

    一、inode节点号         在linux中,每一个文件都有唯一的inode号,inode号也是系统识别的唯一编码,而文件名仅仅是为了使用者区分辨认, inode (index node )表中包含文件系统所有文件列表 一个节点(索引节点)是在一个表项,包含有关…

    2017-05-26