公司最近有新的项目,需要批量安装操作系统,如果不会自动化,那可就悲剧了,
一直在机房点鼠标,想想都苦逼,所以写下这篇文章,送给小伙伴;
我们使用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 ##只要更改配置 都要从新同步##
5、 通过上面的修改,我们再次检测cobbler是否还存在9个报错
[root@Yum-CK application]# cobbler check
6、Web 页面测试
http://10.0.0.101/cobbler_web ###账号密码 都是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
提示语法错误,详细报错如下:
解决方法: 生成的密码添加到配置文件,然后重新检查语法就好了
openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'
vim /etc/cobbler/settings
至此、cobbler的部署与简单应用就结束了。
- QQ精品交流群
-
- 微信公众号
-