无人值守

DHCP+TFTP +SYSLINUX+FTP +KICKSTART

目录

一.       实验环境... 2

二.       实验步骤... 3

服务器配置... 3

客户端配置... 3

三.       配置过程... 4

服务器配置... 4

1.    最小化安装... 4

2.    配置yum... 4

3.    安装图形化界面... 5

4.    配置IP地址... 6

5.    安装 无人值守 需要的服务:DHCP+TFTP +SYSLINUX+FTP +KICKSTART. 8

安装DHCP.. 8

安装TFTP.. 10

安装SYSLINUX.. 13

安装FTP.. 14

安装kickstart 20

6.    关闭防火墙,查看服务状态... 37

四.       测试... 38

 


 

一.     实验环境

系统:rhel-server-7.0-x86_64-dvd.iso

Vmware 11  

KICKSTACK+PXE无人值守安装系统_第1张图片                 

服务器:桥接vmnet0

KICKSTACK+PXE无人值守安装系统_第2张图片

客户机:桥接vmnet0

KICKSTACK+PXE无人值守安装系统_第3张图片

二.     实验步骤

服务器配置

1.      最小化安装

2.      配置yum源

3.      安装图形化界面

4.      配置IP地址

5.      安装 无人值守 需要的服务:DHCP+TFTP+FTP+SYSLINUX+KICKSTART

6.      关闭防火墙,启动服务

客户端配置


KICKSTACK+PXE无人值守安装系统_第4张图片

 

三.     配置过程

服务器配置

1.      最小化安装

image.png

2.      配置yum源

先挂载镜像光盘

#mkdir /mnt/iso         #创建挂载目录

image.png 

#mount /dev/sr0 /mnt/iso/ #将镜像挂载到mnt的iso目录,镜像的名字在linux里是/dev/sr0

image.png

#df –TH                #查看挂载情况

KICKSTACK+PXE无人值守安装系统_第5张图片

现在开始配置yum源   

#vim /etc/yum.repos.d/hrr.repo   #新建一个.repo的文件(一定要.repo)

image.png

[dvd]                       #yum源的名字

name=rhel7                 #yum repo的描述

baseurl=file:///mnt/iso       #包路径file://(特殊写法) /mnt/iso(包所在的目录必须与repodata同级目录)

enabled=1                                   #1启用仓库,0反之

gpgcheck=0                                 #1验证(后面要写gpgcheck文件在哪),0反之

image.png

验证配置yum源结果

#yum repolist                   #查看yum源配置结果,可以看到status表示配置成功

KICKSTACK+PXE无人值守安装系统_第6张图片

3.      安装图形化界面

# yum -y groupinstall "Server with GUI"   #安装图形化界面组包

image.png

进入图形化界面

image.png

                                             

4.      配置IP地址

#vim /etc/sysconfig/network-scripts/ifcfg-eno16777736    #编辑网卡配置文件

KICKSTACK+PXE无人值守安装系统_第7张图片

KICKSTACK+PXE无人值守安装系统_第8张图片

修改/添加以下配置(前缀一定要大写):

BOOTPROTO=static            #static表手动配置,DHCP表自动获取

ONBOOT=yes                #是否开机自动运动

IPADDR0=192.168.65.2        #IP地址

PREFIX0=24                 #子网掩码

GATEWAY0=192.168.65.1      #网关

DNS1=8.8.8.8               #DNS

重启网络服务

#service network restart

image.png

查看IP配置

KICKSTACK+PXE无人值守安装系统_第9张图片

KICKSTACK+PXE无人值守安装系统_第10张图片

#nmcli connection show             #查看up的网卡,name是配置文件ifcfg-后面的名字

image.png

5.      安装 无人值守 需要的服务:DHCP+TFTP +SYSLINUX+FTP +KICKSTART(注意:selinux需要关闭)

安装DHCP

#yum install -y dhcp                 # -y表示确认,不加y会有提示

 KICKSTACK+PXE无人值守安装系统_第11张图片

修改DHCP配置文件

# vim /etc/dhcp/dhcpd.conf

KICKSTACK+PXE无人值守安装系统_第12张图片

添加/修改

subnet 192.168.65.0 netmask 255.255.255.0{   #网段

range 192.168.65.5 192.168.65.9;            #范围

next-server 192.168.65.2;                  #TFTP服务器

filename “pxelinux.0”;                    #镜像名字

}

启用DHCP服务

# systemctl  restart dhcpd.service

查看DHCP状态

# systemctl  status dhcpd.service

KICKSTACK+PXE无人值守安装系统_第13张图片

安装TFTP

# yum -y install tftp

# yum -y install tftp-server.x86_64

KICKSTACK+PXE无人值守安装系统_第14张图片

KICKSTACK+PXE无人值守安装系统_第15张图片

# yum -y install xinetd.x86_64   #xinetd是超守进程,因为TFTP是被超管理的进程,所以要用TFTP服务时,超守进程会唤醒TFTP

KICKSTACK+PXE无人值守安装系统_第16张图片


 

#vim /etc/xinetd.d/tftp                  #配置TFTP开机启动,把disable的yes改为no

KICKSTACK+PXE无人值守安装系统_第17张图片

启动服务查看状态

#service xinetd restart

#systemctl restart xinetd.service

KICKSTACK+PXE无人值守安装系统_第18张图片

#lsof –i:69                        #69是tftp的服务端口,可以看到TFTP服务已启动

image.png

安装SYSLINUX

#yum –y install syslinux*

KICKSTACK+PXE无人值守安装系统_第19张图片

复制开机所需文件

[root@localhost /]# cd /var/lib/tftpboot/   #进入TFTP目录

[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 ./  #刚刚装了sysylinux,现在将pxelinux.0镜像复制到tftpboot目录

[root@localhost tftpboot]# cp /mnt/iso/images/pxeboot/{initd.img,vmlinuxz} ./ #initd.img,内存镜像,vmlinuz是linux内核

[root@localhost tftpboot]# cp /mnt/iso/isolinux/{vesamenu.c32,*msg} ./ 

[root@localhost tftpboot]#mkdir pxelinux.cfg

[root@localhost tftpboot]# cp /mnt/iso/isolinux/isolinux.cfg ./pxelinux.cfg/default  #将光盘里的isolinux.cfg文件复制到tftpboot的pxelinux.cfg目录并重命名为default

查看复制结果,看到对应的6个文件,就复制成功

image.png

修改default文件

KICKSTACK+PXE无人值守安装系统_第20张图片

将hd:LABEL=RHEL-7.0\\x20Server.x86_64全部替换为

ftp://192.168.5.2 ks=ftp://192.168.65.2/pub/ks.cfg

一共有4个地方

安装FTP

#yum –y install vsftp.x86_64

KICKSTACK+PXE无人值守安装系统_第21张图片

[root@localhost tftpboot]# cp -r /mnt/iso/* /var/ftp           #把安装光盘的文件全部复制到ftp目录

 [root@localhost tftpboot]# ll /var/ftp/                      #查看复制结果

total 352

dr-xr-xr-x.  4 root root     52 Aug  4 01:26 addons

dr-xr-xr-x.  3 root root     17 Aug  4 01:26 EFI

-r--r--r--.  1 root root   8266 Aug  4 01:26 EULA

-r--r--r--.  1 root root  18092 Aug  4 01:26 GPL

dr-xr-xr-x.  3 root root     54 Aug  4 01:26 images

dr-xr-xr-x.  2 root root   4096 Aug  4 01:26 isolinux

dr-xr-xr-x.  2 root root     41 Aug  4 01:26 LiveOS

-r--r--r--.  1 root root    108 Aug  4 01:26 media.repo

dr-xr-xr-x.  2 root root 225280 Aug  4 01:30 Packages

drwxr-xr-x.  2 root root      6 Mar  7  2014 pub

dr-xr-xr-x. 24 root root   4096 Aug  4 01:30 release-notes

dr-xr-xr-x.  2 root root   4096 Aug  4 01:30 repodata

-r--r--r--.  1 root root   3375 Aug  4 01:30 RPM-GPG-KEY-redhat-beta

-r--r--r--.  1 root root   3211 Aug  4 01:30 RPM-GPG-KEY-redhat-release

-r--r--r--.  1 root root   1568 Aug  4 01:30 TRANS.TBL

[root@localhost tftpboot]# cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg       #将本系统的安装配置文件anaconda-ks.cfg,复制到ftp的pub目录下并重命名为ks.cfg

[root@localhost tftpboot]# ll /var/ftp/pub/ks.cfg                       #查看ks.cfg文件属性

-rw-------. 1 root root 2589 Aug  4 01:34 /var/ftp/pub/ks.cfg

[root@localhost tftpboot]# chmod +r /var/ftp/pub/ks.cfg                       #添加读的属性

[root@localhost tftpboot]# ll /var/ftp/pub/ks.cfg                                  #查看ks.cfg文件属性

-rw-r--r--. 1 root root 2589 Aug  4 01:34 /var/ftp/pub/ks.cfg

修改ks.cfg文件

KICKSTACK+PXE无人值守安装系统_第22张图片

KICKSTACK+PXE无人值守安装系统_第23张图片

下面是ks.cfg配置文件内容

#version=RHEL7

# System authorization information

auth --useshadow --enablemd5

# Install OS instead of upgrade

install

# Reboot after installation

reboot

# Use CDROM installation media

url --url=ftp://192.168.65.2

# Firewall configuration

firewall --enabled

firstboot --disable

ignoredisk --only-use=sda

# Keyboard layouts

# old format: keyboard us

# new format:

keyboard --vckeymap=us --xlayouts='us'

# System language

lang en_US.UTF-8

# Network information

network  --bootproto=dhcp

network  --hostname=localhost.localdomain

# Root password

rootpw --iscrypted $1$dq/RUYXu$KTztpGgYyUmDur05zgWZt1

# System services

services --enabled="chronyd"

# System timezone

timezone America/Los_Angeles --isUtc

user --name=ream --password=$6$d5.YwnmIoKU5KqgX$h1jmKofHk28yYz0LyD.HiOgOnK7F0.arKFn6mcwMofrNtCAeGWSq5pzcgyUbFBETA3EC.QVGZKMAbjpuMrjbE1 --iscrypted --gecos="ream"

# X Window System configuration information

xconfig  --startxonboot

# System bootloader configuration

bootloader --location=mbr --boot-drive=sda

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart --all --initlabel

# Disk partitioning information

part swap --fstype="swap" --size=2048

part /boot --fstype="xfs" --size=300

part / --fstype="xfs" --size=18131

%post

/usr/sbin/adduser ream

/usr/sbin/usermod -p '$1$dq/RUYXu$KTztpGgYyUmDur05zgWZt1' ream

/usr/bin/chfn -f "ream" ream

mv /etc/rc.d/rc.local /etc/rc.d/rc.local.00

echo '#!/bin/bash' > /etc/rc.d/rc.local

ln -s ../rc.local /etc/rc.d/rc5.d/S99rclocal

chmod 755 /etc/rc.d/rc.local

echo 'mkdir -p /var/log/vmware' >> /etc/rc.d/rc.local

echo 'exec 1> /var/log/vmware/rc.local.log' >> /etc/rc.d/rc.local

echo 'exec 2>&1' >> /etc/rc.d/rc.local

echo 'set -x' >> /etc/rc.d/rc.local

echo 'echo Installing VMware Tools' >> /etc/rc.d/rc.local

echo 'set -x' >> /etc/rc.d/rc.local

echo '/bin/eject sr0 || /bin/true' >> /etc/rc.d/rc.local

echo '/bin/eject sr1 || /bin/true' >> /etc/rc.d/rc.local

echo '/bin/vmware-rpctool' \'guest.upgrader_send_cmd_line_args --default\' >> /etc/rc.d/rc.local

echo '/bin/vmware-rpctool' \'upgrader.setGuestFileRoot /tmp\' >> /etc/rc.d/rc.local

echo '/bin/vmware-rpctool' \'toolinstall.installerActive 1\' >> /etc/rc.d/rc.local

echo '/bin/vmware-rpctool' \'toolinstall.installerActive 100\' >> /etc/rc.d/rc.local

echo 'rm -f /etc/rc.d/rc.local' >> /etc/rc.d/rc.local

echo 'rm -f /etc/rc.d/rc5.d/S99rclocal' >> /etc/rc.d/rc.local

echo 'mv /etc/rc.d/rc.local.00 /etc/rc.d/rc.local' >> /etc/rc.d/rc.local

/bin/echo done

%end

%packages

@base

@core

@guest-desktop-agents

binutils

chrony

ftp

gcc

kernel-devel

make

open-vm-tools

patch

python

%end

启用FTP服务

# systemctl  restart vsftp.service

查看DHCP状态

# systemctl  status vsftpd.service

KICKSTACK+PXE无人值守安装系统_第24张图片

以上配置配置完就可以进行无人值守安装,不过配置是和服务器装机时的配置一样的,下面安装kickstart可以自定义安装一个不一样的系统

安装kickstart

[root@localhost tftpboot]# yum -y install *kickstart*

 [root@localhost ~]# system-config-kickstart            #自定义配置kickstart

KICKSTACK+PXE无人值守安装系统_第25张图片KICKSTACK+PXE无人值守安装系统_第26张图片

与ks文件的对比

#platform=x86, AMD64, or Intel EM64T

KICKSTACK+PXE无人值守安装系统_第27张图片

#version=DEVEL

# Install OS instead of upgrade

install

# Keyboard layouts

keyboard 'us'

KICKSTACK+PXE无人值守安装系统_第28张图片

# Reboot after installation

Reboot

KICKSTACK+PXE无人值守安装系统_第29张图片#安装完自动重启

# Root password

rootpw --iscrypted $1$vVvwaH.E$laQ2SHKj2ej6/1C.YzU7Q.

KICKSTACK+PXE无人值守安装系统_第30张图片#root密码

# System timezone

timezone Africa/Abidjan

KICKSTACK+PXE无人值守安装系统_第31张图片#时间

# Use network installation

url --url=ftp://192.168.65.2/

KICKSTACK+PXE无人值守安装系统_第32张图片FTP网络路径

# System language

lang en_US

KICKSTACK+PXE无人值守安装系统_第33张图片#使用的语言

# Firewall configuration

firewall –disabled

KICKSTACK+PXE无人值守安装系统_第34张图片#关闭防火墙

# Network information

network  --bootproto=dhcp --device=eth0

KICKSTACK+PXE无人值守安装系统_第35张图片#新建网卡

# System authorization information

auth  --useshadow  --passalgo=md5

KICKSTACK+PXE无人值守安装系统_第36张图片#用户加密方式

# Use graphical install

Graphical

KICKSTACK+PXE无人值守安装系统_第37张图片#图形界面

# Run the Setup Agent on first boot

firstboot –enable

KICKSTACK+PXE无人值守安装系统_第38张图片#图形界面开机启动

# SELinux configuration

selinux --disabled

KICKSTACK+PXE无人值守安装系统_第39张图片#关闭selinux

# System bootloader configuration

bootloader --location=mbr

KICKSTACK+PXE无人值守安装系统_第40张图片#安装引导项

# Clear the Master Boot Record

Zerombr

KICKSTACK+PXE无人值守安装系统_第41张图片#这个还不知道

# Partition clearing information

clearpart --all 

KICKSTACK+PXE无人值守安装系统_第42张图片#这个还不知道,但一定要有

# Disk partitioning information

KICKSTACK+PXE无人值守安装系统_第43张图片

part swap --fstype="swap" --size=2048

KICKSTACK+PXE无人值守安装系统_第44张图片#配置swp分区

part /boot --fstype="xfs" --size=300

KICKSTACK+PXE无人值守安装系统_第45张图片#配置boot分区

part / --fstype="xfs" --size=18131

KICKSTACK+PXE无人值守安装系统_第46张图片#配置根/分区

%pre

--password=$6$d5.YwnmIoKU5KqgX$h1jmKofHk28yYz0LyD.HiOgOnK7F0.arKFn6mcwMofrNtCAeGWSq5pzcgyUbFBETA3EC.QVGZKMAbjpuMrjbE1 --iscrypted --gecos="ream"

KICKSTACK+PXE无人值守安装系统_第47张图片#新建用户ream并设置密码

%end

 

%post

/usr/sbin/adduser ream

/usr/sbin/usermod -p '$1$dq/RUYXu$KTztpGgYyUmDur05zgWZt1' ream

/usr/bin/chfn -f "ream" ream

mv /etc/rc.d/rc.local /etc/rc.d/rc.local.00

echo '#!/bin/bash' > /etc/rc.d/rc.local

ln -s ../rc.local /etc/rc.d/rc5.d/S99rclocal

chmod 755 /etc/rc.d/rc.local

echo 'mkdir -p /var/log/vmware' >> /etc/rc.d/rc.local

echo 'exec 1> /var/log/vmware/rc.local.log' >> /etc/rc.d/rc.local

echo 'exec 2>&1' >> /etc/rc.d/rc.local

echo 'set -x' >> /etc/rc.d/rc.local

echo 'echo Installing VMware Tools' >> /etc/rc.d/rc.local

echo 'set -x' >> /etc/rc.d/rc.local

echo '/bin/eject sr0 || /bin/true' >> /etc/rc.d/rc.local

echo '/bin/eject sr1 || /bin/true' >> /etc/rc.d/rc.local

echo '/bin/vmware-rpctool' \'guest.upgrader_send_cmd_line_args --default\' >> /etc/rc.d/rc.local

echo '/bin/vmware-rpctool' \'upgrader.setGuestFileRoot /tmp\' >> /etc/rc.d/rc.local

echo '/bin/vmware-rpctool' \'toolinstall.installerActive 1\' >> /etc/rc.d/rc.local

echo '/bin/vmware-rpctool' \'toolinstall.installerActive 100\' >> /etc/rc.d/rc.local

echo 'rm -f /etc/rc.d/rc.local' >> /etc/rc.d/rc.local

echo 'rm -f /etc/rc.d/rc5.d/S99rclocal' >> /etc/rc.d/rc.local

echo 'mv /etc/rc.d/rc.local.00 /etc/rc.d/rc.local' >> /etc/rc.d/rc.local

/bin/echo done

%end

%packages

@base

@core

@guest-desktop-agents

binutils

chrony

ftp

gcc

kernel-devel

make

open-vm-tools

patch

python

%end


KICKSTACK+PXE无人值守安装系统_第48张图片#上面这些配置%post 到 %end 可以到~/ anaconda-ks.cfg那里看

配置好后保存到/var/ftp/pub/ks.cfg

KICKSTACK+PXE无人值守安装系统_第49张图片

测试一下:

KICKSTACK+PXE无人值守安装系统_第50张图片

事实证明,上面的kickstart自定义配置是没错的,可以成功的无人值守安装,而且比复制~/ anaconda-ks.cfg文件安装的要快很多,不知道为什么

为了更好的了解配置,查看/var/ftp/pub/ks.cfg(刚刚用kickstart图形界面配置)的配置文件如下:

#platform=x86, AMD64, or Intel EM64T

#version=DEVEL

# Install OS instead of upgrade

install

# Keyboard layouts

keyboard 'us'# Reboot after installation

reboot

# Root password

rootpw --iscrypted $1$vVvwaH.E$laQ2SHKj2ej6/1C.YzU7Q.

# System timezone

timezone Africa/Abidjan

# Use network installation

url --url="ftp://192.168.65.2/"

# System language

lang en_US

# Firewall configuration

firewall --disabled

# Network information

network  --bootproto=dhcp --device=eth0

# System authorization information

auth  --useshadow  --passalgo=md5

# Use graphical install

graphical

# Run the Setup Agent on first boot

firstboot --enable

# SELinux configuration

selinux --disabled

# System bootloader configuration

bootloader --location=mbr

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart --all 

# Disk partitioning information

part swap --fstype="swap" --size=2048

part /boot --fstype="xfs" --size=300

part / --fstype="xfs" --size=18131

%pre

--password=$6$d5.YwnmIoKU5KqgX$h1jmKofHk28yYz0LyD.HiOgOnK7F0.arKFn6mcwMofrNtCAeGWSq5pzcgyUbFBETA3EC.QVGZKMAbjpuMrjbE1 --iscrypted --gecos="ream"

%end

%post

/usr/sbin/adduser ream

/usr/sbin/usermod -p '$1$dq/RUYXu$KTztpGgYyUmDur05zgWZt1' ream

/usr/bin/chfn -f "ream" ream

mv /etc/rc.d/rc.local /etc/rc.d/rc.local.00

echo '#!/bin/bash' > /etc/rc.d/rc.local

ln -s ../rc.local /etc/rc.d/rc5.d/S99rclocal

chmod 755 /etc/rc.d/rc.local

echo 'mkdir -p /var/log/vmware' >> /etc/rc.d/rc.local

echo 'exec 1> /var/log/vmware/rc.local.log' >> /etc/rc.d/rc.local

echo 'exec 2>&1' >> /etc/rc.d/rc.local

echo 'set -x' >> /etc/rc.d/rc.local

echo 'echo Installing VMware Tools' >> /etc/rc.d/rc.local

echo 'set -x' >> /etc/rc.d/rc.local

echo '/bin/eject sr0 || /bin/true' >> /etc/rc.d/rc.local

echo '/bin/eject sr1 || /bin/true' >> /etc/rc.d/rc.local

echo '/bin/vmware-rpctool' \'guest.upgrader_send_cmd_line_args --default\' >> /etc/rc.d/rc.local

echo '/bin/vmware-rpctool' \'upgrader.setGuestFileRoot /tmp\' >> /etc/rc.d/rc.local

echo '/bin/vmware-rpctool' \'toolinstall.installerActive 1\' >> /etc/rc.d/rc.local

echo '/bin/vmware-rpctool' \'toolinstall.installerActive 100\' >> /etc/rc.d/rc.local

echo 'rm -f /etc/rc.d/rc.local' >> /etc/rc.d/rc.local

echo 'rm -f /etc/rc.d/rc5.d/S99rclocal' >> /etc/rc.d/rc.local

echo 'mv /etc/rc.d/rc.local.00 /etc/rc.d/rc.local' >> /etc/rc.d/rc.local

/bin/echo done

%end

%packages

@base

@core

@guest-desktop-agents

binutils

chrony

ftp

gcc

kernel-devel

make

open-vm-tools

patch

python

%end

6.      关闭防火墙,查看服务状态

[root@localhost ~]# systemctl stop firewall

[root@localhost ~]# systemctl status firewall

firewall.service

   Loaded: not-found (Reason: No such file or directory)

   Active: inactive (dead)

[root@localhost ~]#

查看DHCP状态

KICKSTACK+PXE无人值守安装系统_第51张图片

查看xinetd状态

KICKSTACK+PXE无人值守安装系统_第52张图片

查看tftp端口

image.png

查看ftp状态

KICKSTACK+PXE无人值守安装系统_第53张图片

四.测试

KICKSTACK+PXE无人值守安装系统_第54张图片


 

KICKSTACK+PXE无人值守安装系统_第55张图片

KICKSTACK+PXE无人值守安装系统_第56张图片

KICKSTACK+PXE无人值守安装系统_第57张图片

上面是服务器DHCP服务状态,可以看到dhcpack on 192.168.65.6 ,被MAC00:0C:29:23:FD:8F的客户机获取到了

如下客户机的MAC地址

00:0C:29:23:FD:8F

KICKSTACK+PXE无人值守安装系统_第58张图片

KICKSTACK+PXE无人值守安装系统_第59张图片

安装完成,自动进入登陆界面

KICKSTACK+PXE无人值守安装系统_第60张图片