无人值守安装kickstart+ftp+dhcp+tftp

通过网络同时安装多台机器。

安装操作系统时分为2步,第一,引导这个系统,读取内核,调用系统的资源,比如硬盘,内存CPU等等(也是这个过程,第一次将镜像的内容加载到装系统的机器的内存中)。第二,调用镜像(第二次调用镜像),执行安装配置(配置在kx.cfg文件中写的)。

需要用到的技术有:、
dhcp:给被安装节点提供IP、等网络资源;指向tftp-server的地址;
tftp:给被安装节点提供引导文件,用于安装,包括 内核 驱动文件 等
ftp :给被安装节点提供安装源和安装索引文件
(ftp可以换成http服务,比如apache作为安装的源,软件yum源。操作方法和ftp的基本一样。)
yum :提供软件安装源

如果安装的话网卡要有pex芯片,并且多块网卡插网线要插编号为1的网卡。

PEX的工作工程
在这里插入图片描述
vmlinuz 就是内核文件
启动内核之后就是读取:
initrd.img 驱动文件 和
isolinux.cfg 引导菜单(索引)文件

引导菜单文件控制的就是安装前的那个界面,如下图。
这个就是isolinux.cfg文件控制的界面

在isolinux.cfg 引导菜单(索引)文件里写入了ftp的地址和共享目录,ftp共享的就是linux系统的镜像,调用镜像和ks.cfg文件就可以自动安装了。

其实那个ks.cfg文件可以手写,系统安装后会自动创建,就在/root目录下边,名字是这个anaconda-ks.cfg。打开之后就能看到,这里都是自己曾经配置的内容,根据这个文件就可以修改符合自己要求的ks.cfg文件了。

首先用一台机器做服务端,然后就可以用这台机器安装多台服务器了。

这台服务端的服务器就叫他S1吧。

S1 的设置和操作:

1、安装软件,dhcp , vsftp , tftp-server , syslinux , xinetd 。(并进行配置,其中DHCP的配置要加入tftp的地址网卡引导文件的名字也就是pxelinux.0 ,不指定目录是因为默认在tftpboot目录下,这个目录也就是tftp的共享目录。)

2、把一个可用的镜像挂载到vsftp 的共享目录。这一步的作用是分享出镜像。供客户机使用。

3、再将pxelinux.0拷贝到tftp共享目录下。这个是提供pxelinux.0文件,获取网卡信息,就是上文说的那个tftpboot目录。

4、将isolinux 目录下的所有文件拷贝到/var/lib/tftpboot 目录。这一步的作用是提供内核文件等。

5、在tftp共享目录下创建pxelinux.cfg目录,这个是固定写法。然后将isolinux.cfg引导菜单文件拷贝到这个目录下,进行修改。

6、创建ks.cfg文件,并和引导菜单文件的内容相符。

7、然后启动服务端所有服务,开客户机进行无人值守安装。

具体配置如下:

172.16.12.56 作为服务端。

1、安装软件并配置

[root@localhost ~]# yum install vsftpd tftp-server xinetd syslinux dhcp -y
//yum源就不在这里细说了,直接安装

DHCP的配置:
具体的就不细说了
可以看这个DHCP的介绍

  1 #
  2 # DHCP Server Configuration file.
  3 #   see /usr/share/doc/dhcp*/dhcpd.conf.example
  4 #   see dhcpd.conf(5) man page
  5 #
  6 # dhcpd.conf
  7 #
  8 # Sample configuration file for ISC dhcpd
  9 #
 10 
 11 # option definitions common to all supported networks...
 12 option domain-name "ks-server";
 13 option domain-name-servers 8.8.8.8;
 14 
 15 default-lease-time 600;
 16 max-lease-time 7200;
 17 
 18 log-facility local7;
 19 
 20 subnet 172.16.0.0 netmask 255.255.0.0 {
 21   range 172.16.12.100 172.16.12.200;
 22   option routers 172.16.0.254;
 23   option broadcast-address 172.16.255.255;  //这个是广播地址
 24   next-server 172.16.12.56;  //这个就是tftp服务的地址,就用本机来做tftp的服务了,一机多能.......
 25   filename "pxelinux.0";   //这个就是上边说的网卡引导文件
 26 }

启动服务

[root@ks-server ~]# systemctl restart dhcpd
[root@ks-server ~]# netstat -antlup | grep dhcpd
udp        0      0 0.0.0.0:67              0.0.0.0:*                           6435/dhcpd 

配置tftp:

[root@ks-server ~]# vim /etc/xinetd.d/tftp 
service tftp
{
    socket_type     = dgram
    protocol        = udp
    wait            = yes
    user            = root
    server          = /usr/sbin/in.tftpd
    server_args     = -s /var/lib/tftpboot
    disable         = no   <--------这个原来是yes改成no
    per_source      = 11
    cps         = 100 2
    flags           = IPv4
}

启动服务

[root@ks-server ~]# systemctl restart xinetd 
[root@ks-server ~]# netstat -antlup | grep xinetd
udp        0      0 0.0.0.0:69              0.0.0.0:*                           6791/xinetd

启动vsftp

[root@ks-server ~]# systemctl restart vsftpd
[root@ks-server ~]# netstat -antlup | grep vsftpd
tcp6       0      0 :::21                   :::*                    LISTEN      6854/vsftpd 

ftp默认就可以匿名下载,不用配置额外的。

2、挂载镜像

[root@ks-server ~]# cd /var/ftp/
[root@ks-server ftp]# mkdir centos7
[root@ks-server ftp]# mount -o loop /dev/sr0 /var/ftp/centos7/
然后将mount 这一条,写到/etc/rc.local文件中
再执行这一条
chmod +x /etc/rc.d/rc.local

3、拷贝pxelinux.0文件

[root@ks-server ftp]# find / -name "pxelinux.0"
/usr/share/syslinux/pxelinux.0
[root@ks-server ftp]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

4、拷贝内核等文件

[root@ks-server lib]# cp /var/ftp/centos7/isolinux/* /var/lib/tftpboot/

5、创建pxelinux.cfg目录

[root@ks-server tftpboot]# mkdir pxelinux.cfg
[root@ks-server tftpboot]# cp isolinux.cfg pxelinux.cfg/default

写这个引导菜单文件:

menu separator # insert an empty line
menu separator # insert an empty line
###############下边是修改的##################
label auto install C7
  menu label ^Auto Install CentOS 7
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=ftp://172.16.12.56/centos7 inst.ks=ftp://172.16.12.56/pub/ksC7464.cfg quiet

//inst.stage2指定的就是光盘镜像文件   inst.ks指定的就是ks文件
//前边这个指定了ks.cfg文件可以自动安装

label install C7
  menu label  install CentOS 7
  menu default
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=ftp://172.16.12.56/centos7  quiet

//这个没指定ks.cfg文件,只能手动安装

  ################从这往后到menu end中间的都可以删掉###############
  
menu end

如果用的是http,协议,apache软件来做的源的话,要写http://172.16.12.56+目录名

可以点这里看apache做yum仓库和镜像的方法

6、ks.cfg文件

要在上边那个配置文件的位置才行,要相互匹配。

7、测试客户机

客户机要分配至少2个G的内存,因为要将所有的东西加载到内存中才能装啊。这些文件的容量大小大概有2G多。

直接裸机开启,然后就能看到DHCP分配的IP和写在文件的内容了。
在这里插入图片描述
选上边的无人值守自动安装,然后等着就好了。

在这里插入图片描述

ks-cfg文件的制作方法。

1、手动编辑

2、图形化软件安装

ks.cfg文件可以用软件直接生成,如果要用这个软件必须用到有图形化的CentOS。

软件的名字叫做。“system-config-kickstart”,如果没有要安装。

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

启动软件

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

启动后会弹出图形化的界面配置。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
Grow to maximum of (MB),设置上限,自动增长到最大,这个不用选。
下边的Force to be a primary partition (asprimary) 自动设置为主分区,这个也不用,我们都是手动添加的,手动设置分区的大小和属性等等。

分区是要注意分区的文件系统。

在这里插入图片描述网卡信息,这个最好选择eth0 编号的网卡
在这里插入图片描述

在这里插入图片描述
这个身份验证信息不用改什么,反正正常安装时也没改什么。

在这里插入图片描述
在这里插入图片描述
这个selinux一般都会选择直接关闭。

防火墙 不会全部关闭,一般会打开防火墙,只开放需要的端口。在这里我就关了,省事。。QAQ
在这里插入图片描述如果出现这个就是找不到yum源了,yum源的仓库名要改成[development]。然后再进入就能看到了。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述然后点击这个save保存。

在这里插入图片描述选择保存的名字和位置。

然后就能在选的位置找到ks.cfg文件了。

在这里插入图片描述可以看到URL那里,我用的是ftp协议所以这里是ftp的地址,如果用的是http协议搭了个apache的源,在上边哪里就要选http的地址和目录。

语法检查,查看有没有不符合语法的。

[root@localhost ~]# ksvalidator ks74-ftp.cfg 
[root@localhost ~]# 

注:
1、作为服务端的S1要关闭selinux和firewalld。
2、注意ks.cfg文件和isolinux.cfg文件的匹配,主要是镜像的匹配。
3、centos7开始分区是自动变为lv的,而kickstart不能做这个操作,他都是标准分区的。

ks生成的分区。标准分区。
在这里插入图片描述

正常安装的分区

在这里插入图片描述
如果要做到这种程度的话就要二次修改kickstart生成的ks文件,按照上边说的,将root目录下的那个分区内容信息修改一下ks文件就可以了。

就这一块
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值