KICKSATRT无人值守

运行原理:

 说明:图片来自其他博文

前言:原理与概念

什么是PXE

  严格来说,PXE 并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动

  协议分为 client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE client 调入内存执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。

  运行 PXE 协议需要设置 DHCP 服务器 和 TFTP 服务器。DHCP 服务器用来给 PXE client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。(next-server -- 指定TFTP -- 下一跳 -- 数据|请求下一步去哪?)

  此外,在 PXE client 的 ROM 中,已经存在了 TFTP Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。

什么是KickStart

  KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数(Root密码,分区,时区,语言等等),并生成一个名为 ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找 KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。

  这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。

1、环境准备

1.1.服务器信息:

IP

hostname

作用

安装服务

网卡模式

192.168.247.102

server

无人值守

 

nat

说明:网卡尽肯能避免使用桥接 -- 桥接和本地路由器冲突

1.2.前期准备:

执行 PXE + KickStart安装需要准备内容:

• DHCP 服务器用来给客户机分配IP;

• TFTP 服务器用来存放PXE的相关文件,比如:系统引导文件pxelinux.0  -- 需要安装syslinux提供,看作一个小linux系统,用于linux便捷安装;

• FTP |http|NFS服务器用来存放系统安装文件;

• KickStart所生成的ks.cfg配置文件;

• 带有一个 PXE 支持网卡的将安装的主机;

[root@server ~]# timedatectl set-timezone Asia/Shanghai

[root@server ~]# date

[root@server ~]# systemctl enable chronyd

[root@server ~]# systemctl restart chronyd

[root@server ~]# chronyc sources -v

[root@server ~]# sed '7s/enforcing/disabled/g' /etc/selinux/config  -i

[root@server ~]# systemctl stop firewalld

[root@server ~]# systemctl disable firewalld

[root@server ~]# iptables -F

[root@server ~]# setenforce 0

1.3.安装基本服务

102上操作)

1.3.1.VSFTP

[root@server ~]# yum install vsftpd -y

[root@server ~]# systemctl enable vsftpd

root@server ~]# systemctl start vsftpd

1.3.2.TFTP

TFTP (Trivial File Transfer Protocol),中译简单文件传输协议或小型文件传输协议. 大家一定记得在2003年8月12日全球爆发冲击波(Worm.Blaster)病毒,这种病毒会监听端口69,模拟出一个TFTP服务器,并启动一个攻 击传播线程,不断地随机生成攻击地址,进行入侵。另外tftp被认为是一种不安全的协议而将其关闭,同时也是防火墙打击的对象,这也是有道理的。tftp 在嵌入式linux还是有用武之地的。需要打开防火墙,允许tftp访问网络。

TFTP -- 属于UDP -- 用于小文件的传输 -- 只要局域网连接,共享目录上有这个文件 进行传输

[root@server ~]# yum install tftp tftp-server xinetd -y

[root@server ~]# cat /etc/xinetd.d/tftp|grep -v '#'

service tftp

{

        socket_type             = dgram

        protocol                = udp

        wait                    = yes

        user                    = root

        server                  = /usr/sbin/in.tftpd

        server_args             = -s tftpboot -c   

        disable                 = no

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

}

[root@server ~]#

[root@server ~]# systemctl start xinetd #linux6必须使用xinetd

[root@server ~]# systemctl enable xinetd

[root@server ~]# systemctl start tftp

[root@server ~]# systemctl enable tftp

[root@server ~]# lsof -i :69  #检查69端口被哪个进程占用COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

xinetd  21244 root    5u  IPv4  89354      0t0  UDP *:tftp

[root@server ~]#

1.3.3.DHCP

[root@server ~]# yum install dhcp -y

DHCP服务器添加一张网卡,ip设置为192.168.247.104(只要是247网段都行)

方法一:快速配置:

[root@server ~]# ifconfig ens34 192.168.247.104/24

方法二:(本次实验使用方法)

参考我写的博客:https://www.cnblogs.com/tanshouke/p/12190525.html

[root@server ~]# cd /etc/sysconfig/network-scripts/

[root@server network-scripts]# cp -a ifcfg-ens32 ifcfg-ens34

[root@server network-scripts]# cat ifcfg-ens34

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO="static"

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=ens34

UUID=ae30d645-8c67-33c3-a166-b3587e09dbab

HWADDR=00:0c:29:e3:19:4b

DEVICE=ens34

ONBOOT=yes

IPADDR=192.168.247.104

PREFIX=24

GATEWAY=192.168.247.2

DNS1=8.8.8.8

DNS2=8.8.4.4

[root@server network-scripts]# service network restart

只保留一个subnet {。。。} ,取掉其它subnet,改成如下内容:

[root@server ~]# cat /etc/dhcp/dhcpd.conf

subnet 192.168.247.0 netmask 255.255.255.0 {

  range 192.168.247.105 192.168.247.110;

option routers 192.168.247.2;

  option subnet-mask 255.255.255.0;

  option domain-name "tansk.com";

  option domain-name-servers 8.8.8.8;

  default-lease-time 600;

  max-lease-time 7200;

  next-server 192.168.247.104;   #下一跳 | Tftp-server

  filename "pxelinux.0";  #引导文件 -- PXE启动? 硬盘启动?

}

[root@server ~]#

PXE环境OK,准备工作完成

 

2.配置使用PXE启动所需的相关文件

2.1.安装软件

[root@server ~]# yum -y install system-config-kickstart  syslinux

2.2.设置KICKSTART

[root@server ~]# mount  /dev/cdrom  /media/

[root@server ~]# mkdir  /tftpboot

