1.简介
1.1kickstart
是一种无人值守的安装方式。它的工作原理是在安装过程中记录人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在自动安装过程中出现要填写参数的情况,安装程序首先会去查找ks.cfg文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便会弹出对话框让安装者手工填写。所以,如果ks.cfg文件涵盖了安装过程中所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处下载ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启/关闭系统,并结束安装。
1.2PXE工作过程
2.系统环境准备
[root@CentOS 7 ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@CentOS 7 ~]# uname -r
3.10.0-327.el7.x86_64
[root@CentOS 7 ~]# getenforce
Disabled
[root@CentOS 7 ~]# ip a
1: lo:
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0:
link/ether 00:0c:29:40:1a:4e brd ff:ff:ff:ff:ff:ff
inet 10.0.0.201/24 brd 10.0.0.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe40:1a4e/64 scope link
valid_lft forever preferred_lft forever
3: eth1:
link/ether 00:0c:29:40:1a:58 brd ff:ff:ff:ff:ff:ff
inet 172.16.1.201/24 brd 172.16.1.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe40:1a58/64 scope link
valid_lft forever preferred_lft forever
[root@CentOS 7 ~]# hostname
CentOS 7
[root@CentOS 7 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
3.部署DHCP服务
3.1安装dhcp
[root@CentOS 7 ~]# yum -y install dhcp
3.2修改DHCP配置文件
[root@CentOS 7 ~]# cat /etc/dhcp/dhcpd.conf
subnet 172.16.1.0 netmask 255.255.255.0 {
range 172.16.1.100 172.16.1.199; ---可分配的IP地址池
option subnet-mask 255.255.255.0; ---子网掩码
default-lease-time 21600; ---默认deIP租用期限
max-lease-time 43200; ---最大限制的IP租用期限
next-server 172.16.1.201; ---告知客户端TFTP服务器的IP
filename "/pxelinux.0"; ---告知客户端从TFTP根目录下载pexlinux.0
}
3.3启动服务
[root@CentOS 7 ~]# systemctl start dhcpd
4.部署TFTP服务
4.1安装tfpt
yum install -y tftp-server
4.2挂在系统镜像
mkdir -p /var/www/html/CentOS7
mount /dev/cdrom /var/www/html/CentOS7
4.3从镜像中找到相关的配置文件
cp -a /var/www/html/CentOS7/isolinux/* /var/lib/tftpboot
mkdir -p /var/lib/tftpboot/pxelinux.cfg
cp /var/www/html/CentOS7/isolinux/isolinux.cfg /var/lib/tftpboot/pexlinux.cfg/default-lease-time
4.4编辑default文件(PXE引导文件)
cat /var/lib/tftpboot/pxelinux.cfg/default
default ks
prompt 0
label ks
kernel vmlinuz
append initrd=initrd.img ks=http://172.16.1.201/ks_config/CentOS7-ks.cfg net.ifnames=0 biosdevname=0 ksdevice=eth1
4.6启动tftp服务
systemctl start ftfp.socket
5.部署HTTP服务
5.1安装http
yum -y install httpd
5.2编写KS文件
cat /var/www/html/ks_config/CentOS7-ks.cfg
# Kickstart Configurator for CentOS 7 by fengyuu
install ---安装
url --url="http://172.16.1.201/CentOS7/" ---系统文件地址
text ---文本界面安装
lang en_US.UTF-8 ---语言
keyboard us ---键盘
zerombr ---清空mbr
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" ---引导加载程序参数
network --bootproto=static --device=eth0 --gateway=10.0.0.254 --ip=10.0.0.7 --nameserver=223.5.5.5 --netmask=255.255.255.0 --activate ---eth0网络配置
network --bootproto=static --device=eth1 --ip=172.16.1.7 --netmask=255.255.255.0 --activate ---eth1网络配置
network --hostname=Cobbler ---主机名
#network --bootproto=dhcp --device=eth1 --onboot=yes --noipv6 --hostname=CentOS7
timezone --utc Asia/Shanghai ---时区
authconfig --enableshadow --passalgo=sha512 ---验证配置
rootpw --iscrypted $6$X20eRtuZhkHznTb4$dK0BJByOSAWSDD8jccLVFz0CscijS9ldMWwpoCw/ZEjYw2BTQYGWlgKsn945fFTjRC658UXjuocwJbAjVI5D6/ ---root密码(123456),使用grub-crypt生成
clearpart --all --initlabel ---清空分区
part /boot --fstype xfs --size 1024 ---分区/boot
part swap --size 1024 ---分区swap
part / --fstype xfs --size 1 --grow ---分区
firstboot --disable ---关闭一系列服务
selinux --disabled
firewall --disabled
logging --level=info ---日志记录级别
reboot ---重启
%packages ---包组
@^minimal
@compat-libraries
@debugging
@development
tree
nmap
sysstat
lrzsz
dos2unix
telnet
wget
vim
bash-completion
%end
%post ---安装完执行命令
systemctl disable postfix.service
%end --- 结束
5.3启动httpd服务
systemctl start httpd.service
5.4本地检查
curl http://172.16.1.201/CentOS7
6.无人值守安装