千家信息网

CentOS下Cobbler的安装和配置方法

发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,本篇内容介绍了"CentOS下Cobbler的安装和配置方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有
千家信息网最后更新 2024年11月19日CentOS下Cobbler的安装和配置方法

本篇内容介绍了"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

1.yum安装所需要的文件

代码如下:

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

2.检查cobbler配置是否正确

代码如下:

cobbler check

3.更改settings配置文件

代码如下:

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

4.关闭iptables和selinux

代码如下:

/etc/init.d/iptables stop
setenforce 0

5.设置tftp和rsync服务

代码如下:

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

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

6.设置centos系统密码

代码如下:

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

7.下载fedora的loader信息

代码如下:

cobbler get-loaders

8.修改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

1.创建镜像挂载点目录

代码如下:

mkdir -p /mnt/foo

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

代码如下:

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

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

代码如下:

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

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

代码如下:

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

5.查看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 : <>
Name Servers : []
Name Servers Search Path : []
Owners : ['admin']
Parent Profile :
Proxy :
Red Hat Management Key : <>
......

6.查看导入的镜像列表

代码如下:

cobbler distro list

7.是cobbler生效

代码如下:

cobbler sync

8.重启进入网络引导系统

9.需要注意的是每一次的配置更改都需要执行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')

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

# Clear the Master Boot Record
zerombr yes

# Partition clearing information
clearpart --all --initlabel

# Disk partitioning information
part / --fstype="ext4" --size=10240
part swap --size=4096
part /data --fstype="ext4" --grow --size=1


%packages
@base
@core
@server-policy
sgpio
device-mapper-persistent-data
ntp


%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


%post
cd /tmp/custom_data >> /tmp/custom.log 2>&1
chmod +x install_packages.sh
sh install_packages.sh


# remove custom_data
rm -rf /tmp/custom_data


#vim syntax on
echo alias vi='vim' >> /etc/bashrc

# 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

#append lib
echo "/usr/local/lib/" >> /etc/ld.so.conf

#modify lang
echo 'export LANG=zh_CN.UTF8' >> /etc/profile

#disable system auto mail
echo "unset MAILCHECK" >> /etc/profile

#modify history
echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/profile
sed -i "s/HISTSIZE=1000/HISTSIZE=999999999/" /etc/profile

#modifu ssh port on 3389
echo 'Port 3389' >> /etc/ssh/sshd_config
echo 'UseDNS no' >> /etc/ssh/sshd_config


for i in `ls /etc/rc3.d/S*`
do
CURSRV=`echo $i|cut -c 15-`
chkconfig --level 3 $CURSRV off
done

for i in crond rsyslog iptables network ntpd sshd sysstat;do chkconfig --level 3 $i on;done

sed -i '/HOSTNAME=/d' /etc/sysconfig/network
echo 'HOSTNAME=test' >> /etc/sysconfig/network

# 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

# modify core ulimt
echo -e "*\tsoft\tnofile\t65535" >> /etc/security/limits.conf
echo -e "*\thard\tnofile\t65535" >> /etc/security/limits.conf

echo -e "*\tsoft\tnofile\t65535" >> /etc/security/limits.d/90-nproc.conf
echo -e "*\thard\tnofile\t65535" >> /etc/security/limits.d/90-nproc.conf

# ntpd
cat > /etc/sysconfig/clock <ZONE="Asia/Shanghai"
UTC=true
ARC=false
EOF
/sbin/service ntpd stop
/usr/sbin/ntpdate 210.167.182.10
/sbin/service ntpd start

COMMIT
EOF

%end
[/python]

[python]
# 访问cobbler_web
http://IP/cobbler_web
[/python]


五.报错总结

当出现以下信息解决办法

代码如下:

[python]
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
[/python]


解决方法:

代码如下:

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

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

配置 代码 文件 机器 系统 服务 模板 管理 地址 镜像 网络 支持 方法 目录 操作系统 信息 变量 名称 命令 客户 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 大数据背景下网络安全的国内研究 如何确认服务器是否是性能模式 怎么自己制作软件开发 mysql数据库环境配置 51数据库软件的安装 数据库实训总结及感悟 包河区综合网络技术服务哪家好 专家财务评估数据库作用 云大带宽服务器价格 设计案例数据库 软件开发合同的税率是多少 奉贤区电商软件开发厂家销售方法 山东高速信联数据库 网络技术直播课程 身边的数据库实例 天擎网络安全软件 网络安全项目接单 西安金融软件开发公司 大数据网络技术与应用是什么 webdav 服务器 通信与网络安全专业委员会 遂宁一中网络安全教育 中国知网数据库一年几十万 网络安全案例小故事 南京市秦淮区朱夕阳软件开发中心 网络安全法第四章第二条规定 中国高校计算机网络技术大赛 上海一站式软件开发服务价格 学软件开发的五年制大专官网 易语言数据库程序示例
0