CentOS 6.x创建kickstart文件的方式:
依据某模板直接手动编辑:可根据系统安装完成后生成的/root/anaconda-ks.cfg配置文件进行修改
依据某模板通过system-config-kickstart命令创建(需要图形界面支持)
配置Xmanager使用图形界面:
安装gnome桌面环境:# yum -y install xdm gdm
修改配置文件:# vim /etc/gdm/custom.conf
[security]设置段下添加:
AllowRemoteRoot=true
[xdmcp]设置段下添加:
Enable=1
Port=177
配置系统为图形模式:# vim /etc/inittab --> id:5:initdefault:
重启CentOS服务器:# reboot
Windows中打开Xmanager的Xbrowser,在地址栏里输入CentOS服务器IP回车即可进行连接。
# yum -y install system-config-kickstart
# system-config-kickstart & //&表示后台运行
文件-->打开文件-->找到anaconda-ks.cfg-->打开-->导入anaconda-ks.cfg后,按需进行编辑-->文件-->另存为ks.cfg
kickstart文件的语法检查命令:# yum-y install pykickstart # ksvalidator/root/ks.cfg
kickstart文件的格式:
命令段:指明各种安装前配置,如键盘类型等,包括必备命令和可选命令
程序包段:指明要安装的程序包组或程序包,或者不需要安装的程序包等,可以使用*进行通配
%packages //开始
@group_name //需要安装的包组,每个条目一行
package //需要安装的软件包
-package //不需要安装的软件包
%end //结束
脚本段:
%pre:安装前脚本
运行环境:运行于安装介质上的微型Linux环境
%post:安装后脚本
运行环境:安装完成的系统
#号开头的行为注释行
kickstart示例配置文件ks.cfg:
# 指明此次是全新安装系统
install
# 将本地的光驱作为系统安装源
cdrom
# 设置系统安装过程中使用的语言及系统的缺省语言,建议选择英语,如果选择中文,则为zh_CN.UTF-8
lang en_US.UTF-8
# 设置键盘类型
keyboard us
# 设置系统网络接口,包括是否在系统启动时自动激活网卡、激活并进行系统安装的网卡设备名称、IP地址的获取方式、IP地址、掩码NETMASK、网关GATEWAY、DNS、安装后的主机名称、是否启用该设备的IPv6功能,所有参数选项的值必须写在一行中
network --onboot=yes --device=eth0 --bootproto=static--ip=192.168.199.18 --netmask=255.255.255.0 --gateway=192.168.199.1--nameserver=114.114.114.114 --hostname=centos6.9 --noipv6
# 设置系统root管理员的加密密码,此处源密码为123456
rootpw --iscrypted $1$.ul2D7pG$h7nbx475YjlrswZRYAgOf/
# 禁用系统防火墙
firewall --disabled
# 设置系统的认证方式,使用隐藏密码,且使用SHA-512哈希算法
authconfig --enableshadow --passalgo=sha512
# 禁用系统selinux
selinux --disabled
# 设置系统时区
timezone Asia/Shanghai
# 设置bootloader的安装选项,包括:引导记录的写入位置、BIOS中的设备开机启动顺序、需要传递给内核的参数选项,会追加至grub配置文件/etc/grub.conf中对应title的kernel关键字所在行的行尾
bootloader --location=mbr --driveorder=sda --append="crashkernel=autorhgb quiet"
# 清除mbr信息,同时清空系统上原有的分区表,否则系统会提示是否要清除磁盘上的数据
zerombr
# 在建立新分区前清空系统上原有的分区表、并初始化磁盘卷标为系统架构的默认卷标
clearpart --all --initlabel
# 创建磁盘分区,此处的磁盘分区方式为:/bootext4 2G,swap2G,/ LVM 剩余所有可用容量
part /boot --fstype=ext4 --size=2048
part swap --size=2048
part pv.008003 --grow --size=1
volgroup vg_centos6.9 --pesize=4096 pv.008003
logvol / --fstype=ext4 --name=lv_root --vgname=vg_centos6.9 --grow--size=1
# 系统安装完成后创建普通用户
user --name=marion --password=$1$.ul2D7pG$h7nbx475YjlrswZRYAgOf/--iscrypted
# 设置系统启动后禁用的服务
services --disabled NetworkManager,iptables
# 系统安装完成后自动重启系统,并在重启系统之前弹出光盘
reboot --eject
# 安装程序包组和程序包,@程序包组名称,具体名称可以查看安装光盘中repodata目录下的以-comps.xml结尾的文件,其中id标签内的名称即为程序包组名称
%packages
@base
@chinese-support
@core
@desktop-platform
@development
@server-platform
@server-platform-devel
@server-policy
@workstation-policy
@x11
cronie
lftp
ntpdate
screen
tree
vim-enhanced
wget
%end
%post
# 不受NetworkManager脚本控制,CentOS 6.x建议设置NM_CONTROLLED的值为no
sed -i 's#NM_CONTROLLED="yes"#NM_CONTROLLED="no"#g'/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/init.d/network restart &> /dev/null
# ssh服务优化,包括:禁止使用DNS解析、禁止root用户远程登录、禁止空密码登录
sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
sed -i 's/#PermitEmptyPasswords no/PermitEmptyPasswords no/g'/etc/ssh/sshd_config
/etc/init.d/sshd restart &> /dev/null
# 设置selinux为disabled
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
# 设置系统启动后禁用iptables
/sbin/chkconfig iptables off
# 设置系统yum源,将默认yum源修改为aliyun源,并新增epel源
find /etc/yum.repos.d/ -name "CentOS-*.repo" -exec mv {}{}.bak \;
wget -qO /etc/yum.repos.d/aliyun.repohttp://mirrors.aliyun.com/repo/Centos-6.repo
wget -qO /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
wget -qP /etc/yum.repos.d/http://mirrors.aliyun.com/repo/epel-testing.repo
sed -i 's#\[base\]#\[aliyun\]#g' /etc/yum.repos.d/aliyun.repo
yum clean all &> /dev/null
yum makecache &> /dev/null
yum repolist &> /dev/null
# 导入aliyun的GPG密钥
rpm --import http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6
# 调整文件描述符大小
echo '* - nofile 65535' >> /etc/security/limits.conf
%end
将ks文件放至http服务器上
新建虚拟机-->容量1000G(大小不固定,按照实际情况选择)-->放入原版ISO系统安装光盘-->开启虚拟机-->引导顺序首选光驱-->进入安装菜单界面-->按Esc键,进入boot提示符
无需人工干预,自动安装系统:
安装完成后,自动重启: