一、简单概述

1.1 Kickstart 概述

对于网络安装系统,在linux 下面最熟悉的应该就是 Kickstart 以及 cobbler。写这篇文章的目的在于我公司目前使用的就是 Kickstart,所有操作系统的版本为 Centos 6.4,和个人的习惯不同,个人崇尚前沿技术以及由于以前做Docker相关,所有操作系统也是Centos 7.2以上版本,对于网络安装系统选择,个人也推荐使用 cobbler。好了,废话就不多说了,如果大家有兴趣可以参考cobbler相关文档,接下来我们就准备相关实验环境。

1.2 满足Kickstart安装系统的需求

  1) 网卡必须支持PXE引导;

2) 客户端需要有与Kickstart 通信的IP地址,这里一般都是通过DHCP自动分配IP地址来实现;

  3) 提供引导所需的文件,内核文件,内核镜像文件等,此时一般通过tftp-server等实现;

  4) kickstart文件,它主要实现自动化安装的过程,比如配置主机名、添加用户、安装系统后相关操作;

5) 提供安装源,一般就是NFS/ftp/httpd等;

总结:通过如上需求,我们就知道需要安装的相关服务,如DHCP/tftp-server/syslinux/kickstart/vsftpd等; 

二、配置Kickstart

2.1 环境准备

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# systemctl disable firewalld

[root@localhost ~]# getenforce
Permissive

2.2 准备安装源

提示:我这里是能出公网,所以就不配置私有yum原,如果不能出公网,根据自己环境配置yum源即可,这里过程就略;

2.3 安装DHCP服务

[root@localhost ~]# yum install dhcp ntpdate syslinux -y && ntpdate time.windows.com

###备份原始配置文件

cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak_$(date +%Y-%m-%d-%H-%M)

[root@localhost ~]# cat /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
log-facility local7; subnet 192.168.100.0 netmask 255.255.255.0 {
option routers 192.168.100.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.100.1;
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.100.60 192.168.100.100;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.100.1;
filename "pxelinux.0";
}

###在多网卡的情况下绑定网卡启动DHCP服务

[root@localhost pub]# cat /usr/lib/systemd/system/dhcpd.service
[Unit]
Description=DHCPv4 Server Daemon
Documentation=man:dhcpd(8) man:dhcpd.conf(5)
Wants=network-online.target
After=network-online.target
After=time-sync.target [Service]
Type=notify
ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid eno33554984 [Install]
WantedBy=multi-user.target

###启动服务

systemctl start dhcpd.service

systemctl enable dhcpd.service

2.4 安装ftp

yum install -y vsftpd

###挂载镜像

mount /dev/cdrom /mnt

cp -rf /mnt/* /var/ftp/pub/

提示:如果是光盘镜像可以这样挂载,mount /opt/CentOS-7-x86_64-Minimal-1511.iso /var/ftp/pub -o loop,但是如果你的ks.cfg文件也放到/var/ftp/pub目录下,注意不要被覆盖掉;

###查看相关内容

 ls /var/ftp/pub

###启动vsftp服务

systemctl start vsftpd
systemctl enable vsftpd 

2.5 tftp安装

yum install -y tftp-server tftp syslinux-tftpboot

cp /etc/xinetd.d/tftp /etc/xinetd.d/tftp.bak_$(date +%Y-%m-%d-%H-%M)

cat /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
}

###配置tftp-server

cp -rf /usr/share/syslinux/* /var/lib/tftpboot

mkdir /var/lib/tftpboot/pxelinux.cfg

mkdir /var/lib/tftpboot/centos7
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/centos7 touch /var/lib/tftpboot/pxelinux.cfg/default
chmod 755 /var/lib/tftpboot/pxelinux.cfg/default [root@localhost ~]# cat /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
prompt 1
timeout 10 menu title ########## PXE Boot Menu ########## label 1
menu label ^1) Install CentOS 7 x64 with Local Repo
menudefault
kernel centos7/vmlinuz
append initrd=centos7/initrd.img text ks=ftp://192.168.100.1/pub/ks.cfg label 2
menu label ^2) Install CentOS 7 x64 with http://mirror.centos.org Repo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=http://mirror.centos.org/centos/7/os/x86_64/ devfs=nomount ip=dhcp label 3
menu label ^3) Install CentOS 7 x64 with Local Repo using VNC
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=ftp://192.168.100.1/pub devfs=nomount inst.vnc inst.vncpassword=password 

2.6 配置Kickstart

[root@localhost ~]# cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg

[root@localhost ~]# cat /var/ftp/pub/ks.cfg
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Install OS instead of upgrade
install
# Use network installation
url --url="ftp://192.168.100.1/pub"
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8 # Network information
network --bootproto=dhcp --device=eno16777736 --onboot=yes --ipv6=auto
network --hostname=localhost.localdomain # Root password
rootpw --iscrypted $6$JqUyORpkn8xu8.i/$60aNcdZwMEjSkRgB3nqDrNw0sWJ7PYTUM/EKjvZWYgD8jkfiuEU8vjhI/BqVYcJvs6UiOpf5GtH3jwBAfhBSP0
# System timezone
timezone Asia/Shanghai --isUtc
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel
# SELinux configuration
selinux --disabled %packages
@^minimal
@core
kexec-tools %end %addon com_redhat_kdump --enable --reserve-mb='auto' %end

###检查是否存在错误

yum install pykickstart
ksvalidator /var/ftp/pub/anaconda-ks.cfg

###启动相关服务

systemctl restart ftpd

systemctl restart vsftpd

systemctl restart dhcpd

相关链接:https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/sect-kickstart-syntax.html

相关链接:http://www.tecmint.com/install-pxe-network-boot-server-in-centos-7/

CentOS 7.2 下 PXE+kickstart 自动安装系统的更多相关文章

  1. 【转载】CentOS 6.4下PXE+Kickstart无人值守安装操作系统

    [转载]CentOS 6.4下PXE+Kickstart无人值守安装操作系统 转自:CentOS 6.4下PXE+Kickstart无人值守安装操作系统 - David_Tang - 博客园 http ...

  2. CentOS 6.5下PXE+Kickstart无人值守安装操作系统centos7.3

    CentOS 6.5下PXE+Kickstart无人值守安装操作系统centos7.3 一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行 ...

  3. [转]CentOS 6.4下PXE+Kickstart无人值守安装操作系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  4. CentOS 6.4下PXE+Kickstart无人值守安装操作系统 转

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  5. CentOS 6.6下PXE+Kickstart无人值守安装操作系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  6. 【复杂】CentOS 6.4下PXE+Kickstart无人值守安装操作系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  7. CentOS 6.9下PXE+Kickstart无人值守安装操作系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  8. linux系统PXE+Kickstart自动安装系统

    一.PXEPXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服 ...

  9. CentOS 6.4下PXE+Kickstart无人值守安装操作系统

    http://www.cnblogs.com/mchina/p/centos-pxe-kickstart-auto-install-os.html

随机推荐

  1. 转:UIView的sizeToFit与sizeThatFits

    UILabel经常用到的方法- (void)sizeToFit- (CGSize)sizeThatFits:(CGSize)size解释如下: sizeToFit会自动调用sizeThatFits方法 ...

  2. 科学计算三维可视化---Mlab基础(常用控制函数)

  3. angularJS__v1.5.6点击同一个菜单刷新

    针对angularjs的1.0版本,点击菜单不刷新问题,只需在配置路由时,路由路径添加“/”,如,点击 标签时,就会刷新,

  4. 容斥 或者 单调栈 hihocoder #1476 : 矩形计数 和 G. Snake Rana 2017 ACM Arabella Collegiate Programming Contest

    先说一个简单的题目(题目大意自己看去,反正中文):hihocoder上的:http://hihocoder.com/problemset/problem/1476 然后因为这个n和m的矩阵范围是100 ...

  5. Redis学习十一:Redis的Java客户端Jedis

    一.安装JDK tar -zxvf jdk-7u67-linux-i586.tar.gz vi /etc/profile 重启一次Centos 编码验证 二.安装eclipse 三.Jedis所需要的 ...

  6. Java并发编程原理与实战三十八:多线程调度器(ScheduledThreadPoolExecutor)

    在前面介绍了java的多线程的基本原理信息:线程池的原理与使用 本文对这个java本身的线程池的调度器做一个简单扩展,如果还没读过上一篇文章,建议读一下,因为这是调度器的核心组件部分. 我们如果要用j ...

  7. 重新找回spyder3-editor 里的code completion

    升级到spyder3之后, 突然丢失了code autocompletion在editor context里. 觉得太不爽了. 虽然在ipython窗格里TAB键的自动完成功能依然完好. 仔细观察 T ...

  8. 不忘初心,方得始终——NOIP2016前的感悟

    不忘初心,方得始终 袛园精舍钟声响,奏诸世事本无常.沙罗双树失花色,盛者转衰如沧桑.骄者难久,恰如春宵一梦.猛者遂灭,好似风前之尘.    ——题记   人生中最令人恐惧的恐怕就是选择了,现在的你拥有 ...

  9. mysql手工注入步骤

    1.一般用 '  "  ) 等符号来闭合,再用%23(即#)来注释后面语句. 2.查找数据库,先用order by n猜字段,再用union select 1,2,3 ...n%23来查询. ...

  10. Python练习-os模块练习-还算是那么回事儿

    # 编辑者:闫龙 # 小程序:根据用户输入选择可以完成以下功能: # 创建文件,如果路径不存在,创建文件夹后再创建文件 # 能够查看当前路径 # 在当前目录及其所有子目录下查找文件名包含指定字符串的文 ...