kickstart 无人值守安装 (自动批量安装)
Cobbler 图形配置的无人值守安装软件
vim /root/anaconda-ks.cfg
vim /root/install.log
基于pxe(preboot execute environment)技术
pxe是intel公司的技术,工作server/client的网络模式,支持客户端从服务端下载软件,再使用tftp(trival file tranfer protocol) 协议下载一个启动软件包到客户端内存中执行。
tftp 简单文件传输协议,提供简单的,不可靠的文件传输。基于UDP的69端口。
要求的技术和服务:
1。nfs服务器或者用http,ftp三种协议之一 (安装光盘目录文件)
2。tftp服务器 --共享启动软件包
3。dhcp服务器 --客户端获取IP,网关,DNS指向,主机名,NIS域,NTP
4。kickstart程序生成的ks.cfg配置文件(此文件就定义了安装系统如何分区,如何格式化,root密码等等) 取一个安装名字,可以由客户端自动选择是否用此安装名安装
满足上面的1,2,3三点,就是安装服务器(类似尚观第一天安装系统的服务器)
客户端选择网络启动--通过dhcp获取IP可以和服务器通迅--通过tftp下载系统引导文件--按照ks.cfg配置文件里的方式来自动安装操作系统--在安装最后一步要安装软件包,会按照ks.cfg里配置的软件包来安装
--我们这里用物理机做服务器,虚拟机做客户端,并使用host-only网络,防止都在同一个网络造成dhcp获取混乱
1,搭建安装源 (光盘目录文件)
[root@li ~]# mount /share/iso/rhel63-64.iso /mnt/ -o loop
[root@li ~]# cp /mnt/* /yum/ -rf --这里我把光盘文件拷贝到/yum目录,用哪个目录自己定义
[root@li ~]# vim /etc/exports
/yum *(ro) --加上这句把光盘文件共享
重启服务使之生效
[root@li ~]# yum install nfs-utils -y
[root@li ~]# yum install rpcbind -y
[root@li ~]# /etc/init.d/rpcbind restart
[root@li ~]# /etc/init.d/nfs restart
或者
[root@li ~]# exportfs -arv
[root@li ~]# chkconfig nfs on
[root@li ~]# chkconfig rpcbind on
2,配置tftp服务器
--如果rhel6里你找不到下面这个配置文件,就先yum install tftp-server这个包
[root@li ~]# vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -t -s -v /var/lib/tftpboot --启动参数改为-t -s -v man in.tftpd查看,注意顺序不要去改变,否则可能会造成不能引导
disable = no --yes改为no,表示服务能用
per_source = 11
cps = 100 2
flags = IPv4
}
[root@li ~]# /etc/init.d/xinetd restart
[root@li ~]# netstat -ntlup |grep :69
udp 0 0 0.0.0.0:69 0.0.0.0:* 3792/xinetd
3,配置pxe启动文件
[root@li ~]# yum install syslinux -y
[root@li ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@li ~]# cp /yum/isolinux/* /var/lib/tftpboot/
[root@li ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@li ~]# cp /yum/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@li ~]# vim /var/lib/tftpboot/pxelinux.cfg/default --修改这个配置文件,加上下面的三行
label linuxli --label后面是无人值守安装的一个安装名称,自定义
kernel vmlinuz
append initrd=initrd.img ks=nfs:1.1.1.1:/yum/ks/ks.cfg
--我们这里是用的nfs服务,所以定义ks文件的路径后面要写nfs:,这里的IP地址是服务器的IP地址,
--因为我这里用虚拟机的vmnet1安装,所以写的是物理机的vmnet1的IP。 最后写的是ks文件的路径
[root@li ~]# mkdir /yum/ks
4,搭建DHCP服务器
# yum install dhcp -y
# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
# vim /etc/dhcp/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
allow booting;
allow bootp;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.1;
option time-offset -18000;
range dynamic-bootp 192.168.1.2 192.168.1.20;
default-lease-time 600;
max-lease-time 7200;
# Group the PXE bootable hosts together
# PXE-specific configuration directives...
next-server 192.168.1.13;
filename "/var/lib/tftpboot/pxelinux.0";
}
# /etc/init.d/dhcpd restart
5.配置kickstart
可以去参考一下/root/anaconda-ks.cfg
[root@li ~]# yum install system-config-kickstart --安装kickstart的图形配置工具
首先配置你的yum客户端配置文件
/etc/yum.repos.d/xxx.repo
[server]
name=sdfsafsafsadfdsaf
baseurl=file:///yum
enabled=1
gpgcheck=0
[loadbalancer]
name=rhel6.3sdfdsafas
baseurl=file:///yum/LoadBalancer
enabled=1
gpgcheck=0
[HighAvailability]
name=HighAvailability
baseurl=file:///yum/HighAvailability
enabled=1
gpgcheck=0
[ScalableFileSystem]
name=ScalableFileSystem
baseurl=file:///yum/ScalableFileSystem
enabled=1
gpgcheck=0
[ResilientStorage]
name=ResilientStorage
baseurl=file:///yum/ResilientStorage
enabled=1
gpgcheck=0
下面开始图形配置
配置过程见笔记里的图
配置完后,保存到哪呢?
保存到nfs或http或ftp这些服务共享出去就可以了,因为这个ks.cfg也要被客户端访问
我这里保存到/yum/ks/ks.cfg
(--注意这里的路径对应上面步骤里default文件里的路径)
[root@li ~]# cat /yum/ks/ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
key --skip --加上这一句,表示跳过安装key
# Install OS instead of upgrade
install
# Use NFS installation media
nfs --server=1.1.1.1 --dir=/yum
# Root password
rootpw --iscrypted $1$cw82QCeM$ysjVx1IcHYWVAcFG4C7N9.
# System authorization information
auth --useshadow --passalgo=sha512
# Use text mode install
text
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone --isUtc Asia/Shanghai
# Network information
network --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --append="rhgb quiet" --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --asprimary --fstype="ext4" --size=200
part swap --asprimary --fstype="swap" --size=1000
part / --asprimary --fstype="ext4" --grow --size=1
%post
touch /root/123
touch /tmp/123
touch /root/Desktop/123
%end
%packages
@additional-devel
@basic-desktop
@chinese-support
@desktop-debugging
@desktop-platform
@desktop-platform-devel
@development
@eclipse
@fonts
@general-desktop
@graphical-admin-tools
@input-methods
@legacy-x
@remote-desktop-clients
@server-platform-devel
@x11
%end
7,用虚拟机安装
创建一个虚拟机,
注意:
1,磁盘大小不要小于ks.cfg文件里定义的分区总大小
2,网卡要选对连接网络(我前面都是用vmnet1做的,所以这里把网卡选成vmnet1
-----------------------------------
实验过程中错误总结:
一,报磁盘空间不足的错
1,虚拟机分配的磁盘大小可能小于ks.cfg定的分区总大小
2,df -h查看一下安装虚拟机路径的物理空间是否足够
3,虚拟机如果scsi硬盘,注意要使用LSI logcial ,不要使用buslogic
二,安装时tftp time out
1,验证tftp的安装步骤
2,可能dhcpd.conf里手动增加的四句话写错
3,IP段写错
4, 防火墙
三,安装后可能没有图形显示:
1,图形包没有安装完全,gnome图形需要同时安装gnome桌面环境和x windows这两个软件包组才行
===========================================================
补充一:
实现安装时连安装名都不用输入:
vim /var/lib/tftpboot/pxelinux.cfg/default --前三行去修改
default linuxli --把这里改成你要安装的名字
prompt 1 --prompt单词的意思在计算机里就表示"是否确认"
timeout 3 --时间改小
/etc/init.d/xinetd restart
===============================
补充二:尝试实现另外两种架构
tftp+dhcp+http
ks=http://1.1.1.1/ks/ks.cfg --http的写法: 家目录为yum,只写相对路径
在ks.cfg里的url那句应该为:
url --url=http://1.1.1.1
tftp+dhcp+ftp
ks=ftp://1.1.1.1/ks/ks.cfg --ftp的写法: 如果家目录为yum,则只写它目录下的/ks/ks.cfg
在ks.cfg里的url那句应该为:
url --url=ftp://1.1.1.1
==========================================================
补充三:
题目:尝试自动安装系统后,还自动安装lamp
实现过程:
写一个lamp安装脚本,因为这种脚本很长,直接把脚本内容放到ks.cfg文件里的post-installion scrip的配置段,可能不太好
建议把这个安装脚本也用服务共享,下载执行;
%post
cd /root
wget http://1.1.1.1/auto.sh >/dev/null 2>&1
sh /root/auto.sh
%end
===========================================================
有兴趣的人可以试试kickstart的图形配置软件
Cobbler