参考了51cto博客各路大神的文章,结合自己实践过程,虽中间经历了些困难挫折,最终还是成功完成配置,实现了自动化安装linux。
(重点参考灰度的BLOG, http://rrliang.blog.51cto.com/4214966/1040863)
安装环境,虚拟机VirtualBox虚拟2台机器,一台做kickstart服务器,一台做客户端
服务器系统为CentOS 6.3 X86_64, 安装光盘为CentOS 6.3 X86_64 DVD
网卡全部配置为“内部网络”
首先,需要用到的服务有,dhcpd, httpd, xinetd, tftp, 用yum 依次安装。
vim /etc/xinetd.d/tftp 修改tftp的守护进程配置文件,红色部分为修改的地方,
- service tftp
- {
- disable = no
- socket_type = dgram
- protocol = udp
- wait = yes
- user = root
- server = /usr/sbin/in.tftpd
- server_args = -u nobody -s /tftpboot
- per_source = 11
- cps = 100 2
- flags = IPv4
- }
- ddns-update-style interim;
- allow booting;
- allow bootp;
- ignore client-updates;
- set vendorclass = option vendor-class-identifier;
- subnet 192.168.0.0 netmask 255.255.255.0 {
- option routers 192.168.0.1;
- option subnet-mask 255.255.255.0;
- range dynamic-bootp 192.168.0.10 192.168.0.50;
- filename "/pxelinux.0";
- default-lease-time 21600;
- max-lease-time 43200;
- next-server 192.168.0.1;
- }
- 简单介绍:
- Option routers指定网关;
- Option domain-name-server指定DNS服务器;
- Option subnet-mask指定掩码;
- range dynamic-bootp指定分配给客户端的IP地址段;
- Filename 指定启动镜像;
- Next-server 指定TFTP服务器。
pxelinux.0(文件,从/usr/share/syslinux目录拷贝,若无,则须安装syslinux)
pxelinux.cfg(目录,自建,里面存放名为default的文件,该文件从/mnt/iso/isolinux/isolinux.cfg复制并改名为default)
vmlinuz (文件,从/mnt/iso/isolinux/目录拷贝)
- # Kickstart file automatically generated by anaconda.
- #version=DEVEL
- Install
- url --url=http://192.168.0.1/
- lang en_US.UTF-8
- keyboard us
- text
- key –skip #红帽的序列号,如果有则写,没有则跳过。注:有些版本的系统会忽略这个,而有些则需要你明确定义跳过该步骤。 否则会影响自动化安装。
- network –bootproto=dhcp --device=eth0 --onboot=on
- rootpw --iscrypted $1$AbMG5lMV$wpNs2yKuFbz4iev/ #为root用户设密码,明文也行。
- # Reboot after installation
- reboot
- firewall --disabled
- authconfig --useshadow --passalgo=sha512
- selinux --disabled
- timezone Asia/Shanghai
- bootloader --location=mbr --driveorder=sda
- # 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 --all --initlabel
- part /boot --fstype=ext4 --size=500
- part swap --size=2048
- part / --fstype=ext4 --grow --size=2 #--grow表示将剩余的所有磁盘空间分配给根分区
- #逻辑卷分区创建实例
- part /boot –fstype=ext4 –size=500 #因为系统启动时无法识别lvm分区表,所以需要为/boot单独分区。
- part pv.01 --grow --size=1
- volgroup vg0 pv.01
- logvol swap --fstype=swap --name=swap --vgname=vg0 --size=1024
- logvol / --fstype=ext4 --name=root --vgname=vg0 --size=5120
- logvol /tmp --fstype=ext4 --name=tmp --vgname=vg0 --size=5120
- logvol /home --fstype=ext4 --name=home --vgname=vg0 --size=5120
- logvol /usr/local --fstype=ext4 --name=local --vgname=vg0 --size=10240
- %packages
- @Base
- @Core
- @base
- @client-mgmt-tools
- @debugging
- @emacs
- @ftp-server
- @hardware-monitoring
- @large-systems
- @network-file-system-client
- %end
- timeout 30
- label linux
- menu label ^Install or upgrade an existing system
- menu default
- kernel vmlinuz
- append initrdinitrd=initrd.img ks=http://192.168.0.1/ks.cfg