CentOS Kickstart及引导镜像文件制作
1. 什么是kickstart安装?
kickstart是RedHat/CentOS/Fedora等系统实现无人值守自动化安装的一种安装方式,系统管理员可将安装过程中需要配置的所有参数集成于一个kickstart文件中,而后在系统安装时,安装程序通过读取事先给定的这个kickstart文件自动化地完成配置并安装完成。
anaconda的配置方式有以下两种:
(1)交互式配置;
(2)通过读取事先给定的配置文件事先自动完成配置,这个配置文件就是kickstart文件,它遵循特定的语法格式。
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
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安装:
[root@localhost ~]# rpm -q system-config-kickstart
system-config-kickstart-2.8.6.6-1.el6.noarch //显示已安装;
在命令行上运行system-config-kickstart命令即可启动窗口界面:
[root@localhost ~]# system-config-kickstart &
打开窗口如图: