CentOS系统安装(下):无人值守安装--kickstart文件及引导镜像的制作

1. 什么是kickstart安装?

kickstart是RedHat/CentOS/Fedora等系统实现无人值守自动化安装的一种安装方式,系统管理员可将安装过程中需要配置的所有参数集成于一个kickstart文件中,而后在系统安装时,安装程序通过读取事先给定的这个kickstart文件自动化地完成配置并安装完成。

anaconda的配置方式有以下两种:

(1)交互式配置;

(2)通过读取事先给定的配置文件事先自动完成配置,这个配置文件就是kickstart文件,它遵循特定的语法格式。

在前面一篇博客--《CentOS系统安装(上):图形/文本界面安装》已经介绍了使用anaconda应用程序来实现交互式安装CentOS系统,接下来要介绍的是通过kickstart这个配置文件来实现无人值守安装系统。在介绍之前需要先了解一下anaconda程序的安装引导选项。

2. anaconda安装引导选项

anaconda的安装引导选项可在boot界面(即bootloader引导时的菜单界面)由用户给定,由bootloader传递把参数传递给内核,再由内核把参数传递给anaconda应用程序;也可以直接在bootloader的配置文件中写入参数直接传递给内核,以光盘引导为例,可以在isolinux/isolinux.cfg配置文件中通过"append"的方式把参数追加给label中定义的内核。

anaconda的安装引导选项有:

text:文本安装方式;

method:手动指定使用的安装方法;

与网络相关的引导选项:安装时的网络属性配置;

ip=IPADDR:安装时的ip地址;

netmask=MASK:子网掩码;

gateway=GW:默认网关;

dns=DNS_SERVER_IP:安装过程需要解析主机名时会用到;

ifname=NAME:MAC_ADDR:指定以上网络属性配置应用于哪个网络接口之上;

远程访问功能相关的引导选项:

vnc:可以让远程用户帮助配置各个安装选项;

vncpassword:设置vnc密码;

指明kickstart文件的位置:

ks=

需要注意的是,kickstart文件可以来自光盘(镜像)、硬盘或网络,因此其指定方式各有不同。

光盘:

ks=cdrom:/PATH/TO/KICKSTART_FILE

硬盘:

ks=hd:/DEVICE/PATH/TO/KICKSTART_FILE

网络:

HTTP服务器:ks=http://HOST[:PORT]/PATH/TO/KICKSTART_FILE

HTTPS服务器:ks=https://HOST[:PORT]/PATH/TO/KICKSTART_FILE

FTP服务器:ks=ftp://HOST[:PORT]/PATH/TO/KICKSTART_FILE

3. kickstart文件的格式

kickstart文件包括三个部分:

(1)命令段

(2)程序包段

(3)脚本段

(1)命令段:

作用:指定各种安装前的配置选项,如键盘类型等。

选项类型:必备命令+可选命令

必备命令:

authconfig:认证方式配置

示例:
authconfig --enableshadow --passalgo=sha512

bootloader:定义bootloader的安装位置及相关配置

示例:
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"

keyboard:设置键盘类型

示例:
keyboard us

lang:设置语言类型

示例:
lang en_US.UTF-8

part:分区布局

示例:
part /boot --fstype=ext4 --size=500
part pv.008002 --grow --size=1

分区相关的其他命令:

clearpart:清除分区

示例:
clearpart --none --drives=sda

volgroup:创建卷组

示例:
volgroup VolGroup --pesize=4096 pv.008002

logvol:创建逻辑卷

示例:
logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=1024 --maxsize=5120
0

rootpw:设置管理员密码

示例:
rootpw  --iscrypted $6$2V70fZkSFMrqldev$Qf950j2Ip5vxhEoOmlZgKHnySkBBMA6T5tBQz5jPiAurItpei
663xVkRfrdWZPESgQu33q3E.CShfkY4MCtjK.

生成加密密码的方式:
~]# openssl  passwd  -1  -salt  `openssl  rand  -hex  4`

timezone:时区

示例:
timezone Asia/Shanghai

可选命令:

install或upgrade:安装或升级

text:安装界面类型,text为TUI,默认为GUI

network:配置网络接口

示例:
network --onboot yes --device eth0 --bootproto dhcp --noipv6

firewall:防火墙

示例:
firewall --disabled

selinux:SELinux

示例:
selinux --disabled

halt、poweroff或reboot:定义安装完成之后的行为,如关机、重启

user:安装完成后为系统创建新用户

repo:指明安装时使用的repository(安装源)

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

url:指明安装时使用的repository(安装源),但为url格式

示例:
url --url=http://172.16.0.1/cobbler/ks_mirror/CentOS-6.7-x86_64/

注意:要配置好相关网络属性,例如局域网通信需要ip和netmask,如果要访问互联网还需要gateway
和dns。

(2)程序包段

作用:指定要安装的程序包、包组以及不安装的程序包。

表示方式:

%packages:程序包段的开始;

@group_name:要安装的包组;

package:要安装的程序包;

-package:不安装的程序包;

%end:程序包段的结束;

需要注意的是,如果一个程序包被其他指定要安装的程序包所依赖,那么就算指明该程序不安装,系统也会自动安装这个程序包。

(3)脚本段


包括安装前要执行的脚本和安装后要执行的脚本。

①安装前要执行的脚本:%pre

脚本格式:

%pre
...
%end

运行环境:运行于安装介质上的微型Linux系统环境。

②安装后要执行的脚本:%post

脚本格式:

%post
...
%end

运行环境:安装完成后的系统。

4. 制作kickstart文件的方式


(1)直接手动编辑,可以依据某个模板来进行修改;

(2)使用kickstart文件创建工具:system-config-kickstart进行配置,同样可以导入某个模板并修改之。

这里介绍使用kickstart文件创建工具:system-config-kickstart来定制kickstart:

首选确保system-config-kickstart已经安装,如果没有安装可以使用yum安装:

[[email protected] ~]# rpm -q system-config-kickstart
system-config-kickstart-2.8.6.6-1.el6.noarch    //显示已安装;

在命令行上运行system-config-kickstart命令即可启动窗口界面:

[[email protected] ~]# system-config-kickstart &

打开窗口如图:

这里直接进行配置(不使用模板),首先完成基本配置(如图),这里可设置语言类型、键盘类型、时区、管理员密码(加密)以及安装的平台类型等选项:

选择安装方式,这里通过网易镜像网站(mirrors.163.com)安装程序包:

选择安装类型、MBR的安装位置以及向内核传递的参数等:

设置分区信息:

网卡配置,可以静态指定也可以使用dhcp动态获取网络属性配置:

认证方式配置:

设定是否开启防火墙和selinux功能:

设定是否安装图形界面:

选定要安装的程序包:

安装前要执行的脚本,注意运行环境是安装介质之上的微型Linux系统环境:

安装后要执行的脚本:

完成配置之后进行保存:

指定保存目录:

使用ls查看:

[[email protected] ~]# ls -1
anaconda-ks.cfg
Desktop
Documents
Downloads
ks.cfg    //此文件即为kickstart文件;
Music
...(以下省略)...

可用ksvalidator命令检查kickstart文件语法错误:

[[email protected] ~]# ksvalidator ks.cfg 
[[email protected] ~]#        //没有任何信息显示,说明语法无错误;

一般直接手动编辑kickstart文件方式比较需要使用ksvalidator检查语法错误。

5. 制作引导镜像

在上一篇博客中提到过,一般bootloader、Kernel及initrd等文件由安装系统的引导设备提供,例如通过光盘、U盘或网络引导;后续的anaconda及其安装用到的程序包可以来自程序包仓库,此仓库可以为本地光盘、本地硬盘、ftp/http/https/nfs服务器上的yum仓库等。

如果要实现自动化安装则还需要kickstart文件,kickstart文件同样可以来自本地光盘、本地硬盘、ftp/http/https/nfs服务器等。本次实验中,采用将bootloader、Kernel、initrd及kickstart文件制作成光盘镜像方式以实现本地光盘镜像引导安装CentOS系统,其中anaconda应用程序位于initrd提供的rootfs中。而后续安装用到的程序包来自网易镜像站点(mirrors.163.com),刚才在制作kickstart文件时已经手动指定。

制作引导镜像步骤:

(1)在当前目录下创建myboot目录(名称可自定义):

[[email protected] ~]# mkdir myboot

(2)查看光盘是否已挂载:

[[email protected] ~]# df
Filesystem           1K-blocks    Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root
                      36613720 3115284  31631892   9% /
tmpfs                   953140     224    952916   1% /dev/shm
/dev/sda1               487652   40658    421394   9% /boot
/dev/sr0               3824484 3824484         0 100% /media/cdrom
//最后一行是光盘镜像的挂载信息,说明已经挂载;

(3)将光盘中的isolinux目录复制到刚才创建的myboot目录,同时也把刚才制作的kickstart文件复制进myboot目录:

[[email protected] ~]# cp -r /media/cdrom/isolinux ./myboot
[[email protected] ~]# cp ks.cfg ./myboot

(4)因为原有光盘镜像是只读挂载的,因此复制过来的文件均只有只读权限,需要先将之修改为可写权限:

[[email protected] ~]# cd ./myboot/isolinux/
[[email protected] isolinux]# ll
total 44436
-r--r--r--. 1 root root     2048 Mar  5 13:12 boot.cat
-r--r--r--. 1 root root       84 Mar  5 13:12 boot.msg
-r--r--r--. 1 root root      321 Mar  5 13:12 grub.conf
-r--r--r--. 1 root root 40688737 Mar  5 13:12 initrd.img
-r--r--r--. 1 root root    24576 Mar  5 13:12 isolinux.bin
-r--r--r--. 1 root root      923 Mar  5 13:12 isolinux.cfg
-r--r--r--. 1 root root   183012 Mar  5 13:12 memtest
-r--r--r--. 1 root root   151230 Mar  5 13:12 splash.jpg
-r--r--r--. 1 root root     2215 Mar  5 13:12 TRANS.TBL
-r--r--r--. 1 root root   163728 Mar  5 13:12 vesamenu.c32
-r-xr-xr-x. 1 root root  4264528 Mar  5 13:12 vmlinuz
[[email protected] isolinux]# chmod u+w *
[[email protected] isolinux]# ll
total 44436
-rw-r--r--. 1 root root     2048 Mar  5 13:12 boot.cat
-rw-r--r--. 1 root root       84 Mar  5 13:12 boot.msg
-rw-r--r--. 1 root root      321 Mar  5 13:12 grub.conf
-rw-r--r--. 1 root root 40688737 Mar  5 13:12 initrd.img
-rw-r--r--. 1 root root    24576 Mar  5 13:12 isolinux.bin
-rw-r--r--. 1 root root      923 Mar  5 13:12 isolinux.cfg
-rw-r--r--. 1 root root   183012 Mar  5 13:12 memtest
-rw-r--r--. 1 root root   151230 Mar  5 13:12 splash.jpg
-rw-r--r--. 1 root root     2215 Mar  5 13:12 TRANS.TBL
-rw-r--r--. 1 root root   163728 Mar  5 13:12 vesamenu.c32
-rwxr-xr-x. 1 root root  4264528 Mar  5 13:12 vmlinuz

(5)修改myboot/isolinux/isolinux.cfg配置文件,向默认启动的label所定义的内核传递参数,执行kickstart文件的存放位置:

[[email protected] isolinux]# vim isolinux.cfg

注意:无论kickstart文件是存放在待制作的光盘镜像中的哪个路径下,都可以在此处通过向内核追加参数的方式指明kickstart文件位置。

(5)为了节约等待光盘镜像引导安装时的时间,可修改default参数:

(6)到此为此所有的准备工作已经完成,接下来需要退出myboot目录,并为myboot目录及其目录中的所有文件制作成光盘引导镜像,而myboot目录作为光盘镜像中的根目录:

[[email protected] ~]#  mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-tabl
e -V "CentOS 6 x86_64 boot" -c isolinux/boot.cat -b isolinux/isolinux.bin -o /root/boot.iso
 ./myboot/

创建光盘镜像的命令稍微有点复杂,这里给其中的一部分做出说明:

"CentOS 6 x86_64 boot"        //光盘卷标;
isolinux/boot.cat            //MBR中的bootloader;
isolinux/isolinux.bin        //bootloader的第二阶段;
/root/boot.iso            //指定存放在哪里,并命名之;
./myboot/            //指定某个目录为“根”创建光盘镜像;

(7)创建完成之后使用ls查看:

[[email protected] ~]# ls -1
anaconda-ks.cfg
boot.iso    //这就是刚刚创建的光盘镜像文件!
Desktop
Documents
Downloads
ks.cfg
Music
myboot
myboot1
Pictures
Public
Templates
Videos

(8)在远程终端软件Xshell上新建文件传输,把CentOS上的引导镜像boot.iso拷贝至Windows系统桌面上:

可直接拖拽过去。

然后就可以在Windows桌面上看到这个镜像文件了。

(9)接着创建新的虚拟机,将其引导设备指明为boot.iso镜像,然后点击启动即可实现自动安装:

过了5s之后会自动选择默认菜单项(即第一项)。

接下来的自动安装过程:

说明:

CentOS开始安装时,由光盘镜像上的bootloader引导加载内核,第二阶段的bootloader(isolinux.bin)会去读取配置文件isolinux.cfg并把其中的initrd、ks等参数传递给内核,内核再传递给anaconda程序,由于在安装过程中使用dhcp协议动态获取ip/netmask、gateway及dns等网络属性配置,因此在后续的程序包安装过程中主机能访问互联网上的资源(本实验中kickstart文件指明在网易镜像站点上下载安装程序包)。

时间: 2024-10-10 11:12:17

CentOS系统安装(下):无人值守安装--kickstart文件及引导镜像的制作的相关文章

制作kickstart文件和引导镜像

制作kickstart文件和引导镜像原文:http://www.178linux.com/88400kickstart制作:(1)通过手动编辑,莫个kickstat模板进行修改:如根目录下的anaconda-ks.cfg(2)通过图形界面制作kickstart文件,可以安装system-config-kickstart,通过kickstart配置程序打开某个模板,如anaconda-ks.cfg,在图片界面下的修改,基本配置:默认语音,键盘类型,时区,管理员口令.安装方法:可以执行新的安装或者升

centos 7 下 cobbler 安装

一.cobbler 介绍: Cobbler 是一个系统启动服务(boot server),可以通过网络启动(PXE)的方式用来快速安装.重装物理服务器和虚拟机,支持安装不同的 Linux 发行版和 Windows.该工具使用python开发,小巧轻便(才15k行代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理 DHCP,DNS,以及yum包镜像. Linux学习,http:// linux.it.net.cn Cobbler 使用命令行方式管理,也提供了基于 Web 的界面

Centos 7下如何安装bzip2

Centos 7下如何安装bzip2 时间:2016-02-26 01:01来源:linux.it.net.cn 作者:IT centos7 下好多软件都不带,当然也没有bzip2,于是我们只能下载 安装了,两种方法 1.yum安装,不多说 yum search bzip2  //查询安装包 yum -y install bzip2-x86_64 2.源码安装 下载bzip2   下载地址:http://www.bzip.org/downloads.html 1>格式是*.tar.gz  解压文

CentOS 6 下升级安装Mysql 5.5 完整步骤

使用系统CentOS 6.2本来已经系统自带安装了mysql 5.1,但是奈何5.1不支持utf8mb4字符集(详见:http://blog.csdn.net/shootyou/article/details/8236024 ),只能想办法将Mysql升级到5.5. 这果然是一次蛋疼的升级过程. 完整步骤: 1.首先备份数据,虽说成功的升级数据不会丢失,但是保险起见备份下. mysqldump -u xxx -h xxx -P 3306 -p --all-databases > database

linux系统下怎么安装.deb文件?

deb 是 ubuntu .debian 的格式. rpm 是 redhat .fedora .suse 的格式. 他们不通用(尽管能够转换一下). deb是debian发行版的软件包 ubuntu是基于debian 发行的 全部能够用 .deb是solaris系统下的安装包后缀名.安装方法例如以下 cd 到安装包的文件夹 dpkg -i 安装包名字 假设你使用的是red hat linux,然后执行下面命令安装 cd 到安装包的文件夹 rpm -ivh 安装包名字 linux系统下怎么安装.d

centos 7 下nagios 安装和配置

        centos 7 下nagios 安装和配置 一.yum -y install httpd gcc glibc glibc-common *gd* php php-mysql mysql mysql-server mysql-devel php-snmp net-snmp net-snmp-libs net-snmp-utils php-pdo perl-DBD-MySQL rrd-tool   perl-rrdtool             rrdtool-devel  ma

【转】linux系统下怎么安装.deb文件?

linux系统下怎么安装.deb文件? deb 是 ubuntu .debian 的格式.rpm 是 redhat .fedora .suse 的格式. 他们不通用(虽然可以转换一下). deb是debian发行版的软件包ubuntu是基于debian 发行的 所有可以用 .deb是solaris系统下的安装包后缀名.安装方法如下 cd 到安装包的目录 dpkg -i 安装包名字 如果你使用的是red hat linux,然后运行以下命令安装 cd 到安装包的目录rpm -ivh 安装包名字

linux系统下怎么安装.deb文件

linux系统下怎么安装.deb文件? deb 是 ubuntu .debian 的格式.rpm 是 redhat .fedora .suse 的格式. 他们不通用(虽然可以转换一下). deb是debian发行版的软件包ubuntu是基于debian 发行的 所有可以用 .deb是solaris系统下的安装包后缀名.安装方法如下 cd 到安装包的目录 dpkg -i 安装包名字 如果你使用的是red hat linux,然后运行以下命令安装 cd 到安装包的目录rpm -ivh 安装包名字

kickstart及光盘引导镜像制作

一.kickstart简介使用kickstart可以完成系统的自动化安装,原理是把安装过程内装写到配置文件中,这个配置文件可以放在光盘和文件服务器上,下面只介绍光盘引导镜像的制作.二.光盘引导镜像制作过程  (1) 准备工作目录,例如这里使用/tmp/cdrom:   #mkdir /tmp/cdrom  (2) 挂载系统发行光盘,复制光盘所有内容至/tmp/cdrom:  #mount -r -t iso9660 /dev/cdrom /media/cdrom  #cp -r /media/c