pxe无人值守装机

PXE


文档撰写: hanxin

时间:2018-6-12

版本:20180612-1


1 简介

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

2 安装配置

2.1 先关闭防火墙

iptables -F     # 关闭防火墙
setenforce 0    # 临时关闭selinux,建议使用此方式临时关闭防火墙
vim /etc/selinux/config     # 修改文件永久关闭selinux,建议生产环境不使用
    ...前面省略
    SELINUX=disabled    #设置SELINUX的值为disabled
    ...后面省略

2.2 yum安装

由于我们需要HTTP、TFTP、DHCP服务来提供相应的服务,所以我们必须要在系统中安装,相应的服务。这里需要注意,如果你的系统时最小化安装,那么建议你先安装一些包组,GCC等。如果安装过程中出现包依赖问题,依次安装相应的包即可。

yum install dhcp httpd tftp tftp-server syslinux -y #服务
yum install xinetd -y   #守护进程
//  安装选择工具需要时有界面的全量安装  若为最小化可更改配置文件
把etc的 yum.repos.d 的Centos-Base.repo[base] 改成[development]   //这样安装界面就可以找到安装包了
yum install system-config-kickstart -y  #工具

vim /etc/xinetd.d/tftp 
    disable   改成 no
vim /etc/dhcp/dhcpd.conf    #配置DHCP
    subnet 192.168.25.0 netmask 255.255.255.0 {
        range 192.168.25.50 192.168.25.100;
        next-server 192.168.25.1;     # 指明tftp服务器的地址
        filename "pxelinux.0";          # 指定PXE文件
    }
    group {
    # 为mac地址为08:00:07:26:c0:a5的host1主机分配地址为192.168.0.21
    host host1 {
        hardware ethernet 08:00:07:26:c0:a5;
        fixed-address 192.168.0.21; # 切记此地址不能是地址池中定义的地址,以避免地址冲突
              }
         }
设置静态IP为192.168.25.1
    vim /etc/sysconfig/network-scripts/ifcfg-ens33  # 设置静态IP
    DEVICE=ens33
    BOOTPROTO=static
    IPADDR=192.168.25.1
    PREFIX=24
    ONBOOT=yes
service network restart
service httpd restart
service dhcpd restart
service xinetd restart  #重启所有服务并设置开机启动
systemctl enable httpd 
systemctl enable dhcpd
systemctl enable tftp

挂载光驱及创建模板

把相应镜像上传到根目录上
cd var/www/html
mkdir centos7   //创建http对应的镜像目录
mount CentOS-7-x86_64-Minimal-1804.iso /var/www/html/centos7/   //把对应镜像挂载到当前创建的镜像目录

如果界面安装可直接执行//system-config-kickstart        //安装之后可出现可选界面,按照次序依次选择即可
选择完成后保存到
    rm -rf /etc/yum.repos.d/
    cat > /etc/yum.repos.d/base.repo <
    [base]
    name=base
    baseurl=file:///misc/cd
    gpgcheck=0
    eof
    %end                    //可在最后添加yum源,只安装界面就行

安装保存 到 /var/www/html/下,因为配置default时要通过http获取模板


如果最小化,加载不了界面可直接选择家目录下的ks.cfg文件
cp anaconda-ks.cfg /var/www/html/ks.cfg
在编辑文件,根据你的实际需求更改 
第一行增加 install
CDROM  改成  text  。。。需求安装包。。。
# CentOS7.0 kickstart.cfg
#version=DEVEL
# 指定安装全新的操作系统
install
# 指定安装OS的类型,有cdrom,harddrive,nfs或url方式
# url:通过FTP或HTTP从远程服务器上的安装树中安装.格式:url --url http:///
url --url=http://192.168.0.120:/centos/centos70
# 指定基于字符界面安装OS,常见的有text和graphical
text
# 设定操作系统默认的字符集
lang en_US.UTF-8
# 指定键盘布局
keyboard us
# 设置网卡状态,注意这里的--bootproto选项必须是dhcp 
network --onboot yes --device eth0 --bootproto dhcp --noipv6
network --onboot yes --device eth1 --bootproto dhcp --noipv6
# 设定root密码
rootpw  --iscrypted $1$IPPBXADM$gb8NJk9o2YWJaf411hfwx0
# 允许ssh服务过防火墙
firewall --disabled
# 设置系统的认证方式,使用隐藏密码
authconfig --enableshadow --passalgo=sha512
# 设置selinux,可用选项有--enforcing(缺省选项),--permissive,--disabled
selinux --disabled
# 设置时区
timezone Asia/Shanghai
# 指定引导装载程序怎样被安装
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# 设置分区信息,首先要使用clearpart --all清除分区信息,后边才能分区成功
clearpart --all
part /boot --fstype=ext4 --size=200
part swap --size=物理内存
part / --fstype=ext4 --size=40960
part /home --fstype=ext4 --size=40960
part /var --fstype=ext4 --size=40960
part /data --fstype=ext4 --size=剩下的
#part pv01 --size 2048
#volgroup lv_root pv01
#logvol swap --vgname=lv_root --fstype=ext4 --size=2048 
# 添加IPMI账户migusx,确认是否要添加
user --name=migusx --passwd $1$IPPBXADM$gb8NJk9o2YWJaf411hfwx0 --iscrypted
# 添加普通用户账户version,家目录为/home/version
user --name=version --passwd=$1$IPPBXADM$gb8NJk9o2YWJaf411hfwx0 --iscrypted
# 安装的软件包
%packages
@chinese-support
@core
@mail-server
@ftp-server
@nfs-file-server
@storage-server
@network-tools
@performance
@perl-runtime
@server-policy
@workstation-policy
sg3_utils
perl-DBD-SQLite
%end

复制相应目录

cd /var/lib/tftpboot
mkdir centos7       //在tftp下创建对应系统目录
mkdir pxelinux.cfg      //在tftp下创建对应目录
cp /var/www/html/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7/  //拷贝内核文件到tftp目录下
cp /var/www/html/initrd.img/pxeboot/vmlinuz /var/lib/tftpboot/centos7/  //拷贝虚拟根文件到tftp目录下   
cp /var/www/html/centos7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
SysLinux是一个Linux系统引导工具,它可以创建从MS DOS启动的Linux启动盘或Linux恢复盘。它安装很简单,一旦安装创建好之后,SysLinux*软盘就可以操控标准的MS DOS工具
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /var/www/html/centos7/isolinux/vesamenu.c32 /var/lib/tftpboot/   //拷贝菜单风格文件
vi default
    菜单文件内容
    default vesamenu.c32     # 指定菜单风格
    prompt 5    # 安装倒计时,1/10 s为单位
    timeout 20              
    menu title Auto Install Linux PXE Menu  # CentOS 7的提示信息和内核文件等指定
    label CentOS 7
    menu label Auto Install CentOS 7.0 x86_64
    kernel centos7/vmlinuz
    append initrd=centos7/initrd.img inst.repo=http://192.168.25.1/centos7 ks=http://192.168.25.1/ks.cfg   # 指明ks文件位置 
    menu end
然后给ks.cfg执行权限

遇到的问题整理

安装显示内存空间不足,可增加客户端运行内存,或者ks配置文件的内存分配问题

你可能感兴趣的:(pxe无人值守装机)