详解使用Cobbler快速批量部署linux系统

前言:这几天闲着没事来系统组玩玩,学点东西总是好的嘛。系统组系统组当然还是从学会装系统开始。花了两个小时折腾了一下用cobbler批量部署linux系统。第一次做当然中间遇到很多问题,不过都顺利解决了。完了总结一下写个帖子和大家分享一下。

系统版本:Centos6.5 32位
cobbler服务器IP:192.168.175.130

IP地址段:192.168.175.120-192.168.175.140
子网掩码:255.255.255.0
网关:192.168.175.2
DNS:8.8.8.8 8.8.4.4

[[email protected] ~]# ifconfig eth0 | awk ‘/inet addr/ {print $2}‘ | cut -f2 -d ":"   
192.168.175.130
[[email protected] ~]# netstat -r|grep default|cut -f 10 -d ‘ ‘
192.168.175.2
[[email protected] ~]#

PS:所有服务器均支持PXE网络启动

具体操作步骤如下:
#1 关闭SELINUX

[[email protected] ~]# vim /etc/selinux/config
#SELINUX=enforcing      #注释
#SELINUXTYPE=targeted   #注释
SELINUX=disabled        #新增
[[email protected] ~]# setenforce 0
setenforce: SELinux is disabled
[[email protected] ~]# #立即生效

#2 关闭防火墙

[[email protected] ~]# service iptables stop
iptables:将链设置为政策 ACCEPT:filter                    [确定]
iptables:清除防火墙规则:                                 [确定]
iptables:正在卸载模块:                                   [确定]
[[email protected] ~]#

注:实际生产环境不建议直接关掉防火墙。设置相应的规则就好。

#3 安装服务

(PS:首先添加个epel源,然后使用yum安装。节省时间嘛~)

[[email protected] src]# wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
[[email protected] src]# rpm -ivh epel-release-6-8.noarch.rpm
[[email protected] src]# yum install cobbler httpd xinetd tftp-server rsync dhcp cman PyYAML debmirror python-ctypes pykickstart -y

#4 配置服务

@1 设置http

[[email protected] ~]# vim /etc/httpd/conf.d/wsgi.conf
LoadModule wsgi_module modules/mod_wsgi.so    #去掉前面的注释 但是6.5版本是没有注释的 别的版本如果有去掉即可
[[email protected] ~]# service httpd start
正在启动 httpd:                                           [确定]
[[email protected] ~]#

@2 设置tftp

[[email protected] ~]# vim /etc/cobbler/tftpd.template
service tftp
{
        disable                 = no     #值改为no 这个6.5默认也是no 别的版本如果是yes改成no就好
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = $user
        server                  = $binary
        server_args             = -B 1380 -v -s $args
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

@3 设置rsync

[[email protected] ~]# vim /etc/xinetd.d/rsync
service rsync
{
        disable         = no            #值改为no
        flags           = IPv6
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}
[[email protected] ~]# /etc/init.d/xinetd start              #启动(centOS中是以xinetd来管理rsync和tftp的)
正在启动 xinetd:                                          [确定]
[[email protected] ~]#

@4 设置cobbler参数

[[email protected] ~]# vim /etc/debmirror.conf

找到下面两个变量将其注释。

#@dists="sid";
#@arches="i386";
 接下来设置root账号登陆密码。
[[email protected] ~]# openssl passwd -1 -salt ‘Sx4MKOS‘ ‘123456‘ 
$1$Sx4MKOS$ShGNLwqvpS6l6C37h53Jc1                #将此秘钥记录下来 下面的操作会用到
[[email protected] ~]#

继续修改配置。

[[email protected] ~]# vim /etc/cobbler/settings
#查找如下字段进行修改
default_password_crypted: "$1$Sx4MKOS$ShGNLwqvpS6l6C37h53Jc1"  #就是上步所生产的秘钥
next_server: 192.168.175.130                                   #本机IP
server: 192.168.175.130                                        #本机IP
manage_dhcp:1                                                  #因为dhcp服务和cobbler是在一台机器上的所以设置为1

@5 设置dhcp

[[email protected] ~]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.175.0 netmask 255.255.255.0 {
     option routers             192.168.175.255;
     option domain-name-servers 8.8.8.8,8.8.4.4;
     option subnet-mask         255.255.255.0;
     range dynamic-bootp        192.168.175.130 192.168.175.140;  #网段
     default-lease-time         21600;
     max-lease-time             43200;
     next-server                192.168.175.130;                  #dhcp服务器IP

设置网络接口。

[[email protected] ~]# vim /etc/sysconfig/dhcpd
DHCPDARGS=eth0

然后测试dhcp配置是否正确。正确则启动dhcp服务。有错误可根据提示信息进行排查。(PS:错误一般都是dhcpd.conf里面参数设置有误)

[[email protected] ~]# dhcpd
[[email protected] ~]# service dhcpd start
正在启动 dhcpd:                                           [确定]
[[email protected] ~]#

为了避免cobbler check出错,还需要安装一个工具包。

[[email protected] ~]# cobbler get-loaders

安装完了之后启动cobbler。

[[email protected] ~]# service cobblerd start
Starting cobbler daemon:                                   [确定]
[[email protected] ~]#

然后同步配置文件到dhcp服务。

[[email protected] ~]# cobbler sync

同步完后重启dhcp。

[[email protected] ~]# service dhcpd restart
关闭 dhcpd:                                               [确定]
正在启动 dhcpd:                                           [确定]
[[email protected] ~]#

#5 设置cobbler启动脚本

[[email protected] ~]# vim /etc/rc.d/init.d/cobbler
#!/bin/sh
#by:Sx4MK QQ808148844
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‘start|stop|restart|status|sync‘!";
exit 2>&1 >/dev/null &
;;
esac

给脚本添加执行权限并启动。

[[email protected] ~]# chmod +x /etc/rc.d/init.d/cobbler 
[[email protected] ~]# service cobbler  start
正在启动 httpd:
正在启动 xinetd:
Starting cobbler daemon:                                   [确定]
[[email protected] ~]#

检查配置。

[[email protected] ~]# cobbler check

PS:如果按照我的步骤一步一步细心做下来这一步不会有错误输出的,不过难免有人粗心大意出错。关于错误信息还请自行百度,这里不再多说。

#6 挂载系统镜像

首先将你的系统镜像文件上传到cobbler服务器。(PS:不管用什么方式~)

[[email protected] ~]# ls /usr/local/src
CentOS-6.5-i386-bin-DVD1.iso  epel-release-6-8.noarch.rpm
[[email protected] ~]#

然后创建cobbler系统镜像目录将其挂载。

[[email protected] ~]# mkdir -p /var/www/html/os/CentOS-6.5-i386
[[email protected] ~]# mount -t iso9660 -o loop /usr/local/src/CentOS-6.5-i386-bin-DVD1.iso /var/www/html/os/CentOS-6.5-i386

#7 创建kickstarts脚本

[[email protected] ~]# cd /var/lib/cobbler/kickstarts
[[email protected] kickstarts]# vim CentOS-6.5-i386.ks
#by:Sx4MK QQ806148844
#脚本是活的,可以根据自己的需求进行相关增删改。
install
url--url=http://192.168.175.130/cobbler/ks_mirror/CentOS-6.5-i386/
lang en_US.UTF-8
zerombr  yes
key --skip
keyboard us
network --device eth0 --bootprotodhcp  --onboot on
rootpw --iscrypted$1$QqobZZ1g$rYnrawi9kYlEeUuq1vcRS/
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda
clearpart --all --initlabel
part / --bytes-per-inode=4096--fstype="ext3" --size=2048
part /boot --bytes-per-inode=4096--fstype="ext3" --size=128
part swap --bytes-per-inode=4096--fstype="swap" --size=500
part /data --bytes-per-inode=4096--fstype="ext3" --grow --size=1
reboot
%packages
ntp
@base
@core
@dialup
@editors
@text-internet
keyutils
trousers
fipscheck
device-mapper-multipath
%post
#同步系统时间
ntpdate cn.pool.ntp.org
hwclock --systohc
echo -e "0 1 * * * root/usr/sbin/ntpdate cn.pool.ntp.org > /dev/null"  >>/etc/crontab
service crond restart
#禁止开机启动的服务
chkconfig acpid off
chkconfig atd off
chkconfig autofs off
chkconfig bluetooth off
chkconfig cpuspeed off
chkconfig firstboot off
chkconfig gpm off
chkconfig haldaemon off
chkconfig hidd off
chkconfig ip6tables off
chkconfig isdn off
chkconfig messagebus off
chkconfig nfslock off
chkconfig pcscd off
chkconfig portmap off
chkconfig rpcgssd off
chkconfig rpcidmapd off
chkconfig yum-updatesd off
chkconfig sendmail off
#允许开机启动的服务
chkconfig crond on
chkconfig kudzu on
chkconfig network on
chkconfig readahead_early on
chkconfig sshd on
chkconfig syslog on
#禁止使用Ctrl+Alt+Del快捷键重启服务器
sed -i"s/ca::ctrlaltdel:\/sbin\/shutdown -t3 -rnow/#ca::ctrlaltdel:\/sbin\/shutdown -t3 -r now/g" ‘/etc/inittab‘
telinit q
#优化系统内核
echo -e "ulimit -cunlimited"  >> /etc/profile
echo -e "ulimit -sunlimited"  >> /etc/profile
echo -e "ulimit -SHn 65535" >> /etc/profile
source  /etc/profile
sed -i "s/net.ipv4.ip_forward =0/net.ipv4.ip_forward = 1/g" ‘/etc/sysctl.conf‘
echo -e "net.core.somaxconn =262144"  >> /etc/sysctl.conf
echo -e "net.core.netdev_max_backlog =262144"  >> /etc/sysctl.conf
echo -e "net.core.wmem_default =8388608"  >> /etc/sysctl.conf
echo -e "net.core.rmem_default =8388608"  >> /etc/sysctl.conf
echo -e "net.core.rmem_max =16777216"  >> /etc/sysctl.conf
echo -e "net.core.wmem_max =16777216"  >> /etc/sysctl.conf
echo -e"net.ipv4.netfilter.ip_conntrack_max = 131072"  >> /etc/sysctl.conf
echo -e"net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180" >> /etc/sysctl.conf
echo -e "net.ipv4.route.gc_timeout =20"  >> /etc/sysctl.conf
echo -e "net.ipv4.ip_conntrack_max =819200"  >> /etc/sysctl.conf
echo -e "net.ipv4.ip_local_port_range= 10024  65535"  >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_retries2 =5"  >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_fin_timeout =30"  >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_syn_retries =1"  >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_synack_retries =1"  >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_timestamps =0"  >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_tw_recycle =1"  >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_tw_len =1"  >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_tw_reuse =1"  >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_keepalive_time =120"  >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_keepalive_probes= 3"  >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_keepalive_intvl= 15"  >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_max_tw_buckets =36000"  >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_max_orphans =3276800"  >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_max_syn_backlog= 262144"  >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_wmem = 8192131072 16777216"  >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_rmem = 32768131072 16777216"  >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_mem = 94500000915000000 927000000"  >> /etc/sysctl.conf
/sbin/sysctl -p
#执行外部脚本
cd /root
wgethttp://192.168.175.130/cobbler/ks_mirror/config/autoip.sh
sh /root/autoip.sh

创建设置IP,网关,主机名等脚本。

[[email protected] kickstarts]# vim /var/www/cobbler/ks_mirror/config/autoip.sh
#!/bin/sh
#by:Sx4MK QQ806148844
ROUTE=$(route -n|grep"^0.0.0.0"|awk ‘{print $2}‘)
BROADCAST=$(/sbin/ifconfig eth0|grep -ibcast|awk ‘{print $3}‘|awk -F":" ‘{print $2}‘)
HWADDR=$(/sbin/ifconfig eth0|grep -iHWaddr|awk ‘{print $5}‘)
IPADDR=$(/sbin/ifconfig eth0|grep"inet addr"|awk ‘{print $2}‘|awk -F":" ‘{print $2}‘)
NETMASK=$(/sbin/ifconfig eth0|grep"inet addr"|awk ‘{print $4}‘|awk -F":" ‘{print $2}‘)
cat >/etc/sysconfig/network-scripts/ifcfg-eth0<<EOF
DEVICE=eth0
BOOTPROTO=static
BROADCAST=$BROADCAST
HWADDR=$HWADDR
IPADDR=$IPADDR
NETMASK=$NETMASK
GATEWAY=$ROUTE
ONBOOT=yes
EOF
IPADDR1=$(echo $IPADDR|awk -F"."‘{print $4}‘)
cat>/etc/sysconfig/network-scripts/ifcfg-eth1<<EOF
DEVICE=eth1
BOOTPROTO=static
BROADCAST=10.0.0.255
HWADDR=$(/sbin/ifconfig eth1|grep -iHWaddr|awk ‘{print $5}‘)
IPADDR=10.0.0.$IPADDR1
NETMASK=255.255.255.0
ONBOOT=yes
EOF
HOSTNAME=Sx4MKOS_HZ_$(echo $IPADDR|awk-F"." ‘{print $4}‘)
cat >/etc/sysconfig/network<<EOF
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=$HOSTNAME
GATEWAY=$ROUTE
EOF
echo "127.0.0.1  $HOSTNAME">> /etc/hosts
hostname=$HOSTNAME
echo "nameserver 8.8.8.8"  > /etc/resolv.conf
echo "nameserver  8.8.4.4">> /etc/resolv.conf

#8 导入镜像到cobbler

[[email protected] ~]# cobbler import --path=/var/www/html/os/CentOS-6.5-i386/ --name=CentOS-6.5-i386  --arch=i386

PS:导入过程有点慢,抽支烟回来就好了~

完了进入目录查看一下。

[[email protected] ~]# cd /var/www/cobbler/ks_mirror
[[email protected] ks_mirror]# ls
CentOS-6.5-i386  config
[[email protected] ks_mirror]# ls CentOS-6.5-i386/
CentOS_BuildTag  GPL     isolinux  RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-6        RPM-GPG-KEY-CentOS-Security-6  TRANS.TBL
EULA             images  Packages  repodata                  RPM-GPG-KEY-CentOS-Debug-6  RPM-GPG-KEY-CentOS-Testing-6
[[email protected] ks_mirror]#

OK,到现在为止呢所有环境已经设置完成。接下来就是客户端进行安装。不过最好还是做一次检查。确保你的所有相关服务都开启。配置文件配置正确。

废话不多说了。新建一个虚拟机,开始自动从cobbler服务器获取系统安装把~

见图:

本次教程到此结束。预知后事如何,请听下回分解~

时间: 2024-10-01 05:02:17

详解使用Cobbler快速批量部署linux系统的相关文章

【亲测可用】Cobbler自动批量部署Linux系统

Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便,使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP.DNS.TFTP.RSYNC以及yum仓库.构造系统ISO镜像. Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用. Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷. 环境准备 VMware 12 虚拟机 Centos 7

自动化批量部署Linux系统(Kickstart+DHCP+NFS(http)+TFTP+PXE)

自动化批量部署Linux系统 (Kickstart+DHCP+NFS(http)+TFTP+PXE) 楓城浪子原创(除原理流程图外),转载请标明出处! 更多技术博文请见个人博客:https://fengchenglangzi.000webhostapp.com 微信bh19890922 QQ445718526.490425557 序: 本文主要介绍自动化部署操作系统,主要借助的工具包含(Kickstart+DHCP+NFS(http)+TFTP+PXE),至于每种工具用途及作用请自行补脑,本文主

PXE实现批量部署linux系统

pxe批量部署linux服务器 1.pxe介绍 PXE是有intel设计的协议,它可以使计算机通过网络启动,协议分为client和server两端,PXEclient在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存中执行,并显示出命令菜单,经用户选择PXE启动后,PXE client获取网络地址信息,然后将放置在远端的服务器上的操作系统文件通过网络下载到本地运行 既然是通过网络传输,就需要IP地址,也就是说在PXE启动过程中,PXE客户端会请求DHCP服务器分配IP地址,

PXE+kickstart实现批量部署linux系统

当企业有大量的新机需要安装系统,如果每台都接上系统光盘并人工选择配置安装,无疑工作量巨大.而 PXE+kickstart 的安装方式能够实现自动化批量部署,特别适用于这种场景. 一.批量部署方式 ①物理机:PXE 负载均衡 ②虚拟机:映像文件模板 分布式文件系统 无论是针对物理机还是虚拟机的批量部署,都会对文件服务器造成巨大的压力,可以分别使用负载均衡和分布式文件系统的方式缓解 二.PXE工作原理 客户机通过支持PXE的网卡请求DHCP服务器 --> DHCP服务器给客户端分配IP地址等,并告诉

利用pxe dhcp tfcp http kickstart实现批量部署linux系统

1.为什么要实现批量部署利用一台已经做好配置的主机去批量安装其他主机系统2.了解什么是Pxe1.预启动执行环境(Preboot eXecution Environment,PXE)也被称为预执行环境,提供了一种使用网络接口(Network Interface)启动计算机的机制.这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统 .2.由Intel和Systemsoft公司于1999年9月20日公布的技术3.C/S的工作模式4.PXE客户端会调用网际协议(IP).用户

cobbler无人值守批量安装Linux系统

本文目录: 1.1 pxe安装系统 1.2 cobbler基本介绍 1.3 安装和配置cobbler 1.3.1 安装cobbler 1.3.2 配置dhcp和tftp 1.4 cobbler从本地光盘安装系统 1.4.1 生成distro 1.4.2 提供kickstart文件 1.4.3 提供profile 1.4.4 开始安装 1.5 比pxe+kickstart好的地方 1.6 让新机器自动执行脚本 1.1 pxe安装系统 pxe的大致过程如下图. 其中pxelinux.0为bootlo

PXE批量部署 Linux 系统

实验场景描述:1.准备环境:配置httpd服务,关闭系统策略2.配置应答文件通过system-config-kickstart 配置应答文件3.指定应答文件客户端指定应答文件具体如下所示:若描述有误欢迎拍砖交流:QQ:45223208 一.准备服务器环节1.安装httpd服务yum install httpd -y 如图所示 2.启动httpd服务 systemctl start httpd systemctl enable httpd 3.修改系统相关策略 关闭防火墙和selinux策略 sy

Cobbler全自动批量安装部署Linux系统

前言:这篇文章是系统运维www.osyunwei.com的作品,我只是根据实践了一下,出于对原作者的尊重附原文链接如下: 原文链接:http://www.osyunwei.com/archives/7606.html 根据文章的说明是可以完成所属功能的,不过原文章有点小问题,在本文中我已经修改过了,仅供大家参考,有问题大家交流,E-mail:[email protected] 安装之前的一点说明 Cobbler服务器系统:CentOS5.10 64位 IP地址:192.168.21.128 需要

cobbler 批量自动化部署 Linux 系统

实验介绍:Cobbler自动化部署linux系统,比PXE部署方式效率更高,因此在大多环境中,以cobbler 方式部署系统,更为方便:具体步骤如下所示: 若描述有误欢迎拍砖交流QQ:45223208 1.安装cobbler 和 DHCP服务: yum install cobbler -y yum install dhcp -y 2. 启动服务 systemctl start cobbler tftp httpd systemctl enable cobbler tftp httpd 3. 根据