首先说一下kickstart
下面这篇文章是本人在centos 6.3 和rhel5.5 做测试是做的笔记
kickstart 即踢一脚安装,也就是无人职守安装
1.anaconda 来负责 kickstart ,anaconda 是用python语言写的
linux的安装一般都是由anaconda这个程序负责的.在用光盘安装的时候其实也是用的这个程序,我们的配置过程就是生成ks文件的过程,然后再由anaconda按照ks文件安装系统
2. 进入用户root目录,,下面有个 anaconda-ks.cfg
下面简析一个ks文件
[root@localhost ~]# vi anaconda-ks.cfg
# Kickstart file automatically generated by anaconda.
在这里 可以加上text 用文本安装
在这里 可以加上 reboot 安装完后重启
#version=DEVEL
install 选择安装模式 也有update
cdrom 安装方式从光盘安装 也可以这样 nfs --server=192.168.1.1 --dir=/var/rhel4u2 使用nfs ,路径从根开始
如果是 rhel 在这里可以加上 key --skip
lang en_US.UTF-8 可以加几个语言,默认尽量要英文
keyboard us
network --onboot no --device eth0 --bootproto dhcp --noipv6 网络配置
rootpw --iscrypted $6$IyaoXoHeN6KyBrUv$/0/YN16.erIamvS326Ho6rhSarkn5d90Ht6.HASCeyNG09aSXksDbsyCylMse9aNGE7gp1TV3k8cGaNDAdcrn1 //root密码 md5加密过
firewall --service=ssh 防火墙状态
authconfig --enableshadow --passalgo=sha512
selinux --enforcing selinux状态
timezone --utc America/New_York 时区 要选择上海
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 --none 关于分区的操作 注释取消才可以用
#part /boot --fstype=ext4 --onpart=sda1 --noformat 注释取消才可以用
#part / --fstype=ext4 --onpart=sda2 注释取消才可以用
#part None --fstype=ext4 --onpart=sda3 --noformat 注释取消才可以用
#part swap --onpart=sda5 --noformat 注释取消才可以用
repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100
%packages
@base @说明是一组包 单个包会放后面
@console-internet
@core
@debugging
@directory-client
@hardware-monitoring
@java-platform
@large-systems
@network-file-system-client
@performance
@perl-runtime
@server-platform
@server-policy
pax
oddjob
sgpio
certmonger
pam_krb5
krb5-workstation
perl-DBD-SQLite
%end
可以加个 %pre在光盘或微型引导系统时要执行的脚本
有的后面会有 %post 后面写安装完后执行的脚本
譬如说想 关掉cups服务
chkconfig cups off
useradd jiangwei
还可以加很多脚本
kickstart安装rhel5系统
0.配置好本地yum 源 这是使用kickstart生成ks文件必须的
1.系统上得安装了kickstart
如果没有的话 安装system-config-kickstart
2.配置installtree 可以使用nfs ftp 或http
例如:nfs安装树
mount /dev/cdrom /media/cdrom
cp -rf /media/cdrom/* /var/ftp/pub/rhel5
然后将ftp目录共享出去
vi exports
/var/ftp *(rw,sync)
service nfs restart
3. 在图形界面下,system-config-kickstart 生成ks文件
注意default language要用英文
选择remove all existing partions 否则可能出现磁盘不够用提示
网络要尽量配上ip
若是rhel 记得加上 key --skip
分区操作前的注释要去掉
4.然后在一台新的机器上用rhel5光盘引导启动,
boot 后输入 linux ks=nfs:10.10.10.244:/var/ftp/pub/ks.cfg
或是使用ftp
kickstart 生成的时候
ftp server :10.10.10.244
ftp directory : /pub/rhel5
服务端安装上 vsftpd
启动的时候
linux ks=ftp://10.10.10.244/ks.cfg
当使用kickstart + pxe无人职守安装的时候, 配置好pxe,然后编辑default文件指定ks的位置即可
如果可以实现自动安装说明kickstart配置是没有问题的
接下来说一下pxe启动, pxe启动和kickstart联合起来可以实现真正的自动安装
pxe 的制作
1.安装dhcp 服务器
安装上dhcp包
vi /etc/dhcp/dhcpd.conf
next-server 10.10.10.231; //添加的 pxe服务器ip
filename "/pxelinux.0"; //添加的 pxe服务器 /pxelinux.0 的路径
subnet 10.10.10.0 netmask 255.255.255.0 {
range 10.10.10.200 10.10.10.254;
option routers 10.10.10.1;
option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 7200;
}
2.安装tftp server 并建立pxe启动
安装上tftp的包
vi /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot #改成自己定的路径
disable = no #这里改成no
per_source = 11
cps = 100 2
flags = IPv4
}
复制启动文件
#mkdir /tftpboot
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/ #如果没有这个先安装 syslinux(光盘里有)
将光盘镜像里的相关组件拷到相应的目录里
# cp /dev/cdrom/p_w_picpaths/pxeboot/{vmlinuz,initrd.img} /tftpboot/
接下来创建/tftpboot/pxelinux.cfg/ 目录,该目录用于存放客户端的配置文件。
# mkdir /tftpboot/pxelinux.cfg
将光盘中的 '''isolinux/isolinux.cfg''' 文件复制为 '''/tftpboot/pxelinux.cfg/default'''
cp /dev/cdrom/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
编辑default文件
#vim /tftpboot/pxelinux.cfg/default
下面是对 default文件简单的说明
# 默认启动的是 'label linux' 中标记的启动内核
default linux
# 显示 'boot: ' 提示符。为 '0' 时则不提示,将会直接启动 'default' 参数中指定的内容。
prompt 1
# 在用户输入之前的超时时间,单位为 1/10 秒。
timeout 60
#显示某个文件的内容,注意文件的路径。默认是在 /tftpboot 目录下。也可以指定位类似 'install/rhel4.4-inst/boot.msg' 这样的,路径+文件名。
display boot.msg
F1 boot.msg #按下 'F1' 这样的键后显示的文件。注意路径。默认是 /tftpboot。注:syslinux 官方网站上说目前只能使用 F1-F10。
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
# 'label' 指定你在 'boot:' 提示符下输入的关键字。
# 比如:
# boot: linux[ENTER]
# 这个会启动 'label linux' 下标记的 kernel 和 initrd.img 文件。
# 这里还定义了其它几个关键字:
# boot: text
# boot: ks
# kernel 参数指定要启动的内核。同样要注意路径,默认是 /tftpboot 目录。
# append 指定追加给内核的参数,能够在 gurb 里使用的追加给内核的参数,在这里也都可以使用。
# 使用 kickstart 安装。
# 可以在 ks 参数后直接指定 kickstart 文件的位置。
下面是一个典型的配置好的default文件
default linux //默认启动的是linux内核
label linux //linux的内容
kernel vmlinuz //内核文件路径 /tftpboot路径下
append ks=nfs:192.168.175.1:/mnt/install/ks.cfg initrd=initrd.img //append 指定追加给内核的参数, 这里指定了ks文件的路径 还有initrd的路径 ks文件里配置里有安装配置和安装树的地址
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks initrd=initrd.img
… …
到此 pxe启动 制作完成