Cobbler 无人值守安装

2017年3月15日18:09:23 发表评论 2,114 views
摘要

Cobbler 是linux系统的一个服务,可以通过PXE网络启动,完成无人值守安装系统。
Cobbler可以使用命令行或web页面进行管理,还提供了API接口,方便二次开发。
Cobbler是一个轻量级的管理服务,可以配置puppet实现管理。

广告也精彩
公司最近有新的项目,需要批量安装操作系统,如果不会自动化,那可就悲剧了,
一直在机房点鼠标,想想都苦逼,所以写下这篇文章,送给小伙伴;

我们使用CentOS6较多,所以下面以它为例,但为了满足小伙伴,也会告诉你CentOS 7的变化在哪里,授之以鱼不如授之以渔,一定要善于总结,下面就开始。

1 、Cobbler 介绍

Cobbler 是linux系统的一个服务,可以通过PXE网络启动,完成无人值守安装系统。

Cobbler是Python开发,可以使用命令行或web页面进行管理,还提供了API接口,方便二次开发。

Cobbler是一个轻量级的管理服务,可以配置puppet实现管理。

2、 Cobbler 的优缺点

配置简单,易用,高效,需要了解原理(kickstart)

3、Cobbler 集成的服务

PXE服务支持

DHCP服务管理

DNS服务管理(可选bind,dnsmasq)

电源管理

Kickstart服务支持

YUM仓库管理

TFTP(PXE启动时需要)

Apache(提供kickstart的安装源,并提供定制化的kickstart配置)

 注意:如果您要用虚拟机测试,参考下面设置

虚拟机网卡采用NAT模式,不要使用桥接模式,因为稍后我们会搭建DHCP服务器,在同一局域网多个DHCP服务会有冲突。

VMware的NAT模式的dhcp服务也关闭,避免干扰。

4、Cobbler 命令行配置

4.1 系统环境准备

[root@m01 ~]# cat /etc/redhat-release
CentOS release 6.8 (Final)
[root@m01 ~]# uname -r
2.6.32-642.el6.x86_64
[root@m01 ~]# getenforce   ##检测selinux 是否关闭
Disabled
[root@m01 ~]# /etc/init.d/iptables status ##检测iptables防火墙是否关闭
iptables: Firewall is not running.
[root@m01 ~]# ifconfig eth0|awk -F "[ :]+" 'NR==2 {print $4}' 
10.0.0.61
[root@m01 ~]# hostname
m01
[root@m01 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
#配置yum源为阿里云

4.2 安装Cobbler

yum安装相关软件包
yum -y install cobbler cobbler-web dhcp tftp-server pykickstart httpd
修改cobbler主配置文件
cp /etc/cobbler/settings{,.ori}  ##备份cobbler主配置文件
sed -i 's/server: 127.0.0.1/server: 172.16.1.101/' /etc/cobbler/settings  ##替换服务端IP#
sed -i 's/next_server: 127.0.0.1/next_server: 172.16.1.101/' /etc/cobbler/settings
sed -i 's/manage_dhcp: 0/manage_dhcp: 1/' /etc/cobbler/settings  #开启DHCP功能#
sed -i 's/pxe_just_once: 0/pxe_just_once: 1/' /etc/cobbler/settings #开启PXE网络安装功能#
sed -ri "/default_password_crypted/s#(.*: ).*#\1\"`openssl passwd -1 -salt 'oldboy' '123456'`\"#" /etc/cobbler/settings
sed -i 's#yes#no#' /etc/xinetd.d/rsync
sed -i 's#yes#no#' /etc/xinetd.d/tftp
上传cobbler配置内容
rz cobbler_load.tar.gz   
vim /etc/cobbler/dhcp.template ##编辑DHCP 模板配置文件,添加如下内容#
subnet 172.16.1.0 netmask 255.255.255.0 {  #应用的网段
     option subnet-mask         255.255.255.0;  #子网
     range dynamic-bootp        172.16.1.100 172.16.1.200;  ##DHCP池范围
启动并检查cobbler 状态
/etc/init.d/xinetd restart
/etc/init.d/cobblerd restart
/etc/init.d/httpd restart
/etc/init.d/dhcpd start
cobbler sync  ##只要更改配置 都要从新同步##

Cobbler 无人值守安装

5、 通过上面的修改,我们再次检测cobbler是否还存在9个报错

Cobbler 无人值守安装

[root@Yum-CK application]# cobbler check

6、Web 页面测试

http://10.0.0.101/cobbler_web    ###账号密码 都是cobbler,可以自行设置

Cobbler 无人值守安装

7、使用cobbler自动化安装

太多截图就不上传了,最主要的是创建kickstart Templates模板

#Centos 7
[root@linux-node1 kickstarts]# cat CentOS-7.1-x86_64.cfg
# Cobbler for Kickstart Configurator for CentOS 7.1 by yao zhang
install
url --url=$tree  # 这些$开头的变量都是调用配置文件里的值。
text
lang en_US.UTF-8
keyboard us
zerombr
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# Network information
$SNIPPET('network_config')
timezone --utc Asia/Shanghai
authconfig --enableshadow --passalgo=sha512
rootpw  --iscrypted $default_password_crypted
clearpart --all --initlabel
part /boot --fstype xfs --size 1024  # CentOS7系统磁盘默认格式xfs
part swap --size 1024
part / --fstype xfs --size 1 --grow
firstboot --disable
selinux --disabled
firewall --disabled
logging --level=info
reboot
%pre
$SNIPPET('log_ks_pre')
$SNIPPET('kickstart_start')
$SNIPPET('pre_install_network_config')
# Enable installation monitoring
$SNIPPET('pre_anamon')
%end
%packages
@base
@compat-libraries
@debugging
@development
tree
nmap
sysstat
lrzsz
dos2unix
telnet
iptraf
ncurses-devel
openssl-devel
zlib-devel
OpenIPMI-tools
screen
%end
%post
systemctl disable postfix.service
%end

8、Cobbler问题

1) 今天群里龙哥遇到问题cobbler check提示语法错误,详细报错如下:
Cobbler 无人值守安装
解决方法: 生成的密码添加到配置文件,然后重新检查语法就好了

openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'
vim /etc/cobbler/settings

Cobbler 无人值守安装
Cobbler 无人值守安装

至此、cobbler的部署与简单应用就结束了。

  • QQ精品交流群
  • weinxin
  • 微信公众号
  • weinxin
广告也精彩
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: