什么是 Kickstart Installations?

Kickstart Installations(发动装置),完成无人值守主动化装置

Kickstart files(发动文件),装置前准备好,可用来主动履行装置。它能够保存在单个服务器体系上,支持一对多:即单个文件在多台计算机上装置 CentOS

发动装置的过程

发动装置的办法:DVD,NFS,FTP,HTTP/HTTPS,Hard drive(硬盘)

过程:1、创立发动文件

2、使 Kickstart files 在可移动媒体、硬盘驱动器或网络方位上可用

3、创立发动介质(装置源),用于开始装置

4、使装置源可用

5、发动 Kickstart Installations

  • 创立发动文件

如果有装置好的 CentOS,在/root目录下就会生成一个anaconda-ks.cfg文件。

#为需 root 用户履行;$为恣意用户履行,以下均以此规范

一:能够依照对 CentOS 的要求经过 ios 镜像先装一下,这样就能够拿到一份不怎么需求修正的 Kickstart 配置文件

# ll /root  # 你应该能够看到 anaconda-ks.cfg 文件

二:运用Kickstart Configuration Tool来创立和修正 Kickstart 配置文件

# yum install system-config-kickstart    # 装置K...C...Tool

# system-config-kickstart    # 发动K...C...Tool

验证 Kickstart 配置文件

运用 ksvalidator 验证 Kickstart 的配置文件语法

# yum install pykickstart

$ ksvalidator /path/to/kickstart.ks# 途径为kcikstart文件的途径

Kickstart 配置文件参阅

文件(ks.cfg)保存一下,后边会用到

#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --plaintext 123456
# Use network installation
url --url="http://192.168.1.101/CentOS/7/repo"
# System language
lang en_US
# 用户协议
eula --agreed
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# SELinux configuration
selinux --disabled
# Firewall configuration
firewall --disabled
# Network information
network  --bootproto=dhcp --device=ens33
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai --isUtc
user --groups=wheel --name=admin --password=$6$dFOvxfykHlSQW0Al$lYq0jhdvX0MzJsfF5poagu2tRGdb9
//xrzTIvfF6JKE1q2yflO19nGZf/A77/Pyp0vIjmk7f31gFmrtrypxBa/ 
--iscrypted --gecos="admin"
# System bootloader configuration
bootloader --location=none
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all
# Disk partitioning information
part /boot --fstype="xfs" --size=1024
part swap --fstype="xfs" --size=2048
part / --fstype="xfs" --grow --size=1
%packages
...
...
...
%end

创立发动介质

Kickstart files 必须放置在以下方位之一

  • 在可移动介质上,如 DVD 或 USB 闪存驱动器

    PS:将完好 iso 刻录到 DVD 上,并设置计算机发动衔接DVD

  • 衔接到装置体系的硬盘上

    PS:将完好 iso 放在 硬盘 / USB 上装置体系

  • 在从装置体系可接触到的网络共享上

    PS:将 iso 镜像或装置树复制到可从装置体系拜访的网络上,经过网络进行装置

使 Kickstart files 可用

这里挑选基于网络的办法:PXE 网络服务器发动,从网络共享下载 Kickstart files,远程存储库下载文件中指定的软件

建立镜像源

# yum install httpd
# systemctl start httpd
# systemctl enable httpd 
# cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system  #挑选性履行

创立一个文件夹, 挂在 iso 镜像

# mkdir -p /var/www/html/CentOS/7/repo
# mount -r /dev/sr0 /var/www/html/CentOS/7/repo

建立 tftp server

# yum install tftp-server
# yum install tftp
# yum install xinetd

# vi /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  #将此值改为no,表明敞开此服务
  per_source   = 11
  cps       = 100 2
  flags      = IPv4
}

# systemctl enable tftp
# systemctl start tftp
# systemctl status tftp 
# firewall-cmd --add-service=tftp # 封闭防火墙
# vi /etc/selinux/config # 

封闭SElinux, 将 SELINUX=enforcing 改为 SELINUX=disabled, 重启SElinux

配置 DHCP server

网络发动没地方配置 ip,只能主动获取

# yum install dhcp
# vi /etc/dhcp/dhcpd.conf
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
subnet 192.168.48.0 netmask 255.255.255.0 {
    range 192.168.48.10 192.168.48.100;
    option routers 192.168.48.1;
    class "pxeclients" {
        match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
        next-server 192.168.48.128;
        filename "pxelinux.0";
        }
} 
# systemctl start dhcpd
# systemctl enable dhcpd 
# systemctl status dhcpd

配置 PXE 发动文件

BIOS(Legacy)方法发动

# yum install syslinux
# mkdir -p /var/lib/tftpboot/pxelinux # tftp 默许目录为 /var/lib/tftpboot
# cp /path_to/syslinux/{pxelinux.0, vesamenu.c32 , menu.c32}  /var/lib/tftpboot/pxelinux 

创立发动菜单

# mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg
# vi /var/lib/tftpboot/pxelinux/pxelinux.cfg/default

添加发动选项:

default vesamenu.c32
timeout 100
label 1
menu label ^1)Install CentOS7 x86_64(KickStart)
kernel images/CentOS/7/vmlinuz
append initrd=images/CentOS/7/initrd.img ks=http://192.168.1.101/CentOS/7/ks.cfg 
label 2
menu label ^2)Install CentOS7 x86_64(Manual)
kernel images/CentOS/7/vmlinuz
append initrd=images/CentOS/7/initrd.img inst.repo=http://192.168.1.101/CentOS/7/repo

CentOSKickstart files

使装置源可用,默许发动菜单指定内核文件,没有就无法正常发动。

# mkdir -p /var/lib/tftpboot/pxelinux/CentOS/7/

# cp /path_to_x86_64_images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/images/CentOS/7/

PS:/path_to_x86_64_images:如果挂在途径不知道,经过 find / -name “pxeboot” 查找到pxeboot途径

发动 Kickstart Installations

设置 BIOS 发动为 PXE 发动,通常情况下按 “F12”

需求网络装置体系的机器和服务器接入互通网络环境, 就能够从网络装置 CentOS 了