如何配置路由器脚本Kickstart脚本

kickstart批量装机脚本
时间: 23:37:40
&&&& 阅读:472
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&#!/bin/bash
#安装必备的软件
yum -y install dhcp tftp-server tftp xinetd syslinux vsftpd
yum -y install *kickstart*
#配置kickstart服务器端的DHCP服务
&/etc/dhcpd.conf
#############################################################
cat& /etc/dhcpd.conf&&EOF
ddns-update-
ignore client-
next-server 10.1.2.53;
filename "pxelinux.0";
subnet 10.1.2.0 netmask 255.255.255.0 {
& && &&&option routers& &&
&& && && && &10.1.2.1;
& && &&&option subnet-mask& &&
&& && &&&255.255.255.0;
& && &&&option time-offset& &&
&& && &&&-18000; # Eastern Standard Time
& && &&&range dynamic-bootp 10.1.2.100
10.1.2.200;
& && &&&default-lease-time 21600;
& && &&&max-lease-time 43200;
#####################################################
#修改网卡配置文件并启动DHCP
sed -i ‘s/^.*IPADDR.*$/IPADDR=10.1.2.53/g‘
/etc/sysconfig/network-scripts/ifcfg-eth1
sed -i ‘s/^.*BOOTPROTO.*$/BOOTPROTO=static/g‘
/etc/sysconfig/network-scripts/ifcfg-eth1
service network restart
service dhcpd restart
#修改tftp配置文件并重启xinetd服务
sed -i ‘s/^.*disable.*$/disable = no/g‘ /etc/xinetd.d/tftp
rsync -av /usr/lib/syslinux/pxelinux.0 /tftpboot/
service xinetd restart
#创建必要的目录
mkdir /var/ftp/disk&
mkdir /var/ftp/kickstart
#挂载安装光盘
mount /dev/cdrom /var/ftp/disk
service vsftpd restart
#拷贝光盘中网卡启动文件到tftpboot目录下
rsync -av /var/ftp/disk/images/pxeboot/ /tftpboot/
mkdir -p /tftpboot/pxelinux.cfg
修改网卡启动文件
#####################################################
cat& /tftpboot/pxelinux.cfg/default&&EOF
default linux
timeout 30
label linux
&&kernel vmlinuz
&&append initrd=initrd.img ks=ftp://10.1.2.53/kickstart/ks.cfg
#####################################################
#修改kickstart配置文件,这个文件的内容可以参照root目录下的anaconda-ks.cfg文件内容
cat&/var/ftp/kickstart/ks.cfg&&EOF
#nfs --server=10.1.2.53 --dir=/var/ftp/pub/
url --url&
#key --skip
#key 07fc00
#lang en_US.UTF-8
lang zh_CN.UTF-8
keyboard us
network --device eth0 --bootproto dhcp --onboot=on
rootpw 123456
authconfig --enableshadow --enablemd5
firewall --disabled
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="rhgb quiet
clock=pit"
clearpart --all --drives=sda --initlabel
#part / --fstype ext3 --size=1 --grow
#part /var --fstype ext3 --size=2000
#part swap --size=1000
@text-internet
@web-server
@graphical-internet
@chinese-support
@gnome-desktop
libgfortran43
python-docs
kexec-tools
device-mapper-multipath
xorg-x11-utils
xorg-x11-server-Xnest
xorg-x11-server-Xvfb
libsane-hpaio
perl-libxml-perl
perl-XML-SAX
perl-Convert-ASN1
perl-DateManip
perl-XML-Twig
perl-XML-Grove
perl-XML-Dumper
python-imaging
perl-Crypt-SSLeay
perl-Mozilla-LDAP
perl-Archive-Zip
perl-TimeDate
perl-XML-NamespaceSupport
/usr/sbin/useradd admin
/bin/echo 888888 | sr/bin/passwd admin --stdin
/bin/touch /home/admin/HelloWorld
/sbin/chkconfig auditd off
/sbin/chkconfig autofs off
/sbin/chkconfig avahi-daemon off
/sbin/chkconfig bluetooth off
/sbin/chkconfig cups off
/sbin/chkconfig firstboot off
/sbin/chkconfig gpm off
/sbin/chkconfig haldaemon off
/sbin/chkconfig hidd off
/sbin/chkconfig ip6tables off
/sbin/chkconfig kudzu off
/sbin/chkconfig mcstrans off
/sbin/chkconfig netfs off
/sbin/chkconfig nfslock off
/sbin/chkconfig pcscd off
/sbin/chkconfig portmap off
/sbin/chkconfig restorecond off
/sbin/chkconfig rhnsd off
/sbin/chkconfig rpcgssd off
/sbin/chkconfig rpcidmapd off
/sbin/chkconfig smartd off
/sbin/chkconfig yum-updatesd off
#####################################################
Kickstart/Anaconda实现自动化安装原理探究
一.& 系统安装一般流程
& 首先了解系统安装一般流程:
Anaconda简介
&&& &Anaconda是Red Hat、CentOS、Fedora等Linux的安装管理程序。它可以提供文本、图形等安装管理方式,并支持Kickstart等脚本提供自动安装的功能。此外,其还支持许多启动参数,熟悉这些参数可为安装带来很多方便。该程序是把位于光盘或其他源上的数据包,根据设置安装到主机上的一个程序;为实现该定制安装,其提供一个定制界面,可以实现交互式界面供用户选择配置(如选择语言,键盘,时区等信息);
Anaconda支持的管理模式:
&&& Kickstart提供的自动化安装
&&& 对一个RedHat实施upgrade
&&& Rescuse模式对不能启动的系统进行故障排除;
&&&& 要进入安装步骤,需要先有一个引导程序引导启动一个特殊的Linux安装环境系统;引导有多种方式:
&&& 1.& 基于网络方式的小型引导镜像,需要提供小型的引导镜像;
&&& 2.& U盘引导,通过可引导存储介质中的小型引导镜像启动安装过程;
&&& 3.& 基于PXE的网络安装方式,要提供PXE的完整安装环境;
&&& 4.& 其他bootloder引导(如GRUB)
可用的安装方式:
&&& 本地CDROM
&&& 磁盘驱动器
&&& NFS映像
&&& 通过网络方式安装时:
&&& 不论通过FTP、HTTP还是NFS方式共享安装,可以将安装光盘先拷贝到网络服务器上保存为iso镜像,然后loop挂载到共享目录或网页目录(当然,拷贝镜像中的所有文件到指定位置或直接挂载到共享目录也可),而通过NFS方式时,可以直接将光盘的iso文件放到共享目录即可,安装程序挂载共享目录后可以自动识别镜像;
&& 注:复制安装光盘,并保存为一个 iso 映像文件的方法:
&& 对于 DVD/CD:
&& # dd if=/dev/cdrom& of=/location/of/disk/space/RHEL.iso&
&&& &&& 注意拷贝时bs块大小设置为32k,我实验时设为1M,虽然减小了文件体积,但是安装读镜像时会报错。
Kickstart简介:
&&&& kickstart是一个利用Anconda工具实现服务器自动化安装的方法;通过生成的kickstart配置文件ks.cfg,服务器安装可以实现从裸机到全功能服务的的非交互式(无人值守式)安装配置;
ks.cfg是一个简单的文本文件,文件包含Anconda在安装系统及安装后配置服务时所需要获取的一些必要配置信息(如键盘设置,语言设置,分区设置等);Anconda直接从该文件中读取必要的配置,只要该文件信息配置正确无误且满足所有系统需求,就不再需要同用户进行交互获取信息,从而实现安装的自动化;但是配置中如果忽略任何必需的项目,安装程序会提示用户输入相关的项目的选择,就象用户在典型的安装过程中所遇到的一样。一旦用户进行了选择,安装会以非交互的方式(unattended)继续。
使用kickstart优势:
&&& 1.& 流线化自动化的安装;
&&& 2.& 快速大量的裸机部署;
&&& 3.& 强制建立的一致性(软件包,分区,配置,监控,安全性)
&&& 4.& 减少人为的部署失误
使用Kickstart方法安装的过程:
&&& 1.& 创建一个kickstart文件
&&& 2.& 创建有kickstart文件的引导介质或者使这个文件在网络上可用;
&&& 3.& 筹备一个安装树
&&& 4.& 开始ks安装:anconda自身启动 --&选取ks安装模式--& 从ks文件读取配置 --& 最后安装
创建kickstart配置文件的方式:
&& 1.& 文本编辑器编辑生成:vim
&& 2. 用图形化界面配置:system-config-kickstat(需要安装system-config-kickstart.noarch包)
& 注:图形化界面配置时,磁盘选项无法创建配置LVM(逻辑卷);
&&& & 文件生成后,推荐使用ksvalidator命令检查配置文件语法及完整性错误;
&&& && [root@bogon ~]# ksvalidator ks.cfg&
&&& &&& not enough arguments for format string
图形化界面配置示例:
引导并指定安装方式:
& 系统引导界面:
& 系统引导后,会显示boot:命令提示符;如上,界面上会有各种模式操作提示;
& 注:用户交互的文本安装方式中不能进行LVM的自定义配置,只能查看、接受默认设置;
& 在boot:命令行里有用的几个项:
&&& :强制GUI安装时分辨率调低为640*480
&&&& :安装过程不支持ipv6网络
&&& :不去自动检测硬件,而是提示用户;
&&& :通过网络加载设备驱动
&&&& :指定kickstart文件的放置位置;
另外还有ip、netmask、gateway、dns、vnc等选项;
&& 用ks选项被指定时kickstart文件位置时,Anaconda进入Kickstart安装模式;
安装时获取kickstart文件的方式:
(1) boot:linux
&&& ks命令单独使用时,系统会尝试通过dhcp服务器配置网卡,并且从DHCP会话中获取kickstart配置文件的位置;
&&& 在dhcp服务器dhcp配置文件中有kickstart文件位置说明,next-server关键字指向共享文件的NFS主机,用filename关键字指向主机上的文件路径;如果没有filename关键字,则尝试在next-server关键字指向主机的/kickstart文件夹中找kickstart文件;
&&&&下面是dhcp.conf文件中kickstart配置字段示例:
#&The&following&lines&are&examples&of&kickstart&directives.&
&&&&&&&&filename&"/data/ks/ks.cfg";&
&&&&&&&&next-server&192.168.1.10;&
# 注:上面部分需要写在subnet子段中;
(2) boot:linux
& && 基于网络的文件服务器(网络服务器),获取配置文件,支持HTTP、FTP、NFS方式获取文件;例:
&&& ks=ftp://192.168.0.254/pub/kistart/ks.cfg
&&& ks=http:// 192.168.0.254/pub/kistart/ks.cfg
&&& ks=nfs:ip_addr:/path/to/ks.cfg
(3) boot:linux
ks=hd:device/path/to/your/kickstart_file
&& & 基于本地的安装方式,需要依次指定设备名,路径,文件名等;例如:&&&&
&& 文件在光盘中:ks=cdrom:/ks.cfg
&& 文件在软盘中:&&& ks=floppy:/filedirectory/ks.cfg
&& 文件在硬盘中:ks=hd:/sdb1/myfile/ks.cfg
&& 文件也可被打包进initrd根文件系统中:ks=file:/ks.cfg
kickstart文件结构介绍:
& 1.& 命令部分:配置系统的属性及安装中的各种必要设置信息
& 2.& %packages部分:设定需要安装的软件包及包组,Anaconda会自动解决依赖关系
& 3.& 脚本部分:用于定制系统,分为%pre部分在安装前运行,%post在安装后运行
& & %pre 部分脚本作为一个bash shell脚本执行,在Kickstart文件解析后执行;
& & %post 解析器默认为bash,可以自定义,缺省为chroot状态,也可指定非chroot状态;
五.& Kickstart文件中的主要项目及参数介绍:
&&& 每个项目都由关键字来识别;关键字可跟一个或多个参数;如果某选项后面跟随了一个等号(=),它后面就必须指定一个值。
install & (可选)
&&& 明确指定系统次次进行的是全新安装系统;是默认项;
cdrom& (可选)
&&& 以本地CD-ROM为源安装系统;
harddrive& (可选)
&&& 以硬盘分区中包含的镜像为源(安装树)安装新系统;当以该种方式安装系统时,即使指定clearpart --all项,源所在分区也不会被重新抹去;
&&& --partition=&&& 指定分区
&&& --dir=&&& &&& 指定包含镜像的目录
&&& harddrive& --partition=/dev/sdb2& --dir=/data/iso
nfs&& (可选)
&&& 指定从NFS服务器上获取安装树;
&&& --server=&&& 指定NFS服务器,主机名称或IP
&&& --dir=&&& &&& 包含安装树的目录
&&& --opts=&&& &&& 可以指定挂载NFS的目录时的挂载选项
&&& nfs& --server=192.168.1.254& --dir=/data/iso
url & (可选)
&&& 指定通过FTP或HTTP从网络获取安装树;
&&& --url&&& 指定资源位置
&&& url& --url&
ftp://&username&:&password&@/iso
&&& url& --url& /iso
bootloader (必需)
&&& 设定boot loader安装选项;
&&& --append=&&& &&& 可以指定内核参数
&&& --driveorder=&&& 设定设备BIOS中的开机设备启动顺序
&&& --location=&&& &&& 设定引导记录的位置;
mbr:默认值;partition:将boot
loader安装于包含kernel的分区超级快中;none:不安装boot
&&& 示例:
&&& bootloader& --location=mbr& --append=&rhgb quiet&
--driveorder=sda,sdb
&&clearpart (可选)
&&& 在建立新分区前清空系统上原有的分区表,默认不删除分区;
&&& --all& &&& 擦除系统上原有所有分区;
&&& --drives&&& 删除指定驱动器上的分区
&&& --initlabel&&& 初始化磁盘卷标为系统架构的默认卷标
&&& --linux&&& &&& 擦除所有的linux分区
&&& --none(default)不移除任何分区
&& clearpart& --drives=hda,hdb --all& --initlabel
zerombr& (可选)
&&& 清除mbr信息,会同时清空系统用原有分区表
drivedisk (可选)
&&& 如果使用特殊存储方式时,需要指定驱动程序盘位置以便加载存储驱动;
&& 1.& 将驱动盘拷贝到本地硬盘某分区根目录:
&&&& drivedisk &partition& [ --type=&fstype& ]
&& 2.& 也可以指定一个网络位置加载驱动程序盘
&&&& drivedisk& --source=ftp://path/to/drive.img
&&&& drivedisk& --source=http://path/to/drive.img
&&&& drivedisk& --source=nfs:host://path/to/drive.img
firewall (可选)
&&& 配置系统防火墙选项;
&&& firewall &enable|--disable& [ --trust ] &device&
[ --port= ]
&&& --enable&&& &&& 拒绝外部发起的任何主动连接;
&&& --disable&&& &&& 不配置任何iptables防御规则;
&&& --trust&&& &&& 指定完全信任网卡设备;
&&& --port&&& &&& 使用port:protocol格式指定可以通过防火墙的服务;
&&& 示例:
&&& firewall --enable --trust eth0& --trust eth1&
--port=80:tcp
selinux (可选)
&&& 设置系统selinux状态;默认为启用并处于enforcing模式;
&&& selinux [ --disabled|&enforcing|--premissive ]
reboot (可选)
&&& 在系统成功安装完成后默认自动重启系统(kickstart方法时);在收到你敢装系统完成后,会提示按任意键进行重启;
&&& 在本文件中没有明确指明其他方法时就默认完成方式为reboot;
&&& 使用 reboot 选项可能会导致安装的死循环,这依赖于安装介质和方法。需要特别注意;
halt& (可选)
&&& 在系统成功安装完成后关机;默认为reboot;
&&& 其他选项还有shutdown、poweroff,需要使用请自行参考官方文档。
graphical (可选)
&&& 默认值,在图形模式下进行kickstart方式安装;
text (可选)
&&& 以文本方式进行kickstart安装;默认为图形界面
key& (可选)
&&& 设置一个安装码(installration number),用于获取redhat官方的支持服务;
&&& --skip&&& 跳过key设置,不进行设置;如果不设置可能跳转到交互模式让用户选取动作;
keyboard (必需)
&&& 设置键盘类型;一般设置为us;
lang (必需)
&&& 设置安装过程使用的语言及系统的缺省语言;文本模式安装时可能不支持某些语言(中、韩...),所以可能仍以默认的英文方式安装;默认en_us,装中文时,需要后期%packages部分装上中文支持组件;
&&& lang en_US
timezone (可选)
&&& 设置系统的时区;
&&& timezone& [ --utc ]& &timezone&
&&& timezone& --utc& Asia/Shanghai
auth/authconfig& (必需)
&&& 设置系统的认证方式;默认为加密但不隐藏(shadow);
&&& --enablemd5&&& 使用MD5加密方式
&&& --useshadow或&enableshadow&&& 使用隐藏密码;
&&& --enablenis=&&&& 使用NIS认证方式
&&& --nisdomain=&&& NIS域
&&& --nisserver=&&& && NIS服务器
&&& 还可以设置LDAP、SMB及Kerberos 5认证方式,详细请参考官方文档;
&&& authconfig& --useshadow& --enablemd5
rootpw (必需)
&&& 设置系统root账号的密码;
&&& rootpw [ --iscrypted ]& &passwd&
&&& --iscrypted&&& 表示设置的密码为加密过的串;
&&& rootpw& pa4word
&&& rootpw --iscrypted& $1$RPYyxobb$/LtxMNLJC7euEARg2Vu2s1
network (可选)
&&& 配置网络信息;在网络安装(NFS/HTTP/FTP)时必须指定;
&&& --bootproto=dhcp|bootp|static&&& 指定ip获取方式,默认为dhcp/
&&& --device=&&& 设置安装时激活来进行系统安装的网卡设备;该参数只在kickstart文件为本地文件时有效;若kickstart配置文件在网络上,安装程序会先初始化网卡然后去寻找kickstart文件;
&&& --ip=&&& ip设置
&&& --gateway=&& 网关
&&& --nameserver=& DNS设置
&&& --nodns&&& &&&& 不设置DNS
&&& --netmask=&& 掩码
&&& --hostname= 设置安装后主机名称
&&& --onboot=&&& 设置是否在系统启动时激活网卡
&&& --class=&&& &&& 设置DHCP的class值
&&& --noipv4&&& &&& 禁用该设备的ipv4功能
&&& --noipv6&&& &&& 禁用该设备的ipv6功能
&&& 如将网络模式设置为静态模式,则必须在一行内写上ip,netmask、dns、gateway等信息;
&&& network &bootproto=static &ip=1.1.1.1 --metmask=255.0.0.0
--gateway=1.1.1.254 --nameserver=1.1.1.2
&&& netmask --bootproto=dhcp& --device=eth0
KICKSTART无人值守安装的脚本
KICK_SRV="80.1.1.199"
DHCP_SUB="80.1.1.0"
DHCP_MASK="255.255.255.0"
DHCP_RANGE="80.1.1.100 80.1.1.200"
CDROM_PATH=/media
NETINSTALL_PATH=/netinstall
KS_CFG=ks.cfg
umount /dev/mount
/dev/cdrom /media
yum -y install dhcp
cat & /etc/dhcpd.conf && EOF1
ddns-update-style
ignore client-
next-server ${KICK_SRV};
filename "pxelinux.0";
subnet ${DHCP_SUB}
netmask ${DHCP_MASK} {
# --- default gateway
&&&&&&& option
routers&&&&&&&&&&&&&&&&&
192.168.0.1;
&&&&&&& option
subnet-mask&&&&&&&&&&&&&
255.255.255.0;
nis-domain&&&&&&&&&&&&&&
"domain.org";
#&&&&&& option
domain-name&&&&&&&&&&&&&
"domain.org";
#&&&&&& option
domain-name-servers&&&&& 192.168.1.1;
time-offset&&&&&&&&&&&&&
-18000; # Eastern Standard Time
#&&&&&& option
ntp-servers&&&&&&&&&&&&&
192.168.1.1;
#&&&&&& option
netbios-name-servers&&&& 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don‘t change this unless
# -- you understand Netbios very well
#&&&&&& option netbios-node-type 2;
range dynamic-bootp ${DHCP_RANGE};
&&&&&&& default-lease-time 21600;
&&&&&&& max-lease-time 43200;
# we want the nameserver to appear at a fixed address
&&&&&&& host ns {
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
hardware ethernet 12:34:56:78:AB:CD;
&&&&&&&&&&&&&&&
fixed-address 207.175.42.254;
/etc/xinetd.d/tftp &&EOF2
service tftp
socket_type&&&&&&&&&&&&
protocol&&&&&&&&&&&&&&&
wait&&&&&&&&&&&&&&&&&&&
user&&&&&&&&&&&&&&&&&&&
server&&&&&&&&&&&&&&&&&
= /usr/sbin/in.tftpd
server_args&&&&&&&&&&&&
= -s /tftpboot
disable&&&&&&&&&&&&&&&&
per_source&&&&&&&&&&&&&
cps&&&&&&&&&&&&&&&&&&&&
flags&&&&&&&&&&&&&&&&&&
function Tftp_operate {
rsync -av ${CDROM_PATH}/images/pxeboot/initrd.img /tftpboot/
rsync -av ${CDROM_PATH}/images/pxeboot/vmlinuz /tftpboot/
rsync -av /usr/lib/syslinux/pxelinux.0 /tftpboot/
mkdir -p /tftpboot/pxelinux.touch /tftpboot/pxelinux.cfg/
mkdir -p ${NETINSTALL_PATH}
Tftp_operate
/tftpboot/pxelinux.cfg/default && EOF3
default linux
timeout 30
label linux
kernel vmlinuz
append ks=nfs:${KICK_SRV}:${NETINSTALL_PATH}/${KS_CFG} initrd=initrd.img
cat & /etc/exports
${NETINSTALL_PATH}&&&&&&&&&&&&&&&&&&&&
*(ro,async)
${CDROM_PATH}&&&&&&&&&&&&&&&&&&&&&&&&
*(ro,async)
exportfs -rv
${NETINSTALL_PATH}/${KS_CFG} &&EOF5
nfs --server=${KICK_SRV} --dir=${CDROM_PATH}
key --skip
lang en_US.UTF-8
keyboard us
network --device eth0 --bootproto dhcp --onboot=on
rootpw 123
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone --utc Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="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 --all --drives=sda --initlabel
part /boot --fstype ext3 --size=100
part /home --fstype ext3 --size=1000
part swap --size=2048
part / --fstype ext3 --size=5000
@text-internet
@gnome-desktop
@legacy-software-support
@sound-and-video
@admin-tools
@graphical-internet
kexec-tools
device-mapper-multipath
xorg-x11-utils
xorg-x11-server-Xnest
libsane-hpaio
-sysreport
function StartServer {
/etc/init.d/dhcpd restart
/etc/init.d/xinetd restart
/etc/init.d/portmap restart
/etc/init.d/nfs restart
StartServer
&标签:&&&&&&&&&&&&&&&&&&原文:/L-H-R-X-hehe/p/3786088.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!用户名:waydee
文章数:55
评论数:53
访问量:111253
注册日期:
阅读量:1297
阅读量:3317
阅读量:582223
阅读量:466902
[匿名]鸦鸦小邪:
51CTO推荐博文
& & &PXE+TFTP+NGINX+Kickstart安装并测试完成,并用脚本实现自动安装PXE环境,脚本介绍如下:
&&&&&脚本功能: 自动安装配置PXE+TFTP+NGINX+Kickstart环境
&&&&&运行前提: 将CentOS DVD文件准备好,默认是从光驱挂载并复制
& 脚本变量: 根据实际情况修改如下变量
& & & & &HTML_DIR: nginx默认的html目录
& & & & &NAME_SERVER: dhcpd.conf的domain-name-servers的值
& & & & &SUBNET:&& dhcpd.conf的subnet的值
& & & & &NETMASK:& dhcpd.conf的netmask的值
& & & & &RANG_START: dhcpd.conf的IP地址池开始地址
& & & & &RANG_END:& dhcpd.conf的IP地址池结束地址
& & & & &NEXT_SERVER: dhcpd.conf的next_server的值
& & & & &TFTPBOOT_DIR: tftp默认目录
& & & & &PXELINUX_DIR: pxelinux.cfg目录
& & & & &BOOT_SIZE:&&& /boot分区大小
& & & & &SWAP_SIZE:&&&& swap大小
& & & & &ROOT_SIZE:& /分区大小, 其余空间为/opt分区&&
使用注意: PXE环境和生产环境要隔离,并且限制主机的访问,防止有服务器默认从网卡启动,重启后就直接重新安装系统
脚本功能演示:
演示时为了节省时间,没有将iso挂载到光驱,所以找不到iso下面的文件
运行完脚本后,环境就搭建完成,将服务器从PXE启动:
脚本代码:
&&&&&&&&&&&&&&&&ISO_MNT=&/mnt/iso&&&&&&&&&&&&&&&&&&&&G_LEFT=&\e[0;32m\033[1m&&&&&&&&&&&&&&G_RIGHT=&\e[m&&&&&&&&&&&&&&&&&&&&&&&&R_LEFT=&\e[0;31m\033[1m&&&&&&&&&&&&&&R_RIGHT=&\e[m&&&&&&&&&&&&&&&&&&&&&&&&HTML_DIR=&/usr/share/nginx/html&&&&&&NAME_SERVER=&192.168.2.101&&&&&&&&&&&SUBNET=&192.168.2.0&&&&&&&&&&&&&&&&&&NETMASK=&255.255.255.0&&&&&&&&&&&&&&&RANG_START=&192.168.2.220&&&&&&&&&&&&RANG_END=&192.168.2.225&&&&&&&&&&&&&&NEXT_SERVER=&192.168.2.101&&&&&&&&&&&TFTPBOOT_DIR=&/var/lib/tftpboot&&&&&&PXELINUX_DIR=&${TFTPBOOT_DIR}/pxelinux.cfg&&&&&&&BOOT_SIZE=&100&&&&&&&&&&&&&&&&&&&&&&&SWAP_SIZE=&4096&&&&&&&&&&&&&&&&&&&&&&ROOT_SIZE=&40960&&&&&&&&&&&&&&&&&&&&&&&&&&check_mnt_dir()&{&&&&&&&&&if&[&-e&${ISO_MNT}&]&&&&&&&&&then&&&&&&&&&&&&&echo&-e&&INFO:&${ISO_MNT}&dir&has&${G_LEFT}exits${G_RIGHT}.&&&&&&&&&&else&&&&&&&&&&&&&mkdir&-p&${ISO_MNT}&&&&&&&&&&&&&echo&-e&&INFO:&Create&dir&${ISO_MNT}&${G_LEFT}done${G_RIGHT}.&&&&&&&&&&fi&&&}&&&&&&&&if&[&!&-e&/etc/yum.repos.d/epel.repo&]&then&&&&&&rpm&-ivh&http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm&1&/dev/null&&&&&&echo&-e&&Install&EPEL&source&${G_LEFT}done${G_RIGHT}.&&fi&&&yum&-y&install&tftp-server&system-config-kickstart&dhcp&syslinux&nginx&&&1&/dev/null&echo&-e&&INFO:&Install&RPMS&${G_LEFT}done${G_RIGHT}.&&&&check_mnt_dir&&&&mount&-t&iso9660&/dev/cdrom&&${ISO_MNT}&1&/dev/null&echo&-e&&INFO:&Mount&cdrom&to&${ISO_MNT}&${G_LEFT}done${G_RIGHT}.&&&&echo&-e&&INFO:&Start&to&copy&CentOS&image,&this&may&take&severl&minitus&...&&cp&-a&${ISO_MNT}/*&&&&&${HTML_DIR}&1&/dev/null&&echo&-e&&INFO:&Copy&Centos&DVD&${G_LEFT}done${G_RIGHT}.&&&&cat&/etc/dhcp/dhcpd.conf&&EOF&option&domain-name-servers&${NAME_SERVER};&max-lease-time&7200;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&subnet&${SUBNET}&netmask&${NETMASK}&{&range&${RANG_START}&&${RANG_END};&next-server&${NEXT_SERVER};&filename&&pxelinux.0&;&}&EOF&&echo&-e&&INFO:&Config&DHCP&${G_LEFT}done${G_RIGHT}.&&&&service&dhcpd&restart&1&/dev/null&&&sleep&2&&&ps&aux|grep&dhcpd|grep&-v&grep&1&/dev/null&DHCP_STATUS=$?&if&[[&${DHCP_STATUS}&==&1&&]]&then&&&&&echo&-e&&ERROR:&DHCPD&start&${R_LEFT}Failed${R_RIGHT}.&&&&&&exit&1&else&&&&&echo&-e&&INFO:&DHCPD&start&${G_LEFT}OK${G_RIGHT}.&&fi&&&sed&&&-i&&'s/disable.*$/disable&&&&&&&&&=no/'&&/etc/xinetd.d/tftp&&&echo&-e&&INFO:&TFTP&turn&on&${G_LEFT}OK${G_RIGHT}.&&&&service&&xinetd&restart&1&/dev/null&echo&-e&&INFO:&Xinetd&restart&${G_LEFT}OK${G_RIGHT}..&&&&if&[&-e&${PXELINUX_DIR}&]&then&&&&&echo&-e&&INFO:&${PXELINUX_DIR}&dir&has&${G_LEFT}exits${G_RIGHT}.&&else&&&&&mkdir&-p&${PXELINUX_DIR}&&&&&echo&-e&&INFO:&Create&dir&${PXELINUX_DIR}&${G_LEFT}done${G_RIGHT}.&&fi&&&cp&-a&${ISO_MNT}/images/pxeboot/initrd.img&&${TFTPBOOT_DIR}&echo&-e&&INFO:&Copy&initrd.img&to&${TFTPBOOT_DIR}&${G_LEFT}done${G_RIGHT}.&&&cp&-a&${ISO_MNT}/images/pxeboot/vmlinuz&&${TFTPBOOT_DIR}&echo&-e&&INFO:&Copy&vmlinuz&&to&${TFTPBOOT_DIR}&${G_LEFT}done${G_RIGHT}.&&&cp&-a&/usr/share/syslinux/pxelinux.0&&${TFTPBOOT_DIR}&echo&-e&&INFO:&Copy&pxelinux.0&to&${TFTPBOOT_DIR}&${G_LEFT}done${G_RIGHT}.&&&&&cat&${PXELINUX_DIR}/default&&EOF&default&ks&&prompt&1&timeout&600&display&boot.msg&F1&boot.msg&F2&options.msg&F3&general.msg&F4&param.msg&F5&rescue.msg&label&linux&&&kernel&vmlinuz&&&&&append&initrd=initrd.img&label&text&&&kernel&vmlinuz&&&&append&initrd=initrd.img&text&label&ks&&&menu&default&&&&kernel&vmlinuz&&&append&initrd=initrd.img&ksdevice=eth0&ks=http://${NAME_SERVER}/ks.cfg&label&local&&&localboot&1&&&label&memtest86&&&kernel&memtest&append&-&EOF&echo&-e&&INFO:&pxelinux.cfg/default&${TFTPBOOT_DIR}&${G_LEFT}done${G_RIGHT}.&&&&cat&${HTML_DIR}/ks.cfg&&EOF&&&&firewall&--enabled&--http&--ssh&&install&&&url&--url=http://${NAME_SERVER}/&&rootpw&--iscrypted&$1$kBe14BGG$GEWFllYBwDpMn055nK7Jk0&&auth&&--useshadow&&--passalgo=sha512&&text&&keyboard&us&&lang&en_US&&selinux&--disabled&&skipx&&logging&--level=info&&reboot&&timezone&&Asia/Shanghai&&network&&--bootproto=dhcp&--device=eth0&--onboot=on&&bootloader&--location=mbr&&clearpart&--all&&&&part&/boot&--asprimary&--fstype=&ext3&&--size=${BOOT_SIZE}&part&swap&--fstype=&swap&&--size=${SWAP_SIZE}&part&/&--fstype=&ext3&&--size=${ROOT_SIZE}&part&/opt&--fstype=&ext3&&--grow&--size=1&&%packages&@base&@core&imake&keyutils&trousers&fipscheck&device-mapper-multipath&@development-libs&@admin-tools&@system-tools&@chinese-support&@text-internet&EOF&echo&-e&&INFO:&ks.cfg&config&${TFTPBOOT_DIR}&${G_LEFT}done${G_RIGHT}.&&&&service&nginx&restart&2&&1&&/dev/null&&sleep&2&&ps&aux|grep&nginx|grep&-v&grep&1&/dev/null&&NGINX_STATUS=$?&if&[[&${NGINX_STATUS}&==&1&&]]&then&&&&&echo&-e&&ERROR:&nginx&start&${R_LEFT}Failed${R_RIGHT}.&&&&&&exit&1&else&&&&&echo&-e&&INFO:&nginx&start&${G_LEFT}OK${G_RIGHT}.&&fi&&&echo&-e&&INFO:&PXE+TFTP+NGINX+Kickstart&has&been&installed&&${G_LEFT}SUCCESS${G_RIGHT}.&&
Kickstart创建LVM命令
&&&part&/boot&&--fstype=&ext3&&--size=100&&&part&pv.01&--size=1&--grow&&&volgroup&vg_root&pv.01&&&logvol&/&--vgname=vg_root&--size=30720&--name=lv_root&&&logvol&swap&--vgname=vg_root&--size=32768&--name=lv_swap&&&logvol&/opt&--vgname=vg_root&--size=1&--grow&--name=lv_opt&
&本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
21:37:44 08:48:58 09:09:41 14:06:39 23:42:55

我要回帖

更多关于 无法使用自动配置脚本 的文章

 

随机推荐