首页 > 代码库 > Centos通过PXE自动化安装
Centos通过PXE自动化安装
Centos的安装管理程序是anaconda,系统安装完成之后会在root的家目录下自动生成一个kickstart配置文件:anaconda_ks.cfg。这个文件主要是由命令段,软件包段和脚本段构成。
命令段:包含安装系统是的各种操作命令
软件包段:包含指定安装或者不安装的软件包和包组
%packages表示此段是软件包段,以%end结束段
PKG_NAME:指定要安装的软件包
@GROUP_NAME: 指定要按装的包组
-PKG_NAME:表示不安装此包,如果此包被依赖,也会被安装
脚本段:
%pre: 安装前脚本,安装环境的准备工作,以%end结束此段
%post:安装后脚本,安装完成后要执行的操作,以%end结束此段
kickstart文件可以通过system-config-kickstart图形化界面来配置,然后生成配置文件,可以以指定的文件名保存在指定目录。也可以打开一个已有的kickstart配置文件来导入配置在原来的基础上做修改。
安装system-config-kickstart
# yum install system-config-kickstart
还有个命令ksvalidator可以检查kickstart文件的语法
# kickstart ks.cfg
PXE自动安装:
1、配置DHCP
安装DHCP
# yum install dhcp
配置DHCP,编辑配置文件/etc/dhcp/dhcpd.conf
option domain-name "example.org"; # 指定网域的域名 option domain-name-servers 172.16.142.1; # DNS 多个可用逗号隔开 default-lease-time 86400; # 默认租约期限 max-lease-time 100000; # 最大租约期限 log-facility local7; # 日志设备类型为local7 subnet 172.16.0.0 netmask 255.255.0.0 { # 指定网段的分配ip 和子网掩码 range 172.16.142.2 172.16.142.254; # 可使用的地址池范围 option routers 172.16.142.1; # 指定网关 next-server 172.16.142.1; # 指定下一个Server为tftp服务器地址 filename "pxelinux.0 "; # 指定到tftp服务器上下载pxelinux.0文件 }
检查配置文件是否有语法错误
# service dhcpd configtest Syntax:OK
重新装载dhcp服务配置文件
# service dhcpd force-reload
设置开机启动服务
# chkconfig dhcpd on
查看开机启动情况
# chkconfig --list dhcpd dhcpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off # 在2,3,4,5运行级别开机启动服务
租约信息库查看ip的分配信息:
# cat /var/lib/dhcpd/dhcpd.leases # The format of this file is documented in the dhcpd.leases(5) manual page. # This lease file was written by isc-dhcp-4.1.1-P1 lease 172.16.142.4 { starts 2 2014/07/29 10:53:30; ends 2 2014/07/29 10:55:30; tstp 2 2014/07/29 10:55:30; cltt 2 2014/07/29 10:53:30; binding state free; hardware ethernet c4:6a:b7:d8:78:b0; client-hostname "android-ef3831713d10353c"; } lease 172.16.142.6 { starts 2 2014/07/29 11:02:12; ends 2 2014/07/29 11:04:12; tstp 2 2014/07/29 11:04:12; cltt 2 2014/07/29 11:02:12; binding state free; hardware ethernet 20:1a:06:bf:dc:43; uid "\001 \032\006\277\334C"; client-hostname "PC201406062256"; }
2、配置tftp Server
安装tftp & tftp-server
# yum install tftp tftp-server
开启tftp服务
# chkconfig tftp on # service xinetd restart
查看tftp服务是否启动
# ss -unl |grep :69 UNCONN 0 0 *:69 *:*
3、提供PXE工作环境
安装syslinux
# yum install syslinux
复制pxelinux.0文件到tftp上
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
4、提供引导内核等所需文件
挂载系统光盘至/media/cdrom
# mount /dev/cdrom /media/cdrom
复制文件到tftpboot目录中
# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot # cp /media/cdrom/isolinux/{splash.jpg,vesamenu.c32,boot.msg} /var/lib/tftpboot
vesamenu.c32启动菜单所需文件,在tftpboot目录下创建pxelinux配置文件目录pxelinux.cfg目录
然后复制/media/cdrom/isolinux/isolinux.cfg启动菜单文件到pxelinux.cfg目录中,并且重命名为default文件
# mkdir /var/lib/tftpboot/pxelinux.cfg # cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default # 配置文件的内容 default vesamenu.c32 # 使用vesamenu.c32文本界面程序 #prompt 1 timeout 600 # 设定超时60秒,单位为0.1秒 display boot.msg menu background splash.jpg # 设置背景图片 menu title Welcome to CentOS 6.5! # 设置标题 menu color border 0 #ffffffff #00000000 menu color sel 7 #ffffffff #ff000000 menu color title 0 #ffffffff #00000000 menu color tabmsg 0 #ffffffff #00000000 menu color unsel 0 #ffffffff #00000000 menu color hotsel 0 #ff000000 #ffffffff menu color hotkey 7 #ffffffff #ff000000 menu color scrollbar 0 #ffffffff #00000000 label linux # 设置标签,启动时按tab键进入命令行界面是,可以使用标签代替命令和参数 menu label ^Install or upgrade an existing system menu default kernel vmlinuz # 内核位置 append initrd=initrd.img ks= # 内核后带的参数,指定了ks文件位置 label vesa menu label Install system with ^basic video driver kernel vmlinuz append initrd=initrd.img xdriver=vesa nomodeset # 没有显卡驱动时,使用基本的显示驱动 label rescue menu label ^Rescue installed system kernel vmlinuz append initrd=initrd.img rescue # 救援模式 label local menu label Boot from ^local drive localboot 0xffff # 启动本地磁盘 label memtest86 #内存测试 menu label ^Memory test kernel memtest append -
5、提供安装源
安装httpd
# yum install httpd # 创建光盘挂载目录 # mkdir /var/www/html/centos # 挂载光盘到目录 # mount /dev/cdrom /var/www/html/centos # 或者把光盘挂载至/media/cdrom,再将/var/www/html/centos绑定挂载至/media/cdrom # mount /dev/cdrom /media/cdrom # mount /media/cdrom /var/www/html/centos
6、提供ks.cfg文件
注意:ks.cfg 文件other用户要拥有可读权限
将ks.cfg文件复制到http默认目录下
# cp ~/anaconda_ks.cfg /var/www/html/ks.cfg # Kickstart file automatically generated by anaconda. #version=DEVEL install # 兼容Centos5的安装源,不可省略,会报错 url --url=http://172.16.142.1/centos .... # 分区格式化 clearpart --all part /boot --fstype=ext4 --size=200 part pv.008002 --size=61440 volgroup vg0 --pesize=8192 pv.008002 logvol / --fstype=ext4 --name=root --vgname=vg0 --size=20480 logvol swap --name=swap --vgname=vg0 --size=2048 logvol /usr --fstype=ext4 --name=usr --vgname=vg0 --size=10240 logvol /var --fstype=ext4 --name=var --vgname=vg0 --size=20480 # 指定安装源 repo --name="CentOS" --baseurl=http://172.16.142.1/centos --cost=100 # 配置安装的包和包组 %packages @Base @Core @base @basic-desktop ... ibus-table-cangjie ibus-table-erbi ibus-table-wubi lftp %end # 安装后脚本 %post ... %end
本文出自 “BH4CXJ” 博客,请务必保留此出处http://9144446.blog.51cto.com/9134446/1533008