Cobbler 是一个系统启动服务(boot server),可以通过网络启动(PXE)的方式用来快速安装、重装物理服务器和虚拟机,支持安装不同的 Linux 发行版和 Windows。该工具使用python开发,小巧轻便(才15k行代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理 DHCP,DNS,以及yum包镜像。
Cobbler 使用命令行方式管理,也提供了基于 Web 的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。
Cobbler提供以下服务集成:
PXE服务支持
DHCP服务管理
DNS服务管理(可选bind,dnsmasq)
电源管理
Kickstart服务支持
yum仓库管理
TFTP (PXE启动时需要)
Apache(提供kickstart 的安装源,并提供定制化的kickstart配置)
同时,它和apache做了深度整合。通过 cobbler,可以实现对RedHat/Centos/Fedora系统的快速部署,同时也支持Suse 和Debian(Ubuntu)系统。
cobbler装机系统是较早前kickstart的升级版,优点比较容易配置,还自带web界面比较易于管理,不足在于中文资料较少。和 Kickstart不同的是,使用cobbler不会因为在局域网中启动了dhcp而导致有些机器因为默认从pxe启动在重启服务器后加载tftp内容导 致启动终止。
通过配置cobbler自动部署DHCP、TFTP、HTTP,在安装过程中加载kiskstart无人值守安装应答文件实现无人值守。从客户端使用PXE引导启动安装。
Cobbler服务器系统:CentOS 6.5 64位
IP地址:192.168.21.128
需要安装部署的Linux系统:
eth0(第一块网卡,用于外网)IP地址段:192.168.21.160-192.168.21.200
eth1(第二块网卡,用于内网)IP地址段:10.0.0.160-10.0.0.200
子网掩码:255.255.255.0
网关:192.168.21.2
DNS:8.8.8.8 8.8.4.4
所有服务器均支持PXE网络启动
实现目的:通过配置Cobbler服务器,全自动批量安装部署Linux系统
1、你有一个DVD或ISO文件,您的操作系统的分布。
2、服务器有足够的本地磁盘的可用空间在/var/www/cobbler 解压缩DVD/ISO。
3、服务器和客户端都有一个共同的IP网络。
4、这个网络上的DHCP服务器是唯一的实例。
5、在此网络上的客户端是支持PXE网络启动。
对于centos本身源 ,可根据自己所在地选择离自己近的镜像源,比如mirrors.163.com或mirrors.sohu.com
相关配置文件: /etc/yum.repos.d/CentOS-Base.repo
采用网易的源
cd /etc/yum.repos.d/mkdir backupmv *.repo ./backupwget -c -O CentOS-Base.repo http://mirrors.163.com/.help/CentOS6-Base-163.repoyum list
Cobbler不在CentOS的基本源中,需要导入EPEL源升级软件包,确保epel-release包的版本为最新,当前最新版本为6-8
Centos5 32位: rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/5/i386/epel-release-5-4.noarch.rpm Centos5 64位: rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/5/x86_64/epel-release-5-4.noarch.rpm Centos6 32位: rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/i386/epel-release-6-8.noarch.rpm Centos6 64位: rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm 安装:# rpm -Uvh 'http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm'# yum update (升级所有包,改变软件设置和系统设置,系统版本内核都升级)# yum upgrade (升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变)确定是否正确安装: yum list|grep -E "^epel"epel-release.noarch 6-8 installed 也可以用这个命令: rpm -qa |grep -i epel
关闭SELINUX
sed -i '/^SELINUX=/ s/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/configsetenforce 0 # 使配置立即生效这个需要重启机器才能生效,所以建议修改完重启[root@cobbler ~]# sestatusSELinux status: disabled 关闭防火墙Cobbler会使用到好几个端口,为了简化,直接把iptables关闭chkconfig ip6tables offchkconfig iptables off/etc/init.d/ip6tables stop/etc/init.d/iptables stop 关闭防火墙和 SELinux 后重启系统# reboot
yum安装cobbler包
yum -y install cobbler
确认是否正确安装 :
rpm -qa |grep -i cobbler
安装cobbler相关的包
额外需要的服务还有httpd rsync tftp-server xinetd,如果系统没有装上的话,可以执行以下命令安装。
yum install tftp-server xinetd dhcp httpd rsync
安装运行cobbler需要的软件包
yum install pykickstart debmirror python-ctypes cman
根据需要来,如果要部署 debian/ubuntu 系统需要 debmirror 软件包;想使用电源管理功能的话需要安装 cman 或fence-agents;我的测试环境不需要bind,就没有安装
打开服务需要使用的端口
udp 69 tftp
udp 53 dns
tcp 80 443 web
dhcp 67 68
直接关闭防火墙(参考上文关闭防火墙的部分)或设置iptables,直接修改/etc/sysconfig/iptables
[root@localhost ~]# cat /etc/sysconfig/iptables # Firewall configuration written by system-config-firewall# Manual customization of this file is not recommended.*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT-A INPUT -p icmp -j ACCEPT-A INPUT -i lo -j ACCEPT # SSH-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT# DNS - TCP/UDP-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT# DHCP-A INPUT -m state --state NEW -m udp -p udp --dport 68 -j ACCEPT# TFTP - TCP/UDP-A INPUT -m state --state NEW -m tcp -p tcp --dport 69 -j ACCEPT-A INPUT -m state --state NEW -m udp -p udp --dport 69 -j ACCEPT# NTP-A INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT# HTTP/HTTPS-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT# Syslog for cobbler-A INPUT -m state --state NEW -m udp -p udp --dport 25150 -j ACCEPT# Koan XMLRPC ports-A INPUT -m state --state NEW -m tcp -p tcp --dport 25151 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 25152 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited-A FORWARD -j REJECT --reject-with icmp-host-prohibitedCOMMIT /etc/init.d/iptables restart # 最后重启防火墙使配置生效
启动Cobbler服务
/etc/init.d/cobblerd start
可能会缺少的包:
请注意察看 cobbler服务启动的报错信息,我第一次安装时候就遇到有关ctypes的报错,只能手动安装:
yum -y install python-ctypes
配置httpd配置文件
# vi /etc/httpd/conf/httpd.confServerName 127.0.0.1:80
启用wsgi模块
需要确认mod_wsgi已经正确安装,否则需要手动安装
yum -y install mod_wsgi
启用wsgi模块只需要取消 /etc/httpd/conf.d/wsgi.conf 文件中
LoadModule wsgi_module modules/mod_wsgi.so 行的注释
sed -i 's*#LoadModule*LoadModule*g' /etc/httpd/conf.d/wsgi.conf
修改 rsync 和 tftp 这两个服务的 xinetd 配置,只需修改 rsync 和tftp的配置文件,将 disable = yes 修改为 disable = no来开启tftp与rsync服务的开机启动
sed -i '/disable/c disable = no' /etc/xinetd.d/tftpsed -i -e 's/= yes/= no/g' /etc/xinetd.d/rsyncservice xinetd restart
在启动Cobbler服务之前,你需要修改一些配置文件。在修改每一个文件之前最好先备份下当前的文件。Cobblerd的配置文件为/etc/cobbler/settings ,这个文件是YAML信息的格式文件。
根据需要修改 cobbler主配置文件: /etc/cobbler/settings
server 选项设置IP用于为cobbler 服务器指定地址,请不要使用0.0.0.0,设置一个你希望和cobbler服务器通过http和tftp等协议链接的IP。
sed -i 's/server: 127.0.0.1/server: 192.168.21.128/g' /etc/cobbler/settings
next_server选项是DHCP/PXE网络引导文件被下载的TFTP服务器的IP,它将和server设置为同一个IP
sed -i 's/next_server: 127.0.0.1/next_server: 192.168.21.128 /g' /etc/cobbler/settings
pxe安装 只允许一次,防止误操作 ( 在正式环境有用。实际测试来看,这个功能可以屏蔽掉 )
sed -i 's/pxe_just_once: 0/pxe_just_once: 1/g' /etc/cobbler/settings
(1)这里生成密钥和配置默认密钥。这个设置只针对centos有效。用 openssl 生成一串密码后加入到 cobbler 的配置文件(/etc/cobbler/settings)里,替换 default_password_crypted 字段
# openssl passwd -1 -salt 'random-phrase-here' '111111'$1$random-p$WbZ3JxhRzCS/1Ne4S9g4Z.
openssl passwd -1 -salt ‘任间字符’ ‘密码’ (是数字1 不是字母L)
这个命令的用法,任意字符可以随便写,这个密码就是安装完系统root的密码了。
(2) 将上面的加密串加入cobbler配置文件中。
# vi /etc/cobbler/settings# 修改为如下配置default_password_crypted: "$1$random-p$WbZ3JxhRzCS/1Ne4S9g4Z."
默认为0,不对rsync进行管理,可以修改为1 进行管理
sed -i 's/manage_rsync: 0/manage_rsync: 1/g' /etc/cobbler/settings
为了pxe的启动,需要一个DHCP服务器地址,并直接引导系统,它可以在网络中下载引导文件到TFTP的服务器,cobbler可以通过manage_dhcp的设置来进行管理
配置dhcp服务
首先修改cobbler配置,让cobbler来管理dhcp服务,在做自定义配置时,需要修改dhcp相关配置,以配合PXE启动用,编辑文件/etc/cobbler/settings
manage_dhcp: 1 (注:默认为0 ,表示不进行管理dhcp服务,可以修改为1,对其进行管理。此为使cobbler管理dhcp也就是后面用于同步更新配置信息[cobbler sync])
也可用命令修改:
sed -i 's/manage_dhcp: 0/manage_dhcp: 1/g' /etc/cobbler/settings
接下来修改/etc/cobbler/dhcp.template,此文件是cobbler管理dhcp的模板,确保DHCP分配的地址和Cobbler在同一网段
对于此文件,本例中只需要修改如下部分
# cp /etc/cobbler/dhcp.template{,.bak}# vi /etc/cobbler/dhcp.template # 需要修改192.168.0.0为自己网段subnet 192.168.21.0 netmask 255.255.255.0 { # 修改自己的路由 option routers 192.168.21.1; # 域名服务器地址 option domain-name-servers 8.8.8.8; # 子网掩码 option subnet-mask 255.255.255.0; # 设置dhcp服务器IP地址租用的范围 range dynamic-bootp 192.168.21.160 192.168.21.200; filename "/pxelinux.0"; default-lease-time 21600; #缺省租约时间 max-lease-time 43200; #最大租约时间 next-server $next_server; #指定引导服务器 }
其余部分维持默认值即可。
如果是多网卡需要指定DHCP服务的网络接口
#vi /etc/sysconfig/dhcpd修改内容如下:#Command line options here DHCPDARGS=eth0DHCPDARGS=eth0 # 测试dhcp服务器配置是否正确# dhcpd # 在执行cobbler sync 之后测试才有效,因为没同步之前文件/etc/dhcp/dhcpd.conf还没有被同步修改
注释掉@dists和@arches的行
sed -i -e 's|@dists=.*|#@dists=|' /etc/debmirror.confsed -i -e 's|@arches=.*|#@arches=|' /etc/debmirror.conf
加载部分缺失的网络boot-loaders
cobbler get-loaders
cobbler check
出现下面的提示,SELinux和防火墙前面已经设置过了,不用理会
The following are potential configuration items that you may want to fix:1 : SELinux is enabled. Please review the following wiki page for details on ensuring cobbler works correctly in your SELinux environment:https://github.com/cobbler/cobbler/wiki/Selinux2 : since iptables may be running, ensure 69, 80/443, and 25151 are unblockedRestart cobblerd and then run 'cobbler sync' to apply changes
更多详情请看文后“可能遇到的错误”部分。
重启服务
/etc/init.d/cobblerd restart
同步最新cobbler配置,它会根据配置自动修改dhcp,bind 等服务,因此我称之为容器的原因。
cobbler sync # 同步配置文件到dhcp服务器
chkconfig httpd on chkconfig xinetd on chkconfig cobblerd onchkconfig dhcpd on/etc/init.d/httpd restart/etc/init.d/xinetd restart/etc/init.d/cobblerd restart/etc/init.d/dhcpd restart
cat < < "EOF" > /etc/rc.d/init.d/cobbler #!/bin/sh# chkconfig: - 80 90# description:cobbler case $1 in start)/etc/init.d/httpd start/etc/init.d/xinetd start/etc/init.d/dhcpd start/etc/init.d/cobblerd start;; stop)/etc/init.d/httpd stop/etc/init.d/xinetd stop/etc/init.d/dhcpd stop/etc/init.d/cobblerd stop;; restart)/etc/init.d/httpd restart/etc/init.d/xinetd restart/etc/init.d/dhcpd restart/etc/init.d/cobblerd restart;; status)/etc/init.d/httpd status/etc/init.d/xinetd status/etc/init.d/dhcpd status/etc/init.d/cobblerd status;; sync)cobbler sync;;*) echo "Input error,please in put &#39;start|stop|restart|status|sync&#39;!";exit 2>&1 >/dev/null &;;esacEOF chmod +x /etc/rc.d/init.d/cobbler #添加脚本执行权限chkconfig cobbler on #添加开机启动service cobbler restart #重启cobbler
1、上传ISO镜像至服务器/usr/local/src/目录
2、创建文件夹
mkdir -p /var/www/html/os/CentOS-6.5-x86_64 #创建挂载目录
3、挂载ISO镜像到/var/www/html/os/CentOS-6.5-x86_64目录
mount -t iso9660 -o loop /usr/local/src/CentOS-6.5-x86_64-bin-DVD1.iso /var/www/html/os/CentOS-6.5-x86_64 vi /etc/fstab #添加以下代码。实现开机自动挂载/usr/local/src/CentOS-6.5-x86_64-bin-DVD1.iso /var/www/html/os/CentOS-6.5-x86_64 iso9660 defaults,ro,loop 0 0
备注:iso9660使用df -T 查看设备 卸载:umount /var/www/html/os/CentOS-6.5-x86_64
重复上面的操作,把自己需要安装的CentOS系统镜像文件都挂载到/var/www/html/os/目录下
例如:
CentOS-5.10-x86_64-bin-DVD-1of2.iso
CentOS-7.0-1406-x86_64-DVD.iso
从DVD中导入客户端的OS。这将自动设置了“x86_64”,并将其命名为CentOS-6.5-x86_64。{注:这需要一点时间,不要急。可查看/var/www/cobbler/ks_mirror/CentOS-6.5-x86_64/目录文件生成情况。}
cobbler import --path=/var/www/html/os/CentOS-6.5-x86_64 --name=CentOS-6.5-x86_64 --arch=x86_64 #导入系统镜像文件,需要一段时间 命令格式:cobbler import --path=镜像路径 -- name=安装引导名 --arch=32位或64位参数说明: --name 为安装源定义一个名字--arch 指定安装源是32位还是64位、ia64, 目前支持的选项有: x86│x86_64│ia64
注意1: 这个安装源的唯一标示 就是根据这两个参数来定义
本例导入成功后,安装源的唯一标示就是:centos6.5-x86_64 ,如果重复,系统会提示导入失败,其它命令可通过cobbler –help来进行查看。如果需要更多的参数定制,也可以查看官方文档: man cobbler ,然后查找 import 的配置,可以使用另外一个命令: cobbler distro。
从上面显示信息所知,cobbler会将镜像中的所有安装文件拷贝到本地一份,放在/var/www/cobbler/ks_mirrors下的 centos6.5-x86_64目录下。同时会创建一个名字为centos6.5-x86_64的一个发布版本,以及一个名字为centos6.5- x86_64的profile文件。
注意2:/var/www/cobbler 目录必须具有足够容纳 Linux安装文件的空间。如果空间不够,可以对/var/www/cobbler目录进行移动,建软链接来修改文件存储位置。
例如:
# ln -s /home/cobbler /var/www
导入时间较长, 请耐心等待!!!在正常导完之后会给出如下提示:
……(省略)associating kickstarts*** TASK COMPLETE ***
有时可能会出现卡住的现象,如果导入时间过长,可通过比对文件大小来确定是否已经正常导入
比对文件大小的方法
[root@cobbler ~]# du -sh /var/www/cobbler/ks_mirror/CentOS-6.5-x86_64/3.9G/var/www/cobbler/ks_mirror/CentOS-6.5-x86_64/ [root@cobbler ~]# du -sh /var/www/html/os/CentOS-6.5-x86_644.1G/system/CentOS-6.5-x86_64/
如果上述两个命令执行过显示的结果出入较大, 则可能文件没有正常导入
在重新导入之前最好先把之前的内容删除再导入
cobbler [distro] remove –name=[CentOS-6.5-x86_64] 方括号中的内容根据自己的情况来填写 , 更多命令通过cobbler –help 来查看
剩下其它系统导入方法类似,只是名字和路径更改下即可。重复上面的操作,把其他的系统镜像文件导入到Cobbler导入完成之后,可通过 cobbler list 来查看导入的结果。
注意:这是关键步骤之一
由于需要安装的操作系统发行厂商不同,因此KS文件的写法要求,也不一而足。
本文只讨论 CentOs/RHEL 系列的 KS配置
另外:操作系统 版本不同,KS也存在一定的差异,比如CentOS5 ,和CentOS6下就有不同,切记!
官网的文档在此:
CentOS5 的 (网上大多是这个系列的) : http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-kickstart2-options.html
CentOS6 的 (能看到的配置案例很少) : https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-options.html
默认kickstart文件是/var/lib/cobbler/kickstarts/sample.ks,需要手动为每个发行版单独指定,或单独修改。
自定义ks文件,下面是我自己定义的一个centos6.5模板
cd /var/lib/cobbler/kickstarts #进入默认Kickstart模板目录vi /var/lib/cobbler/kickstarts/CentOS-6.5-x86_64.ks #创建CentOS-6.5-x86_64安装脚本 #platform=x86, AMD64, or Intel EM64T# System authorization informationauth --useshadow --enablemd5# System bootloader configurationbootloader --location=mbr# Partition clearing informationclearpart --all --initlabel#Partition informationpart swap --fstype swap --size=24000part /boot --fstype ext4 --size=200part / --fstype ext4 --size=15000part /opt --fstype ext4 --size=100 --grow # Use text mode installtext # keykey --skip# Firewall configurationfirewall --disable# Run the Setup Agent on first bootfirstboot --disable# System keyboardkeyboard us# System languagelang en_US# Use network installationurl --url=$tree# If any cobbler repo definitions were referenced in the kickstart profile, include them here.$yum_repo_stanza# Network information$SNIPPET(&#39;network_config&#39;)#network --bootproto=dhcp --device=em1# Reboot after installationreboot #Root passwordrootpw --iscrypted $default_password_crypted# SELinux configurationselinux --disabled# Do not configure the X Window Systemskipx# System timezonetimezone Asia/Shanghai# Install OS instead of upgradeinstall# Clear the Master Boot Recordzerombr %packages@ base@ coree2fsprogs-ckermitgrub-bluez-pin-firstboot-rhgb-zshkernel-devel-OpenIPMI-tools-xdeltanet-snmpsysstatlslk-nmapkernel-synapticscontrol-centerlibaiocompat-libstdc++-33subversion %pre$SNIPPET(&#39;log_ks_pre&#39;)$SNIPPET(&#39;kickstart_start&#39;)$SNIPPET(&#39;pre_install_network_config&#39;)# Enable installation monitoring$SNIPPET(&#39;pre_anamon&#39;) %post# Set default language[ -f /etc/sysconfig/i18n ] && cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ksbakcat < < EOF > /etc/sysconfig/i18nLANG="en_US"SUPPORTED="en_US.UTF-8:en_US:en"SYSFOnT="latarcyrheb-sun16"EOF ## Disable ipv6#/bin/cat >> /etc/modprobe.conf < < EOF #alias net-pf-10 off #alias ipv6 off #EOF /bin/sed -i &#39;s/NETWORKING_IPV6.*$/NETWORKING_IPV6=no/&#39; /etc/sysconfig/network #disable ctrl-alt-del sed -i &#39;s/^ca/#ca/&#39; /etc/inittab # Set default run level to 3 sed -i &#39;s/^id:5/id:3/&#39; /etc/inittab cat >> /etc/yum.repos.d/163.repo < < EOF [base] name=CentOS-$releasever - Base - 163.com baseurl=http://mirrors.163.com/centos/6/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6 EOF # Tune snmp settings [ -d /etc/snmp ] || mkdir /etc/snmp if [ -f /etc/snmp/snmpd.conf ]; then cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.ksbak fi # stop unuseful services # nsrvs is the list for stop for i in `ls /etc/rc3.d/S*` do CURSRV=`echo $i|cut -c 15-` echo $CURSRV case $CURSRV in crond | irqbalance | network | sshd | syslog ) echo "Base services, Skip!" ;; *) echo "change $CURSRV to off" chkconfig --level 235 $CURSRV off service $CURSRV stop ;; esac done echo "kernel.core_uses_pid = 1" > /etc/sysctl.confecho "kernel.msgmax = 65536" >> /etc/sysctl.confecho "kernel.msgmnb = 65536" >> /etc/sysctl.confecho "kernel.shmall = 4294967296" >> /etc/sysctl.confecho "kernel.shmmax = 68719476736" >> /etc/sysctl.confecho "kernel.sysrq = 0" >> /etc/sysctl.confecho "net.ipv4.conf.default.accept_source_route = 0" >> /etc/sysctl.confecho "net.ipv4.conf.default.rp_filter = 1" >> /etc/sysctl.confecho "net.ipv4.ip_forward = 0" >> /etc/sysctl.confecho "net.ipv4.tcp_retrans_collapse = 0" >> /etc/sysctl.confecho "net.ipv4.tcp_synCOOKIEs = 1" >> /etc/sysctl.confecho "net.ipv4.tcp_max_tw_buckets = 6000 " >> /etc/sysctl.confecho "net.ipv4.tcp_sack = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_window_scaling = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_rmem = 4096 87380 4194304 " >> /etc/sysctl.confecho "net.ipv4.tcp_wmem = 4096 16384 4194304 " >> /etc/sysctl.confecho "net.core.wmem_default = 8388608 " >> /etc/sysctl.confecho "net.core.rmem_default = 8388608 " >> /etc/sysctl.confecho "net.core.rmem_max = 16777216 " >> /etc/sysctl.confecho "net.core.wmem_max = 16777216 " >> /etc/sysctl.confecho "net.core.netdev_max_backlog = 262144 " >> /etc/sysctl.confecho "net.core.somaxconn = 262144 " >> /etc/sysctl.confecho "net.ipv4.tcp_max_orphans = 3276800 " >> /etc/sysctl.confecho "net.ipv4.tcp_max_syn_backlog = 262144 " >> /etc/sysctl.confecho "net.ipv4.tcp_timestamps = 0 " >> /etc/sysctl.confecho "net.ipv4.tcp_synack_retries = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_syn_retries = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_tw_recycle = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_tw_reuse = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_mem = 94500000 915000000 927000000 " >> /etc/sysctl.confecho "net.ipv4.tcp_fin_timeout = 1 " >> /etc/sysctl.confecho "net.ipv4.tcp_keepalive_time = 1200 " >> /etc/sysctl.confecho "net.ipv4.ip_local_port_range = 1024 65535 " >> /etc/sysctl.conf echo "* soft nofile 65535" >> /etc/security/limits.confecho "* hard nofile 65535" >> /etc/security/limits.confecho "* soft nproc 65535" >> /etc/security/limits.confecho "* hard nproc 65535" >> /etc/security/limits.conf # configuratioin of the nameserver#cat > /etc/resolv.conf < < EOF#search localdomain#nameserver 8.8.8.8#EOF#add a default gw#route add -net 10.0.0.0/16 dev eth0 gw 192.168.1.140 # Execute external scriptscd /rootwget http://192.168.21.128/cobbler/ks_mirror/config/autoip.shsh /root/autoip.sh chmod 600 /etc/passwd chmod 600 /etc/shadow chmod 600 /etc/group chmod 600 /etc/gshadow :wq! #保存退出
vi /var/www/cobbler/ks_mirror/config/autoip.sh #创建脚本,自动设置Linux系统静态IP地址、DNS、网关、计算机名称 #!/bin/shROUTE=$(route -n|grep "^0.0.0.0"|awk &#39;{print $2}&#39;)BROADCAST=$(/sbin/ifconfig eth0|grep -i bcast|awk &#39;{print $3}&#39;|awk -F":" &#39;{print $2}&#39;)HWADDR=$(/sbin/ifconfig eth0|grep -i HWaddr|awk &#39;{print $5}&#39;)IPADDR=$(/sbin/ifconfig eth0|grep "inet addr"|awk &#39;{print $2}&#39;|awk -F":" &#39;{print $2}&#39;)NETMASK=$(/sbin/ifconfig eth0|grep "inet addr"|awk &#39;{print $4}&#39;|awk -F":" &#39;{print $2}&#39;)cat >/etc/sysconfig/network-scripts/ifcfg-eth0< /etc/sysconfig/network-scripts/ifcfg-eth1< /etc/sysconfig/network< > /etc/hostshostname=$HOSTNAMEecho "nameserver 8.8.8.8" > /etc/resolv.confecho "nameserver 8.8.4.4" >> /etc/resolv.conf :wq! #保存退出
注意:kickstarts自动安装脚本中不允许有中文(注释有中文也不行),否则会报错
按照操作系统版本分别关联系统镜像文件和kickstart自动安装文件
在第一次导入系统镜像时,cobbler会给安装镜像指定一个默认的kickstart自动安装文件
例如:CentOS-6.5-x86_64版本的kickstart自动安装文件为:/var/lib/cobbler/kickstarts/sample.ks
cobbler profile report --name CentOS-6.5-x86_64 #查看profile设置 cobbler distro report --name CentOS-6.5-x86_64 #查看安装镜像文件信息 cobbler profile remove --name=CentOS-6.5-x86_64 #移除profile cobbler profile add --name=CentOS-6.5-x86_64 --distro=CentOS-6.5-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-6.5-x86_64.ks #添加 cobbler profile edit --name=CentOS-6.5-x86_64 --distro=CentOS-6.5-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-6.5-x86_64.ks #编辑 命令:cobbler profile add|edit|remove --name=安装引导名 --distro=系统镜像名 --kickstart=kickstart自动安装文件路径参数说明:--name:自定义的安装引导名,注意不能重复--distro:系统安装镜像名,用cobbler distro list可以查看--kickstart:与系统镜像文件相关联的kickstart自动安装文件(此文件必须预先准备好 )更多命令参数可执行cobbler --help查看 再次执行cobbler check 检查下配置 #查看Cobbler列表 cobbler listcobbler r