本次实验环境
操作步骤:
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 密码 装机的目标平台
2)配置安装模式 :选择从什么地方安装
我们的内核文件存放的目标机器的ip及其路径
内核文件存放的目标机ip:http://192.168.10.20
内核文件存放的路径(/var/www/html/c68):c68
3)bootloader options
4)给要安装的机器分配磁盘空间
注意: 1 是表示把最后剩余的磁盘空间 分配给最后一块
5)网络配置
6)关闭防火墙
7)保存退出,并选择好保存路径
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 设置系统从网卡启动
接下来我们就可以静等喝茶了,系统自带安装,安装完毕自行启动