本次实验环境

操作步骤:

1.下载安装:  syslinux   dhcp   httpd  tftp-server

1)yum -y install syslinux(从中得到pxelinux.0文件)

2)yum -y install dhcp

3)yum -y install httpd

4)yum -y install tftp-server

5)yum -y install xinetd(和tftp有关)

也可以一次安装:yum -y install syslinux dhcp  httpd   tftp-server  xinetd

 

2.下载安装:system-config-kickstart  主要用来生成  自动装机的配置文件  ks.cfg  文件

3.进入/var/www/html创建一个sys-centos 的 目录用来存放从 CentOS官网下载来的 镜像

---->  cd  /var/www/html

---->  sudo mkdir sys-centos

4.到CentOS官网下载 centos  镜像文件存放在/opt

 

CentOS-7-x86_64-Minimal-1611.iso(现在应该是到CentOS-7-x86_64-Minimal-1708.iso的了)

5.在我们的系统里面 创建一个目录用于挂载 centos 镜像文件

---> mkdir  /mnt/image

----> sudo mount -o loop /opt/CentOS-7-x86_64-Minimal-1611.iso   /mnt/image

----> cd  /mnt/image  


6.将如上的全部内容拷贝到 /var/www/html/sys-centos  里面

---> sudo cp -av /mnt/image/* /var/www/html/sys-centos

/var/www/html/sys-centos  里面的内容应该和上图的内容一样

 

7.编辑tftp 配置文件:

---> sudo vi /etc/xinetd.d/tftp

 

将里面的内容更改成如下的内容:

service   tftp {

secket_type       = dgram

protocol          = udp

wait             = yes

user             = root

server           = /usr/sbin/in.tftpd

server_args      = -s  /var/lib/tftpboot  -c  (/var/lib/tftpboot 就是你tftpboot目录的所在地)

disable         = no  (这里默认的是yes ,一定要改成 no,这样tftp服务才是使能的)

per_source      = 11

cps            = 100 2

flags           = IPv4

}


8.更改配置dhcp文件

--> sudo su

---> vi /etc/dhcp/dhcpd.conf

更改内容如下:

allow booting;

allow bootp;

ddns-update-style interim;

ignore client-updates;

subnet 192.168.10.0(网段号)  netmask 255.255.255.0(必要的名词解释参看下面的内容){

option routers       192.168.10.255;

option subnet-mask   255.255.255.0;

option domain-name-servers 114.114.114.114,8.8.8.8;

range dynamic-bootp  192.168.10.180  192.168.10.220;(动态分配ip的范围)

default-lease-time  21600;

max-lease-time     43200;

next-server        192.168.10.20;(服务器ip)

filename          “pxelinux.0”;


}

 

 

默认的/etc/dhcpd.conf含义如下:

 

ddns-update-style interim; //设置dhcp互动更新模式

忽略客户端更新

 subnet 192.168.12.0 netmask 255.255.255.0 {

设置子网申明

 # --- default gateway

设置客户端默认网关

设置客户端子网掩码

设置NIS域

设置DNS域

设置DNS服务器地址

设置时间偏差

 # option ntp-servers 192.168.12.1;

 # option netbios-name-servers 192.168.12.1;

 # --- Selects point-to-point node (default is hybrid). Don't change this unless

 # -- you understand Netbios very well

 # option netbios-node-type 2;

设置地址池

设置默认租期,单位为秒

设置客户端最长租期,单位为秒

 # we want the nameserver to appear at a fixed address

以下设定分配静态IP地址,不多做解释。

 next-server marvin.RedHat.com;

 hardware ethernet 12:34:56:78:AB:CD;

fixed-address 207.175.42.254;

 }

 }

就用默认的都可以正常工作了,但是我们还可以根据我们的需要来进行更改。

其他说明:

可以限定分配的IP地址范围。

如果想给某IP分配固定的IP地址,修改host 那一项,把网卡的Mac地址和IP进行绑定,就是最后那一段,改为相应的就可以了。

在subnet里定义的网段要与你的网卡IP所处网段一致,也就是说比如你的网卡是192.168.0.x,而dhcp服务却为10.1.1.0的subnet提供服务是不行的,是启动不了的

 

9.复制必要的文件到 /var/lib/tftpboot   目录下

1)首先使用命令rpm -ql syslinux  查看安装的软件syslinux  的情况找到pxelinux.0 文件的所在路径

---> cd /var/lib/tftpboot

---> sudo cp -av /usr/share/syslinux/pxelinux.0  ./   将开机识别文件pxelinux.0  拷贝到/var/lib/tftfboot当前目录下

---> sudo  cp -av /var/www/html/sys-centos/isolinux/* /var/lib/tftpboot

--->  sudo mkdir pxelinux.cfg

拷贝文件并重命名

----> sudo cp isolinuc.cfg  /pxelinux.cfg/default  (这就是开机客户端识别出服务器并在自动分配IP后要读取的 配置文件,告诉客户端去哪里下载内核文件)

2)对defaut文件进行更改

找到这一行:

label linux

  menu label ^Install CentOS Linux 7

  kernel vmlinuz

  append initrd=initrd.img repo=http://192.168.0.110/sys-centos ks=http://192.168.0.110/sys-centos/ks.cfg

 

 

 

10.   采用kickstart  生成我们重要的装机 自动执行文件

建议 kickstart安装到  CentOS desktop 上, 因为kickstart是基于 X  windserver的

如果安装在CentOS   minimal 上,测还要安装 X  server

--->  system-config-kickstart

1)选择安装 语言 键盘类型 所在区域时间 设置root 密码 装机的目标平台

 

自动安装centos7脚本 centos 自动安装_文件系统

2)配置安装模式 :选择从什么地方安装

自动安装centos7脚本 centos 自动安装_文件系统_02

我们的内核文件存放的目标机器的ip及其路径

内核文件存放的目标机ip:http://192.168.10.20

内核文件存放的路径(/var/www/html/c68):c68

 

3)bootloader options

 

自动安装centos7脚本 centos 自动安装_centos_03

 

4)给要安装的机器分配磁盘空间

 

自动安装centos7脚本 centos 自动安装_文件系统_04

注意:   1  是表示把最后剩余的磁盘空间 分配给最后一块

 

 

5)网络配置

 

自动安装centos7脚本 centos 自动安装_centos_05

自动安装centos7脚本 centos 自动安装_自动安装centos7脚本_06

6)关闭防火墙

 

自动安装centos7脚本 centos 自动安装_文件系统_07

7)保存退出,并选择好保存路径

 

自动安装centos7脚本 centos 自动安装_centos_08

10.找到刚才生成的ks.cfg文件

在末尾添加如下内容:

%packages

@^minimal

@core

kexec-tools


%end


%post

sed -i ‘s/set timeout=5/set timeout=0/g’ /boot/grub2/gurb.cfg


%end


保存退出


11.检测我们刚才生成的ks.cfg文件是否正确

----> ksavlidator   ks.cfg

将该文件移植到 /var/www/html/sys-centos    目录下

----> cp ks.cfg  /var/www/html/sys-centos

 

12.我们写个脚本 来统一启动所有的服务

---> cd  /etc

---> sudo mkdir mybash

---> cd mybash

---> touch server.sh

---> vi server.sh

添加如下的内容:

#!/bin/bash

service sshd restart

开启端口监听:

/sbin/iptables  -I INPUT -p tcp --dport  69  -j ACCEPT

/sbin/iptables  -I INPUT -p udp --dport  69  -j ACCEPT

/sbin/iptables  -I INPUT -p tcp --dport  80  -j ACCEPT

/sbin/iptables  -I INPUT -p tcp --dport  21  -j ACCEPT

/sbin/iptables  -I INPUT -p tcp --dport  22  -j ACCEPT


systemctl  satrt     httpd.service   (重启http服务)

systemctl  restart   xinetd    (重启tftp服务)

systemctl  restart   dhcpd    (重启dhcp服务)

systemctl  stop     firewalld  (关闭防火墙)

 

完毕保存退出

执行

---->   sudo chmod 777 server.sh 

---->   sudo /etc/mybash/server.sh

 

12.最后查看服务开启的情况

--->   netstat -tulanp

 

13.通过我别的电脑的浏览器进行访问我我们的 服务器目录,应该可以看到如下内容:说明我们的配置是正确的,现在就进行愉快的自动装机了

14. 我们将我们的要安装的目标机起动,按住F7  进入 BOIS   设置系统从网卡启动

接下来我们就可以静等喝茶了,系统自带安装,安装完毕自行启动