设为首页 收藏本站
查看: 636|回复: 0

[经验分享] 基于Cobbler实现多版本系统批量部署

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-9 08:27:41 | 显示全部楼层 |阅读模式

前言

运维自动化在生产环境中占据着举足轻重的地位,尤其是面对几百台,几千台甚至几万台的服务器时,仅仅是安装操作系统,如果不通过自动化来完成,根本是不可想象的。记得前面我们探究了基于PXE实现系统全自动安装,但PXE同时只能提供单一操作系统的批量部署,面对生产环境中不同服务器的需求,该如何实现批量部署多版本的操作系统呢?Cobbler便可以的满足这一实际需求,本文带来的是基于Cobbler实现多版本操作系统批量部署。

Cobbler

简介

Cobbler是一款自动化操作系统部署的实现工具,由Python语言开发,是对PXE的二次封装。融合多种特性,提供了CLI和Web的管理形式。同时,Cobbler也提供了API接口,方便二次开发使用。它不仅可以安装物理机,同时也支持kvm、xen虚拟化、Guest OS的安装。另外,它还能结合Puppet等集中化管理软件,实现自动化管理。

组件

Cobbler的各主要组件间关系如图所示

wKioL1Wbocngi5VoAACtSI3S6b0336.jpg

实现过程

实验拓扑

wKiom1WaDUbDjtmkAAB8XGR99Og008.jpg

1
#注意事项:请确保selinux关闭,防火墙放行相关端口或关闭防火墙



安装cobbler

1
[iyunv@scholar ~]# yum install cobbler -y #需epel及updates支持



cobbler的运行依赖于dhcp、tftp、rsync及dns服务,其中dhcp可由dhcpd提供,也可由dnsmasq提供,tftp可由tftp-server程序包提供,也可由cobbler功能提供,rsync有rsync程序包提供,dns可由bind提供,也可由dnsmasq提供,此处独立管理,即不通过cobbler来管理这些服务。

配置dhcp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#cobbler在安装时会将依赖包tftp-server和xinetd安装,dns服务非必需,所以还要手动安装dhcp
[iyunv@scholar ~]# yum install dhcp -y
[iyunv@scholar ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
cp: overwrite `/etc/dhcp/dhcpd.conf'? y
[iyunv@scholar ~]# vim /etc/dhcp/dhcpd.conf

option domain-name "scholar.com";
option domain-name-servers 172.16.0.1;
default-lease-time 43200;
max-lease-time 86400;
log-facility local7;
subnet 172.16.0.0 netmask 255.255.0.0 {
  range 172.16.10.60 172.16.10.70;
  option routers 172.16.0.1;
  next-server 172.16.10.125;
  filename "pxelinux.0";
}

[iyunv@scholar ~]# service dhcpd start



配置rsync和tftp

1
2
3
[iyunv@scholar ~]# chkconfig tftp on
[iyunv@scholar ~]# chkconfig rsync on
[iyunv@scholar ~]# service xinetd start



配置cobbler

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#检查需要修改的配置,需启动httpd服务及cobblerd
[iyunv@scholar ~]# service cobblerd start
[iyunv@scholar ~]# service httpd start
[iyunv@scholar ~]# cobbler check
The following are potential configuration items that you may want to fix:

1 : The 'server' field in /etc/cobbler/settings must be set to something other than loc
alhost, or kickstarting features will not work.  This should be a resolvable hostname o
r IP for the boot server as reachable by all machines that will use it.
2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be
set to something other than 127.0.0.1, and should match the IP of the boot server on th
e PXE network.
3 : some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'c
obbler get-loaders' to download them, or, if you only want to handle x86/x86_64 netboot
ing, you may ensure that you have installed a *recent* version of the syslinux package
installed and can ignore this message entirely.  Files in this directory, should you wa
nt to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and ya
boot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.
4 : debmirror package is not installed, it will be required to manage debian deployment
s and repositories
5 : ksvalidator was not found, install pykickstart
6 : The default password used by the sample templates for newly installed machines (def
ault_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be
changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to g
enerate new one
7 : fencing tools were not found, and are required to use the (optional) power manageme
nt features. install cman or fence-agents to use them

Restart cobblerd and then run 'cobbler sync' to apply changes.

#解决方法
1:# vim /etc/cobbler/settings
server: 172.16.10.125
2:# vim /etc/cobbler/settings
next_server: 172.16.10.125
3:# cobbler get-loaders  #需要可访问互联网,尝试此法返回404错误,只好手动复制文件
# yum install syslinux -y
# cp -r /usr/share/syslinux/* /var/lib/cobbler/loaders/
4:忽略即可
5:# yum install pykickstart -y
6:]# openssl passwd -1 -salt `openssl rand -hex 4`
Password:
$1$ebcbf370$s8C9mNday5b.lE5nh4.7N1
  # vim /etc/cobbler/settings
default_password_crypted: "$1$ebcbf370$s8C9mNday5b.lE5nh4.7N1"
7:安装cman或fence-agents   #可忽略

[iyunv@scholar ~]# service cobblerd restart



添加distro(distribution)

1
2
3
#挂载光盘镜像,每换一个系统镜像都需重新挂载
[iyunv@scholar ~]# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only



1
#导入CentOS6镜像文件



wKioL1WaXsSANsEyAAMc6Ac4GSg449.jpg


1
#导入CentOS7镜像文件,请确保已重新挂载镜像



wKioL1Wan77SZxKEAANC2hAwnL8092.jpg

验证是否导入成功

wKioL1WaW9Tz38fwAAHKf9URRM0985.jpg

添加profile

1
2
3
#kickstart文件可按实际需要制作,这里直接修改/root/anaconda-ks.cfg,添加关键配置项如下:
url --url=http://172.16.10.125/cobbler/ks_mirror/CentOS-7.0-x86_64  #指定repo位置
#注:CentOS6与CentOS7文件系统不同,千万不能用相同kickstart文件



wKiom1WaWzjilkXfAAEsKMyiX1o507.jpg

同步数据

1
2
3
4
5
6
[iyunv@scholar ~]# cobbler sync

#CentOS7与CentOS6安装过程略有区别,CentOS7在数据同步完成后需要再次指定安装源
[iyunv@scholar ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
#将此项加入CentOS7的append行内
inst.repo=http://172.16.10.125/cobbler/ks_mirror/CentOS-7.0-x86_64



wKiom1Wakqqg__O9AAEU5S1fiH0287.jpg

部署测试

设置为网卡启动

wKioL1WalKfD5JWnAADS5JWn4T4453.jpg

保存重启后进入引导界面,我们先安装CentOS6

wKiom1Wak1_xbzKJAADeZ9HRyn0302.jpg

引导成功,开始安装

wKioL1WalVSDSL07AAEr52X9Rn0514.jpg

安装CentOS7

wKiom1WalBSg_ZRSAADvzo9Sn7I046.jpg

引导成功,开始安装

wKioL1Walg3DpBloAAEdnvA4zlg336.jpg

至此,基于Cobbler实现多版本系统批量部署已成功实现,其实以上配置过程可以使用web界面配置,这样就可以不再刻意的去记繁琐的命令,下面我们就来简单看一下

CobblerWeb界面

安装cobbler-web

1
[iyunv@scholar ~]#  yum install cobbler-web -y



cobbler-web支持多种认证方式,如authn_configfil、authn_ldap或authn_pam等,下面我们基于authn_pam做认证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#修改认证方式
[iyunv@scholar ~]# vim /etc/cobbler/modules.conf

[authentication]
module = authn_pam

#添加系统用户
[iyunv@scholar ~]# useradd cobuser
[iyunv@scholar ~]# echo 'cobpass' | passwd --stdin cobuser
#添加用户至管理组
[iyunv@scholar ~]# vim /etc/cobbler/users.conf
[admins]
admin = "cobuser"

[iyunv@scholar ~]# service cobblerd restart
Stopping cobbler daemon:                                   [  OK  ]
Starting cobbler daemon:                                   [  OK  ]
[iyunv@scholar ~]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]



访问测试

wKioL1Wang2CUlhXAAEg_M09REU924.jpg

登陆成功便可配置根据选项来配置了

wKiom1WanG6Rxyf7AAJcXqxK-_c479.jpg

简单介绍一下,就不做深入演示了,有兴趣的朋友可以完整的通过web界面配置一下试试

The end

好了,以上便是基于Cobbler实现多版本系统批量部署的整个过程,部署过程中遇到问题可留言交流。以上仅为个人学习整理,如有错漏,大神勿喷~~



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-84535-1-1.html 上篇帖子: Linux的内存管理机制 下篇帖子: CentOS 7手工创建自己的YUM仓库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表