KICKSTART简介
什么是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/
对于最小服务器的构建,我将假定您之前已经安装了基本服务器配置。如果没有,请参考视频链接以快速了解所涉及的过程。
安装最小服务器
- 定义VirtualBox计算机
- 指定CPU数量,内存,虚拟磁盘大小和桥接
- 启动安装的网络类型
- 重新启动服务器
- 编辑
/etc/sysconfig/network
- 修改主机名-添加了kicks01
- 编辑
/etc/sysconfig/network-scripts/ifcfg-eth0
- 更改onboot为yes - 重新启动-服务器检查我们的更改-关闭-r现在
- 检查对网络/存储库的访问权限-
yum repolist
- 检查IP地址-
ip a s
安装NFS组件
- 安装NFS组件
yum install nfs-utils nfs-utils-lib -y
- 检查rpcbind守护程序服务的状态
service rpcbind status
- 启动rpcbind守护程序
service rpcbind start
- 设置rpcbind在系统重启时自动启动
chkconfig rpcbind on
- 检查NFS服务的状态
service nfs status
- 启动NFS
service nfs start
- 将NFS设置为在系统重新引导时自动启动
chkconfig nfs on
- 指定NFS导出的位置。在文件
/etc/exports
中添加一行/kickstart *
- 创建目录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的文件。