KICKSTART简介

时间:2019-04-29 03:17:25  来源:igfitidea点击:

什么是Kickstart?

Kickstart是一项功能,使您能够基于预定义的列表(kickstart文件)安装完整的操作系统。每当您在Red Hat Enterprise Linux,CentOS,Fedora或其他基于Red Hat的Linux发行版上安装操作系统时,您的安装选择都会自动记录在名为anaconda-ks.cfg的kickstart文件中。该文件位于root用户的本地目录:/root/anaconda-ks.cfg。

如果在执行安装后查看此文件,您将看到它反映了在安装过程中输入的条目。这些条目将是安装类型(新安装/升级),键盘和时区的目录设置,网络信息(例如dhcp或静态信息),磁盘分区信息,软件包选择等等。我们将更详细地介绍许多这些选项。

kickstart文件的主要功能是使管理员能够快速进行Linux的网络安装。另一个优点是,您可以基于经过验证的构建(标准构建配置)来创建服务器。如果必须频繁创建大量具有相同构建的服务器,则此功能非常有用。您甚至可以指定要在安装后运行的命令,例如创建新帐户。使用kickstart文件的通常方法是从导出的nfs目录中找到该文件或通过Web服务器使其可用,但是,还有其他选项可用。在以下示例中,我们将介绍使用nfs和Web服务器所涉及的过程。

在下面的示例中,我将使用VirtualBox作为测试环境,并使用CentOS 6.5作为Linux操作系统。在这里,我将创建一个服务器,该服务器将充当我们安装的nfs服务器和Web服务器。该服务器将包含定制的kickstart配置文件。

最小构建-NFS/Web服务器

对于将包含我们的kickstart文件的服务器,我选择使用最小的构建。提供了一个视频链接,该链接指示如何定义VirtualBox环境。在此示例中,此服务器将称为kicks01。我给了服务器1个CPU,512MB内存和8GB虚拟磁盘。对于联网,我已经进行了桥接连接。网桥连接将允许我的服务器与同一网络上的其他服务器通信。然后,该服务器将通过DHCP自动获取其IP地址。

可以从以下位置下载本示例中使用的安装映像:CentOS下载http://isoredirect.centos.org/centos/6/isos/x86_64/

对于最小服务器的构建,我将假定您之前已经安装了基本服务器配置。如果没有,请参考视频链接以快速了解所涉及的过程。

安装最小服务器

  1. 定义VirtualBox计算机
  2. 指定CPU数量,内存,虚拟磁盘大小和桥接
  3. 启动安装的网络类型
  4. 重新启动服务器
  5. 编辑/etc/sysconfig/network
  6. 修改主机名-添加了kicks01
  7. 编辑/etc/sysconfig/network-scripts/ifcfg-eth0- 更改onboot为yes
  8. 重新启动-服务器检查我们的更改-关闭-r现在
  9. 检查对网络/存储库的访问权限-yum repolist
  10. 检查IP地址-ip a s

安装NFS组件

  1. 安装NFS组件 yum install nfs-utils nfs-utils-lib -y
  2. 检查rpcbind守护程序服务的状态 service rpcbind status
  3. 启动rpcbind守护程序 service rpcbind start
  4. 设置rpcbind在系统重启时自动启动 chkconfig rpcbind on
  5. 检查NFS服务的状态 service nfs status
  6. 启动NFS service nfs start
  7. 将NFS设置为在系统重新引导时自动启动 chkconfig nfs on
  8. 指定NFS导出的位置。在文件/etc/exports中添加一行/kickstart *
  9. 创建目录kickstart cd /; mkdir kickstart

安装Web服务器

安装Web服务器 yum install httpd -y
启动Web服务器 service httpd start
将Web服务器设置为在系统重启时自动启动 chkconfig httpd on

安全注意事项

就以下示例而言,我选择禁用SELinux并清除默认防火墙规则。但是,在实际环境中,您可能需要配置防火墙访问权限并修改SELinux设置。

通过上述安装创建的Kickstart文件

以下是在安装nfs/web服务器期间创建的anaconda-ks.cfg文件。kickstart文件通常被分成多个部分。 查看Kickstart-关键字解释

/root/anaconda-ks.cfg

[root@kicks01 ~]# cat /root/anaconda-ks.cfg 
# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
cdrom
lang en_US.UTF-8
keyboard uk
network --onboot no --device eth0 --bootproto dhcp --noipv6
rootpw  --iscrypted $s5ULtB6RfHZCYLn$ZsT4sylGgZHu9SYo5SFUBql9dyaeyXnyS.elp8RIWbI12FHk7hl58tj8evdO1VW4jMVsQr3nYNkXJrMdFPRR60
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --enforcing
timezone --utc Europe/London
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --linux --drives=sda
#volgroup VolGroup --pesize=4096 pv.008002
#logvol/--fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=1024 --maxsize=51200
#logvol swap --name=lv_swap --vgname=VolGroup --grow --size=819 --maxsize=819

#part /boot --fstype=ext4 --size=500
#part pv.008002 --grow --size=1


repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100

%packages --nobase
@core
%end

从kickstart文件安装操作系统

现在,我们已经拥有一台可用于NFS或Web Server安装的服务器,我们可以将自定义的kickstart(ks.cfg)文件放置到先前创建的/ kickstart目录中,也可以将其放置在以下目录的DocumentRoot目录中:我们的网络服务器/ var/www/html

通过NFS进行Kickstart

对于以下示例,已创建了一个名为ks.cfg的自定义kickstart文件。该文件已被复制到我们先前创建的/ kickstart目录中。这个kickstart文件包含自定义分区信息,并指定我们将使用静态IP地址。

创建该文件后,将需要确保可以读取该文件。为此,我们可以执行以下命令:

chmod +r ks.cfg(此命令将read属性添加到文件中,从而允许任何人读取文件)

# Custom Kickstart file 

#version=DEVEL
install
cdrom
lang en_US.UTF-8
keyboard uk

# Static IP addressing Information
network --device eth0 --bootproto static --ip 192.168.0.47 --netmask 255.255.255.0 --gateway 192.168.0.1 --nameserver 192.168.0.1 --hostname kicks02

rootpw  --iscrypted $s5ULtkM6RfHZDYLn$ZsT3sylGfWHu8SYo5SFUBql9dbacyXnyR.elp8RIWbI21FHk7hl62tj8evdO1VW7jMVsQr1nYPkXJrMdFPRR60
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --enforcing
timezone --utc Europe/London
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
#Custom Partition Information
zerombr 
clearpart --all --drives=sda
####################################
part /boot --fstype ext4 --size=500
part swap --size=1024
part pv.01      --size=1000     --grow  --ondisk=sda
volgroup vg00 pv.01
logvol/--vgname=vg00  --fstype=ext4  --size=2048 --name=lv_root
logvol /var --vgname=vg00 --fstype=ext4 --size=1024 --name=lv_var
logvol /tmp --vgname=vg00 --fstype=ext4 --size=512 --name=lv_tmp


%packages --nobase
@core
%end

为新服务器创建VirtualBox定义

在继续之前,我们首先需要为将要创建的新服务器创建计算机/服务器定义。在这里,我们将指定使用的是单个CPU,512MB内存,8GB虚拟磁盘和桥接网络连接。机器定义名称将与kickstart文件中指定的主机名相同。(kicks02)

将计算机定义为VirtualBox之后,我们将使用相同的iso映像来安装服务器。以下视频将指导您完成所涉及的过程。

现在,当我们开始安装时,在安装屏幕上,我们将需要指定将使用的远程ks.cfg文件的位置。要指定此选项,您需要在初始安装程序菜单中按Escape,然后转到`开机:提示。在此示例中,我们的kickstart文件驻留在IP地址为192.168.0.26的服务器上的/ kickstart目录中。

因此,在引导提示符下,我们输入以下信息:

linux ks=nfs:192.168.0.26:/kickstart/ks.cfg

此命令指定可以在IP地址为192.168的NFS挂载上找到kickstart文件ks.cfg的位置。 .0.26在名为/ kickstart的目录中。

输入此命令后,在安装过程中将不再有任何参与。我们的网络信息和分区信息将用于构建服务器。安装完成后,请记住删除安装介质!重新启动之前。以下是此过程的视频概述。您会注意到在安装过程中没有手动干预。

使用Web服务器的Kickstart

使用Web服务器的过程几乎与NFS安装过程相同。这里的主要区别是我们将kickstart配置文件复制到根文档目录。您可以通过在以下配置文件中查找DocumentRoot行来确认Web服务器上的此位置:/etc/httpd/conf/httpd.conf

默认的DocumentRoot为:/var/www/html, 可以在/etc/httpd/conf/httpd.conf中查看。

将文件放置到默认的DocumentRoot目录后,您可以使用浏览器通过键入我们的远程服务器的IP地址以及ks.cfg文件的路径来确认该文件可用。 192.168.0.26/ks.cfg

现在您应该看到已显示ks.cfg文件。如果没有,请使用以下命令检查Web服务器是否正在运行:

service httpd status-显示Web服务器是否正在运行
service httpd restart-重新启动Web服务器
service httpd stop-停止Web服务器
service httpd start-启动Web服务器

在VirtualBox中为新服务器创建定义

同样,我们将使用相同的规格:1个CPU,512MB内存和一个8GB虚拟磁盘以及一个桥接网络连接器。现在,我们将修改kickstart文件,以更改要使用的主机名和IP地址。在此示例中,IP地址已设置为192.168.0.48,主机名已设置为kicks03。

在对ks.cfg文件进行了这些更改之后,我们可以启动安装过程。

还是和以前一样,我们需要在安装屏幕上按Escape,以进入引导提示符。这次,我们将指定将使用Web服务器执行安装。为此,我们需要在引导提示符下指定以下内容:

linux ks=http://192.168.0.26/ks.cfg

在这里,我们指示Anaconda安装程序使用指定IP地址的Web服务器,并从其根目录使用名为ks.cfg的文件。