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: mtu 65536 qdisc noqueue state UNKNOWN 

    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: mtu 1500 qdisc pfifo_fast state UP qlen 1000

    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: mtu 1500 qdisc pfifo_fast state UP qlen 1000

    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.无人值守安装