[root@server ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/

[root@server ~]# cp  /media/images/pxeboot/initrd.img  /tftpboot/

[root@server ~]# cp /media/images/pxeboot/vmlinuz  /tftpboot/

[root@server ~]# mkdir -p /tftpboot/pxelinux.cfg

[root@server ~]# cp /media/isolinux/isolinux.cfg  /tftpboot/pxelinux.cfg/default

[root@server ~]# chmod 644  /tftpboot/pxelinux.cfg/default

修改default配置(两处)

[root@server ~]# vim  /tftpboot/pxelinux.cfg/default

 

append initrd=initrd.img inst.repo=ftp://192.168.247.104/pub inst.ks=ftp://192.168.247.104/ks.cfg

64行的意思是使安装程序通过FTP服务器访问kickstart文件。  /var/ftp

以上有关default配置文件的修改就是通过ftp服务器方式来访问kickstart文件。

其中第1:default linux表示指定默认入口名称;

2行:prompt 1prompt用来设置是否等待用户选择,1表示等待用户控制;

18232731label linux表示定义的引导入口,表示系统的不同安装方式,如第18行定义的入口表示图形安装。

配置文件修改完了,要开始自动安装,安装程序必须能访问kickstart文件。

有多种方法可访问kickstart文件,其中最常用的一种方法是通过网络服务器进行,

例如:ftp服务器、WEB服务器或NFS服务器,这种方法非常易于部署,并且也使管理更改变得十分简单。也可以通过USB磁盘、CDROM或本地硬盘。如果USBCDROM中的kickstart文件非常便于访问,只需将kickstart文件放置在用来开始安装的引导介质中。而使用DHCP服务器和TFTPPXE配置起来更为复杂。

使安装程序指向kickstart文件的书写格式如下:

ks=ftp://server/dir/file :ks=ftp://ftp服务器IP/ks.cfg

ks=http://server/dir/file :ks=http://http服务器IP/ks.cfg

ks=nfs:server:/dir/file :ks=nfs:nfs服务器IP:/var/ftp/pub/ks.cfg

ks=hd:device:/dir/file :ks=hd:sdb1:/kickstar-files/ks.cfg

ks=cdrom:/dir/file :ks=cdrom:/kickstart-files/ks.cfg

以上有关default配置文件的修改就是通过ftp服务器方式来访问kickstart文件。

 

2.2.将yum源配置为本地源

上面复制完数据和修改后:

利用ftp制作yum源仓库(共享给同网段使用)

[root@server ~]# umount /media/

[root@server ~]# mount -o loop -t iso9660 /dev/cdrom  /var/ftp/pub/

2.3.配置yum源

[root@server ~]# cd /etc/yum.repos.d/

[root@server yum.repos.d]# mkdir yum_backup/ -p

[root@server yum.repos.d]# mv * yum_backup/

[root@server yum.repos.d]# touch my.repo

[root@server yum.repos.d]# cat my.repo

[development]

name=my-centos7-dvd

baseurl=file:///var/ftp/pub

enabled=1

gpgcheck=0

[root@server yum.repos.d]#

[root@server yum.repos.d]# yum clean all

[root@server yum.repos.d]# yum makecache

[root@server yum.repos.d]# yum repolist

2.4.配置X服务

方法一:xminanger

方法二:xming(本次实验使用方法)

参考我写的博客:https://www.cnblogs.com/tanshouke/p/12190666.html

[root@server ~]# export DISPLAY=192.168.1.3:0.0

2.5.设置KICKSTART:

[root@server ~]# system-config-kickstart

设置基础信息:

安装模式:

 

引导模式:

 

设置分区:

 

网卡配置:

认证(保留默认)

SELinux与防火墙:

取消安装图形化:

脚本:

安装前的脚本,启动后的脚本(设置自动安装yum源)

 

 脚本内容:

rm -rf /etc/yum.repos.d/*

echo '[development]

name=my-centos7-dvd

baseurl=ftp://192.168.247.104/pub

enabled=1

gpgcheck=0' > /etc/yum.repos.d/rhel7.repo

保存退出:

2.6.设置最小化安装

ks文件最后添加(最小化安装,修改packages参数   

CentOS7

%packages --nobase

@core

%end

[root@kickstart ftp]# cat ks.cfg

#platform=x86, AMD64, or Intel EM64T

#version=DEVEL

# Install OS instead of upgrade

install

# Keyboard layouts

keyboard 'us'

# Root password

rootpw --iscrypted $1$SCJd/p8V$oT5hAWYjbfipPWQsbug7N/

# System language

lang en_US

# System authorization information

auth  --useshadow  --passalgo=sha512

# Use graphical install

graphical

# SELinux configuration

selinux --disabled

# Do not configure the X Window System

skipx

# Firewall configuration

firewall --disabled

# Network information

network  --bootproto=dhcp --device=eth0

# Reboot after installation

reboot

# System timezone

timezone Asia/Shanghai

# Use network installation

url --url="ftp://192.168.247.104/pub"

# System bootloader configuration

bootloader --location=mbr

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart --all --initlabel

# Disk partitioning information

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

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

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

%post --interpreter=/bin/bash

rm -rf /etc/yum.repos.d/*

echo '[rhel-source]

name=centos7

baseurl=ftp://192.168.247.104/pub

enabled=1

gpgcheck=0' > /etc/yum.repos.d/rhel7.repo

%end

%packages

@core

%end

[root@kickstart ftp]#

2.7.开启KICKSTART

[root@server ftp]# systemctl restart dhcpd tftp vsftpd

3.模拟客户端:

3.1.关闭VM-DHCP

(如果不关闭的话DHCP会受到干扰)

 

选择文件,新建虚拟机

 

 

 

 

3.2.无人值守:

(开启虚拟机即可全自动最小化安装,无需人为干扰)

猜你喜欢

转载自www.cnblogs.com/tanshouke/p/12746079.html