文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

CentOS下Cobbler的安装和配置方法

2023-06-10 08:14

关注

本篇内容介绍了“CentOS下Cobbler的安装和配置方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows。该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP、DNS、以及yum仓库、构造系统ISO镜像。

Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用。

Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷。


cobbler提供的功能

使用 Cobbler,您无需进行人工干预即可安装机器。Cobbler 设置一个 PXE 引导环境(它还可使用 yaboot 支持 PowerPC),并控制与安装相关的所有方面,比如网络引导服务(DHCP 和 TFTP)与存储库镜像。当希望安装一台新机器时,Cobbler 可以:

使用一个以前定义的模板来配置 DHCP 服务(如果启用了管理 DHCP)

将一个存储库(yum 或 rsync)建立镜像或解压缩一个媒介,以注册一个新操作系统

在 DHCP 配置文件中为需要安装的机器创建一个条目,并使用您指定的参数(IP 和 MAC 地址)

在 TFTFP 服务目录下创建适当的 PXE 文件

重新启动 DHCP 服务以反映更改

重新启动机器以开始安装(如果电源管理已启用)

Cobbler 支持众多的发行版:Red Hat、Fedora、CentOS、Debian、Ubuntu 和 SuSE。当添加一个操作系统(通常通过使用 ISO 文件)时,Cobbler 知道如何解压缩合适的文件并调整网络服务,以正确引导机器。

Cobbler 可使用 kickstart 模板。基于 Red Hat 或 Fedora 的系统使用 kickstart 文件来自动化安装流程。通过使用模板,您就会拥有基本的 kickstart 模板,然后定义如何针对一种配置文件或机器配置而替换其中的变量。例如,一个模板可能包含两个变量 $domain和 $machine_name。在 Cobbler 配置中,一个配置文件指定 domain=mydomain.com,并且每台使用该配置文件的机器在machine_name 变量中指定其名称。该配置文件中的所有机器都使用相同的 kickstart 安装且针对 domain=mydomain.com 进行配置,但每台机器拥有其自己的机器名称。您仍然可以使用 kickstart 模板在不同的域中安装其他机器并使用不同的机器名称。

为了协助管理系统,Cobbler 可通过 fence scripts 连接到各种电源管理环境。Cobbler 支持 apc_snmp、bladecenter、bullpap、drac、ether_wake、ilo、integrity、ipmilan、ipmitool、lpar、rsa、virsh 和 wti。要重新安装一台机器,可运行 reboot system foo命令,而且 Cobbler 会使用必要的凭据和信息来为您运行恰当的 fence scripts(比如机器插槽数)。

除了这些特性,还可使用一个配置管理系统 (CMS)。您有两种选择:该工具内的一个内部系统,或者集成一个现有的外部 CMS,比如 Chef 或 Puppet。借助内部系统,您可以指定文件模板,这些模板会依据配置参数进行处理(与 kickstart 模板的处理方式一样),然后复制到您指定的位置。如果必须自动将配置文件部署到特定机器,那么此功能很有用。

使用 koan 客户端,Cobbler 可从客户端配置虚拟机并重新安装系统。我不会讨论配置管理和koan 特性,因为它们不属于本文的介绍范畴。但是,它们是值得研究的有用特性。

Cobbler 安装和配置的方法:

一、加载epel源

代码如下:

rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm

二、安装cobbler

yum安装所需要的文件

代码如下:

yum -y install tftp-server cobbler cobbler-web pykickstart debmirror httpd python-ctypes  xinetd rsync

检查cobbler配置是否正确

代码如下:

cobbler check

更改settings配置文件

代码如下:

vi /etc/cobbler/settings
next_server: dhcp服务器地址
server: cobbler服务器地址
manage_dhcp: 1
manage_rsync: 1

关闭iptables和selinux

代码如下:

/etc/init.d/iptables stop
setenforce 0

设置tftp和rsync服务

代码如下:

vi /etc/xinetd.d/tftp
disable  yes   =>  disable no</p><p>vi /etc/xinetd.d/rsync
disable  yes   =>   disable no

设置centos系统密码

代码如下:

openssl passwd -1 -salt 'Cobbler' 'cobbler'

下载fedora的loader信息

代码如下:

cobbler get-loaders

修改dhcp配置模版文件.需要主机的事分配的dhcp地址需要和本机地址在同一网段否则无法启动dhcp

代码如下:

ddns-update-style interim;
allow booting;
allow bootp;
ignore client-updates;
set vendorclass = option vendor-class-identifier;
#修改为自己的网段
subnet 192.168.0.0 netmask 255.255.255.0 {
#修改路由地址
option routers 192.168.0.1;
#域名服务器地址
option domain-name-servers 202.106.0.20;
#子网
option subnet-mask 255.255.255.0;
#分配IP地址段
range dynamic-bootp 192.168.0.100 192.168.0.254;
filename "/pxelinux.0";
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server;
}

三、导入镜像到cobbler

创建镜像挂载点目录

代码如下:

mkdir -p /mnt/foo

挂载iso镜像到创建的目录(可以为自己定制过的iso镜像)

代码如下:

mount -o loop CentOS-6.4-x86_64-mini.iso /mnt/foo

从挂载点目录导入os 并将其命名为Centos6.4_mini arch=x86_64

代码如下:

cobbler import --path=/mnt/foo --name=Centos6.4_mini --arch=x86_64

指定kickstart文件 (可选 默认我们会指定一个自己定制的kickstart文件)

代码如下:

cobbler profile edit --name=Centos6.4_mini-x86_64 --kickstart=文件路径

查看cobbler报告

代码如下:

cobbler report
Distribution                   : Centos6.4_mini-x86_64
Enable gPXE?                   : 0
Enable PXE Menu?               : 1
Fetchable Files                : {}
Kernel Options                 : {}
Kernel Options (Post Install)  : {}
Kickstart                      : /var/lib/cobbler/kickstarts/sample_end.ks
Kickstart Metadata             : {}
Management Classes             : []
Management Parameters          : <<inherit>>
Name Servers                   : []
Name Servers Search Path       : []
Owners                         : ['admin']
Parent Profile                 :
Proxy                          :
Red Hat Management Key         : <<inherit>>
......

查看导入的镜像列表

代码如下:

cobbler distro list

是cobbler生效

代码如下:

cobbler sync

重启进入网络引导系统

需要注意的是每一次的配置更改都需要执行cobbller sync

四、kickstart文件(以我的配置文件为例)

代码如下:

firewall --disabled  
install  
#cdrom  
rootpw --iscrypted  $default_password_crypted
auth  --useshadow  --passalgo=md5
text  
firstboot --disable  
keyboard us  
lang en_US.UTF-8
url --url=$tree
$yum_repo_stanza
$SNIPPET('network_config')</p><p>selinux --disabled  
# Do not configure the X Window System  
skipx  
logging --level=info
#reboot --eject
timezone  Asia/Shanghai
#network --device em1 --bootproto=static --ip=192.168.7.123 --netmask=255.255.248.0 --gateway=192.168.0.1 --nameserver 8.8.8.8 --hostname=test --onboot=yes
bootloader --location=mbr  --driveorder=sda</p><p># Clear the Master Boot Record  
zerombr yes</p><p># Partition clearing information  
clearpart --all --initlabel  </p><p># Disk partitioning information  
part / --fstype="ext4" --size=10240
part swap --size=4096
part /data --fstype="ext4" --grow --size=1 </p><p>
%packages  
@base  
@core  
@server-policy  
sgpio  
device-mapper-persistent-data
ntp  </p><p>
%post --nochroot
mkdir -p /mnt/sysimage/tmp/custom_data >> /tmp/custom.log 2>&1
cp /mnt/source/Packages/lnmp_pack.tar.gz  /mnt/sysimage/tmp/custom_data >> /tmp/custom.log 2>&1
cp /mnt/source/Packages/install_packages.sh  /mnt/sysimage/tmp/custom_data >> /tmp/custom.log 2>&1
cp /mnt/source/Packages/ncftp-3.2.5-src.tar.gz /mnt/sysimage/tmp/custom_data >>/tmp/custom.log 2>&1
cp /mnt/source/Packages/rarlinux-3.8.0.tar.gz /mnt/sysimage/tmp/custom_data >>/tmp/custom.log 2>&1
cp /mnt/source/Packages/nmon_linux_14i.tar.gz /mnt/sysimage/tmp/custom_data >>/tmp/custom.log 2>&1</p><p>
%post
cd /tmp/custom_data >> /tmp/custom.log 2>&1
chmod +x install_packages.sh
sh install_packages.sh</p><p>
# remove custom_data
rm -rf /tmp/custom_data</p><p>
#vim syntax on
echo alias vi='vim' >> /etc/bashrc</p><p># disable ipv6
echo "alias net-pf-10 off" >> /etc/modprobe.d/dist.conf
echo -e "options\tipv6\tdisable=1" >> /etc/modprobe.d/dist.conf
echo "NETWORKING_IPV6=no" >> /etc/sysconfig/network</p><p>#append lib
echo "/usr/local/lib/" >> /etc/ld.so.conf</p><p>#modify lang
echo 'export LANG=zh_CN.UTF8' >> /etc/profile</p><p>#disable system auto mail
echo "unset MAILCHECK" >> /etc/profile</p><p>#modify history
echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/profile
sed -i "s/HISTSIZE=1000/HISTSIZE=999999999/" /etc/profile</p><p>#modifu ssh port on 3389
echo 'Port 3389' >> /etc/ssh/sshd_config
echo 'UseDNS no' >> /etc/ssh/sshd_config</p><p>
for i in `ls /etc/rc3.d/S*`
do
CURSRV=`echo $i|cut -c 15-`
chkconfig  --level 3 $CURSRV off
done</p><p>for i in crond rsyslog iptables network ntpd sshd sysstat;do chkconfig --level 3 $i on;done</p><p>sed -i '/HOSTNAME=/d' /etc/sysconfig/network
echo 'HOSTNAME=test' >> /etc/sysconfig/network</p><p></p><p># sysctl
echo "net.core.netdev_max_backlog = 32768" >> /etc/sysctl.conf
echo "net.core.rmem_default = 8388608" >> /etc/sysctl.conf
echo "net.core.rmem_max = 16777216" >> /etc/sysctl.conf
echo "net.core.somaxconn = 32768" >> /etc/sysctl.conf
echo "net.core.wmem_default = 8388608" >> /etc/sysctl.conf
echo "net.core.wmem_max = 16777216" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 5000 65000" >> /etc/sysctl.conf
echo "net.ipv4.tcp_fin_timeout = 30" >> /etc/sysctl.conf
echo "net.ipv4.tcp_keepalive_time = 300" >> /etc/sysctl.conf
echo "net.ipv4.tcp_max_orphans = 3276800" >> /etc/sysctl.conf
echo "net.ipv4.tcp_max_syn_backlog = 65536" >> /etc/sysctl.conf
echo "net.ipv4.tcp_max_tw_buckets = 5000" >> /etc/sysctl.conf
echo "net.ipv4.tcp_mem = 94500000 915000000 927000000" >> /etc/sysctl.conf
echo "net.ipv4.tcp_syn_retries = 2" >> /etc/sysctl.conf
echo "net.ipv4.tcp_synack_retries = 2" >> /etc/sysctl.conf
echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf
echo "net.ipv4.tcp_timestamps = 0" >> /etc/sysctl.conf
echo "net.ipv4.tcp_tw_recycle = 1" >> /etc/sysctl.conf
echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf
/sbin/sysctl -p</p><p># modify core ulimt
echo -e "*\tsoft\tnofile\t65535" >> /etc/security/limits.conf
echo -e "*\thard\tnofile\t65535" >> /etc/security/limits.conf</p><p>echo -e "*\tsoft\tnofile\t65535" >> /etc/security/limits.d/90-nproc.conf
echo -e "*\thard\tnofile\t65535" >> /etc/security/limits.d/90-nproc.conf</p><p># ntpd
cat > /etc/sysconfig/clock <<EOF
ZONE="Asia/Shanghai"
UTC=true
ARC=false
EOF
/sbin/service ntpd stop
/usr/sbin/ntpdate 210.167.182.10
/sbin/service ntpd start</p><p>COMMIT
EOF</p><p>%end
&#91;/python&#93;</p><p>&#91;python&#93;
# 访问cobbler_web
http://IP/cobbler_web
&#91;/python&#93;


五.报错总结

当出现以下信息解决办法

代码如下:

&#91;python&#93;
1 : some network boot-loaders are missing from /var/lib/cobbler/loaders
2 : comment out 'dists' on /etc/debmirror.conf for proper debian support
3 : comment out 'arches' on /etc/debmirror.conf for proper debian support
&#91;/python&#93;


解决方法:

代码如下:

&#91;python&#93;
1.cobbler get-loaders
2 - 3: yun install debmirror && vi /etc/debmirror.conf
@dists="sid"     =>   #@dists="sid"
@arches="i386"   =>   #@arches="i386"

“CentOS下Cobbler的安装和配置方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