简介:最近单位存了两百多台服务器,分批出给客户,客户要求的是ubuntu server 12.04,64位系统,要求我们装好后发货,第一批是76台,想想这数量,一台一台安装,每一台的安装向导,分区,软件包,账号密码这些都得填写,这样下去,那得到什么时候了?
无人值守安装的过程
→机器启动,并从网卡引导→网卡获取ip地址,获取tftp 服务器地址,以及启动文件名称→从tftp服务器下载启动文件→读取相关配置→启动安装
于是乎,就用起pxe+kickstart 来安装吧,说到这两个东西,相信大家肯定熟悉,龙其是做为深资的装机专业户,哈哈,好了,进入正题
1 本次环境:
硬件:cisco UCS C220M3
软件:ubuntu server 12.04 64位
2 安装及配置,首先需要安装 apache tftpserver kickstart 配置工具
sudo apt-get install system-config-kickstart tftpd-hpa tftp-hpa apache2
启动 tftp和apache
sudo /etc/init.d/tftp-hpa start
sudo /etc/init.d/apache2 start
这里我们使用 ubuntu 12.04的镜像,直接挂到目录下,可以通过wget 下载镜像,或者使用xmanager、winscp 从本地上传到服务器,均可,看你更习惯用哪种方法,本次环境就,就放到系统 / 目录下
在网站目录建立一个文件夹,用于挂载镜像
sodu mkdir /var/www/html/ubuntu12.04
挂载镜像文件到目录,并设置开机自动挂载
sudo mount -t iso9660 -r -o ro,loop /ubuntu-12.04.5-server-amd64.iso /var/www/html/ubuntu12.04
sudo echo "/ubuntu-12.04.5-server-amd64.iso /var/www/html/ubuntu12.04 iso9660 ro,loop,defaults 0 0" >> /etc/fstab
创建ks目录
sudo mkdir /var/www/html/ks
复制启动文件到tftpboot目录
sudo cp -arf /var/www/html/ubuntu12.04/install/netboot/* /var/lib/tftpboot
添加 ks.cfg 文路径,在install标签下的append 添加ks=http://10.0.3.8/ks/ks.cfg
sudo nano /var/lib/tftpboot/ubuntu-installer/amd64/boot-screens/txt.cfg
default install
label install
menu label ^Install
menu default
kernel ubuntu-installer/amd64/linux
append ks=http://10.0.3.11/ks/ks.cfg vga=788 initrd=ubuntu-installer/amd64/initrd.gz --quiet //本次环境服务器的IP为10.0.3.11
label cli
menu label ^Command-line install
kernel ubuntu-installer/amd64/linux
append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet
ks配置文件:
这个配置文件,可以用kickstart工具来生成,启动这个工具的话,需要图形界面
启动工具命令
sudo system-config-kickstart
截图如下(左侧是各种类型,也就是我们安装系统的时候,那些选项啦),右侧是设置的内容,全部设置好后,点击左上角的,File,然后点击Save File,就保存到/var/www/html/ks目录下
3 DHCP配置
我这里环境,使用的是 cisco(思科)交换机,做的dhcp,下面贴上Cisco(思科)交换机dhcp 的命令
进入全局配置模式
ip dhcp pool pxe
network 10.0.3.0 255.255.255.0
bootfile pxelinux.0
next-server 10.0.3.11
default-router 10.0.3.254
dns-server 10.0.2.2 10.0.2.1
lease 0 2
简述:
pxe为dhcp pool的名字,可以自行定义
network 要分配的地址的网段
bootfile 指定启动文件,注意后面是pxelinux.0,是数字0,不是字母o
default-routeer 和dns-server 为网关和dns,不是必须指定的参数,但如果不指定,安装过程中会跳出来,让你手动输入,这样就不能无人值守安装了
next-server 指定tftp服务器,嗯,也就是我们配置服务器地址,10.0.3.11
下而我们来启动一台机器,安装,这里我再启动一个虚拟机,启动时选择从网络启动
好了,点击install,就可以开始安装了
附1:在某些环境,可能我们的交换机并不是网管交换机,做不了dhcp,这个时候怎么办呢,可以使用linux做为dhcp,这里附上dhcp安装和配置,还以是此服务器上安装
sudo apt-get install dhcp3-server
sudo mv /etc/dhcpd/dhcpd.conf /etc/dhcpd/dhcpd.conf.bak
sudo nano /etc/dhcpd/dhcpd.conf
subnet 10.0.3.0 netmask 255.255.255.0 {
range 10.0.3.20 10.0.3.100; #地址分配范围
option routers 10.0.3.254; #网关
option domain-name-servers 10.0.2.1,10.0.2.2; #分配的dns服务器地址,多个地址用英文状态下的逗号 ( , )分隔
default-lease-time 7200; #默认租期,单位是秒(s)
max-lease-time 14400; #最大租期,单位是秒(s)
filename "pxelinux.0"; #pxe启动文件名称,注意文件最后是数字0,不是字母o
next-server 10.0.3.11; # tftp 服务器地址
}
启动dhcp 服务
sudo /etc/init.d/isc-dhcp-server start
附2:我的ks文件
install
text
lang en_US
langsupport en_US
keyboard us
mouse
timezone --utc Asia/Shanghai
rootpw --iscrypted $1$RjFLPS.0$uBqLmqzdRShnlhGOBUqDJ1
user tdt --fullname "tdt" --iscrypted --password $1$8zjnLFyv$diBX.YRBk6RoKCBZO5GID.
reboot
url --url http://10.0.3.11/ubuntu-server-12.04
bootloader --location=mbr
zerombr yes
clearpart --all --initlabel
part / --asprimary --fstype ext4 --size 28000
part /data --asprimary --fstype ext4 --size 256000
part swap --asprimary --size 1 --grow
auth --useshadow --enablemd5
network --bootproto=dhcp --device=eth0
firewall --disabled
skipx
%packages
@openssh-server
我的环境是,一块300G SAS盘
以上分区是 / 分区 28G,/data分区是256G,剩下还剩16G,就给了swap,这是客户要求的分区情况,一共三个分区,每个分区,都是主分区,请根据你的实际情况进行调整
本人的KS,会清空硬盘所有分区和数据,使用前,如果有重要文件,请先备份。
嗯,就是这样