自动化批量安装工具Cobbler

Cobbler简介

Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows。该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP、DNS、TFTP、RSYNC以及yum仓库、构造系统ISO镜像。
        Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用。
        Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷。

Cobbler各个组件之间关系

 

distro->profile-system(可选)

distro 发行版

面对不同的操作系统

面对同一个操作系统不同的版本

profile

核心特性是通过kickstart来部署

system

主要目的配置网络接口

Cobbler功能

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

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

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

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

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

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

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

Cobbler的安装部署

基础环境

  1. [[email protected] ~]# cat /etc/redhat-release #系统版本
  2. CentOSLinux release 7.1.1503(Core)
  3. [[email protected] ~]# uname –r #内核版本
  4. 3.10.0-229.el7.x86_64
  5. [[email protected] ~]# getenforce #检测selinux是否关闭(必须关闭)
  6. Disabled
  7. [[email protected] ~]# systemctl stop firewalld #关闭防火墙
  8. [[email protected] ~]# ifconfig eth0|awk -F ‘[ :]+‘‘NR==2 {print $3}‘#查看IP地址
  9. 10.0.0.101
  10. [[email protected] ~]# hostname #查看主机名
  11. cobbler-node1
  12. [[email protected] ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo#cobbler安装必须使用到epel源

安装及配置介绍

  1. [[email protected] ~]# yum install cobbler cobbler-web pykickstart httpd dhcp tftp xinetd
  2. cobbler #cobbler程序包
  3. cobbler-web #cobbler的web服务包
  4. pykickstart #cobbler检查kickstart语法错误
  5. httpd #Apache web服务
  6. dhcp #Dhcp服务
  7. tftp #tftp服务
  8. /etc/cobbler # 配置文件目录
  9. /etc/cobbler/settings # cobbler主配置文件
  10. /etc/cobbler/dhcp.template # DHCP服务的配置模板
  11. /etc/cobbler/tftpd.template # tftp服务的配置模板
  12. /etc/cobbler/rsync.template # rsync服务的配置模板
  13. /etc/cobbler/iso # iso模板配置文件目录
  14. /etc/cobbler/pxe # pxe模板文件目录
  15. /etc/cobbler/power # 电源的配置文件目录
  16. /etc/cobbler/users.conf # Web服务授权配置文件
  17. /etc/cobbler/users.digest # web访问的用户名密码配置文件
  18. /etc/cobbler/dnsmasq.template # DNS服务的配置模板
  19. /etc/cobbler/modules.conf # Cobbler模块配置文件
  20. /var/lib/cobbler # Cobbler数据目录
  21. /var/lib/cobbler/config # 配置文件
  22. /var/lib/cobbler/kickstarts # 默认存放kickstart文件
  23. /var/lib/cobbler/loaders # 存放的各种引导程序
  24. /var/www/cobbler # 系统安装镜像目录
  25. /var/www/cobbler/ks_mirror # 导入的系统镜像列表
  26. /var/www/cobbler/images # 导入的系统镜像启动文件
  27. /var/www/cobbler/repo_mirror # yum源存储目录
  28. /var/log/cobbler # 日志目录
  29. /var/log/cobbler/install.log # 客户端系统安装日志
  30. /var/log/cobbler/cobbler.log # cobbler日志

Cobbler的检测

cobbler的运行依赖于dhcp、tftp、rsync及dns服务,其中dhcp可由dhcpd(isc)提供,也可由dnsmasq提供;tftp可由tftp-server程序包提供,也可由cobbler功能提供,rsync有rsync程序包提供,dns可由bind提供,也可由dnsmasq提供
   cobbler可自行管理这些服务中的部分甚至是全部,但需要配置文件/etc/cobbler/settings中的“manange_dhcp”、“manager_tftpd”、“manager_rsync”、“manager_dns”分别来进行定义,另外,由于各种服务都有着不同的实现方式,如若需要进行自定义,需要通过修改/etc/cobbler/modules.conf配置文件中各服务的模块参数的值来实现。

  1. [[email protected] ~]# systemctl start httpd #启动apache服务
  2. [[email protected] ~]# systemctl start cobblerd #启动cobbler程序

查看检查

  1. [[email protected] ~]# cobbler check #检查存在的问题,逐一解决
  2. The following are potential configuration items that you may want to fix:
  3. 1:The‘server‘ field in/etc/cobbler/settings must be set to something other than
  4. localhost, or kickstarting features will not work.This should be a resolvable hostname or IP
  5. for the boot server as reachable by all machines that will use it.
  6. 2:For PXE to be functional, the ‘next_server‘ field in/etc/cobbler/settings must
  7. be set to something other than 127.0.0.1, and should match the IP of the boot
  8. server on the PXE network.
  9. 3:change ‘disable‘ to ‘no‘in/etc/xinetd.d/tftp
  10. 4:some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run ‘cobbler get-loaders‘ to download them, or,if you only want to handle
  11. x86/x86_64 netbooting, you may ensure that you have installed a *recent*version of the syslinux package installed and can ignore this message entirely.Filesin this directory, should you want to support all architectures,should include pxelinux.0, menu.c32, elilo.efi, and
  12. yaboot.The‘cobbler get-loaders‘ command is the easiest way to resolve these requirements.
  13. 5:enable and start rsyncd.service with systemctl
  14. 6:debmirror package is not installed, it will be required to manage debian deployments and repositories
  15. 7:The default password used by the sample templates for newly installed machines
  16. (default_password_crypted in/etc/cobbler/settings) is still set to ‘cobbler‘
  17. and should be changed, try:"openssl passwd -1 -salt ‘random-phrase-here‘
  18. ‘your-password-here‘" to generate new one
  19. 8:fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them
  20. Restart
  21. cobblerd and then run ‘cobbler sync‘ to apply changes.

对于上述问题,一个个的解决,其实每个问题的后面都给出了解决方法

  1. 1、修改/etc/cobbler/settings文件中的server参数的值为提供cobbler服务的主机相应的IP地址或主机名,如server:10.0.0.101;
  2. [[email protected] ~]# sed -i ‘s/server: 127.0.0.1/server: 10.0.0.101/‘/etc/cobbler/settings
  3. 2、修改/etc/cobbler/settings文件中的next_server参数的值为提供PXE服务的主机相应的IP地址,如next_server:10.0.0.101;
  4. [[email protected] ~]# sed -i ‘s/next_server: 127.0.0.1/next_server: 10.0.0.101/‘/etc/cobbler/settings
  5. 3、修改/etc/xinetd.d/tftp文件中的disable参数修改为 disable = no
  6. 4、执行 cobbler get-loaders 命令即可;否则,需要安装syslinux程序包,而后复制/usr/share/syslinux/{pxelinux.0,memu.c32}等文件至/var/lib/cobbler/loaders/目录中;
  7. 5、执行 systemctl enable rsyncd命令即可;
  8. 6、如果有强迫症可以选择 yum –y install debmirror 然后根据错误进行解决,一般错误如下。
  9. 注释/etc/dedmirror.conf文件中的@dists=”sid”;@arches=”i386”;
  10. 7、[[email protected] ~]# openssl passwd -1-salt ‘$(openssl rand -hex 4)‘‘xuliangwei‘
  11. $1$$(openss$.wbDUBV/STL0YaNuAcusK/
  12. [[email protected]~]# grep "default_password_crypted"/etc/cobbler/settings #替换/etc/cobbler/setting内的default_password_crypted
  13. default_password_crypted:"$1$$(openss$.wbDUBV/STL0YaNuAcusK/"
  14. 8、yum –y install cman fence-agents
  15. 最后重启Cobbler:systemctl restart cobblerd

配置DHCP

  1. [[email protected]~]# sed -i ‘s#manage_dhcp: 0#manage_dhcp: 1#g‘/etc/cobbler/settings #使用cobbler管理dhcp
  2. [[email protected]~]# vim /etc/cobbler/dhcp.template #修改cobbler的dhcp模版,因为cobbler会替换。
  3. subnet 10.0.0.0 netmask 255.255.255.0{
  4. option routers 10.0.0.2;
  5. option domain-name-servers 10.0.0.2;
  6. option subnet-mask 255.255.255.0;
  7. range dynamic-bootp 10.0.0.20010.0.0.250;
  8. default-lease-time 21600;
  9. max-lease-time 43200;
  10. next-server $next_server;

同步cobbler

  1. [[email protected]~]# systemctl restart xinetd #重启xinetd
  2. [[email protected]~]# systemctl restart cobblerd #重启cobbler
  3. [[email protected]~]# cobbler sync #同步最新cobbler配置,可以看具体做了哪些操作

Cobbler管理

cobbler使用profile来为特定的需求类别提供锁需要安装的配置,即在distro的基础上通过提供kiskstart文件来生成一个特定的系统安装配置。distro的profile可以出现在pxe的引导菜单中作为安装的选择之一

Cobbler-CentOS-7.1-x86_64.cfg 

Cobbler-CentOS-6.7-x86_64.cfg

默认是有kickstart文件的,所以edit,如果没有kickstart文件可以add

  1. [[email protected] ~]# cobbler profile edit --name=CentOS-7.1-x86_64-distro --kickstart=/var/lib/cobbler/kickstarts/Cobbler-CentOS-7.1-x86_64.cfg #指定ks路径

CentOS7系统网卡名变成eno...这种,为了运维标准化,我们需要修改为我们常用的eth0,使用下面的参数。但要注意是CentOS7才需要下面的步骤,CentOS6不需要。

  1. [[email protected] ~]# cobbler profile edit --name=CentOS-7.1-x86_64-distro --kopts=‘net.ifnames=0 biosdevname=0‘#修改centos7内核

新部署机器安装yum源,并同步。建议使用内网yum源,在这里使用阿里云yum源

  1. [[email protected] ~]# cobbler repo add --name=base --mirror=http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/--arch=x86_64 --breed=yum #添加yum源
  2. [[email protected] ~]# cobbler reposync #同步yum源
  3. [[email protected] ~]# cobbler sync #每次修改profile都需要同步

解析来直接启动一台机器,然后开启网络启动就OK了。

自定义安装

system主要目的配置网络接口,通过system来固定机器的IP、掩码、网关、DNS、主机名、等等实现基础环境标准化。

根据机器的MAC地址,自动绑定IP,网关,dns等。

  1. [[email protected] ~]# cobbler system add --name=caoxiaojian--mac=00:0C:29:6E:41:CB --profile=Centos7.1-profile-x86_64 \
  2. --ip-address=10.0.0.110--subnet=255.255.255.0--gateway=10.0.0.2--interface=eth0 \
  3. --static=1--hostname=caoxiaojian
  4. --name-servers="114.114.114.114 8.8.8.8"
  5. [[email protected] ~]# cobbler sync
  6. [[email protected] ~]# cobbler system list
  7. caoxiaojian

自定义登录界面

  1. [[email protected] ~]# grep "caoxiaojian"/etc/cobbler/pxe/pxedefault.template#自定义装机页面
  2. MENU TITLE caoxiaojian | http://caoxiaojian
  3. [[email protected] ~]# cobbler sync #同步

Web管理Cobbler

新版cobbler的web界面使用的是https,登录https://10.0.0.7/cobbler_web

cobbler_web支持多种认证方式,如authn_configfil、authn_ldap或authn_pam等,默认为authn_denyall,即拒绝所有用户登陆。

下面说明三种能认证用户登录cobbler_web的方式

1.使用authn_pam模块认证cobbler_web用户

首先修改modules中的[authentication]段中的module参数的值为authn_pam
接着创建系统用户,并为用户设定密码
而后将设定的系统用户添加至cobbler_web的admin组中,修改/etc/cobbler/users.conf
文件,将设定的用户添加为admin参数的值即可
 2.使用authn_configfile模块认证cobbler_web用户
首先修改modules中的[authentication]段中的module参数的值为authn_configfile
添加第一用户时,需要为htdigest命令使用“-c” etc/cobbler/users.digest,后续添加其他用户则不能再使用,同步cobbler重启httpd以及cobbler

3.使用cobbler默认的web账号密码认证

user:cobbler

pass:cobbler

时间: 2024-10-22 21:23:00

自动化批量安装工具Cobbler的相关文章

Cobbler实现自动化批量安装Linux系统系列一:安装先决性组件篇

随着经历的企业越来越多,服务器规划.实施及运维工作也越来越多,有时会发现,其实做为一名IT人,我们总是有些局限,尤其是在对企业IT结构规划时,由于只局限于对一种分支产品的特性了解,当所熟悉的产品不能胜任现有平台时,我们总会感觉有一些无奈,比如微软的MDT.WDS及SCCM,实话说挺不错的,但至少也只是在微软平台操作系统的部署上,当我们遇到在业务网运维平台中以Linux为主的环境时,大批量部署Linux,这时对于微软的这些部署产品可能就不能像在微软产品范围中那样如龙得水般了,这时我们也就真正理解了

通过SqlClr制作Sql自动化批量执行脚本

通过SqlClr制作Sql自动化批量执行脚本 在与同事一起做项目时,看到同事用sqlclr做批量执行脚本,感觉挺新奇的就上网搜集资料自己模仿跟做了个案例, 感觉挺不错的,现在想和大家分享一下,可能存在些错误的地方,大家就做个小参考吧.... 1.我们在做数据迁移或是数据库结构修改时,通常会写一些脚本文件之后逐个运行.但是如果有数十或数百个脚本文件, 那么就可以通过SqlClr制作Sql自动化执 2.比如现在ImportDataScript文件夹内有些脚本文件: 3.我们想让这9个脚本文件自动的依

WebScarab 自动化批量扫描

自动化批量扫描:http://blog.csdn.net/danqingdani/article/details/6366645 自动化批量扫描:http://bhyygvhic.blog.sohu.com/265096135.html

自动化批量部署Linux系统(Kickstart+DHCP+NFS(http)+TFTP+PXE)

自动化批量部署Linux系统 (Kickstart+DHCP+NFS(http)+TFTP+PXE) 楓城浪子原创(除原理流程图外),转载请标明出处! 更多技术博文请见个人博客:https://fengchenglangzi.000webhostapp.com 微信bh19890922 QQ445718526.490425557 序: 本文主要介绍自动化部署操作系统,主要借助的工具包含(Kickstart+DHCP+NFS(http)+TFTP+PXE),至于每种工具用途及作用请自行补脑,本文主

使用expect自动化批量向多台机器分文件

自动化运维的过程中,某些时候我们需要受用输入密码,这时候Expect这个工具可以完成. 首先要安装expect,直接yum安装就可以的. 下来我们试试expect这个工具: 使用ssh登陆: #!/bin/expect                                      #脚本解释器 spawn ssh [email protected]  uptime             #开启expect自动交互,执行ssh命令 expect "*password" {s

揭秘抖音云控新玩法:实现自动化批量私信+精准评论引流

抖音群控引流系统是随着抖音短视频而逐渐发展火爆起来的一种营销软件,现在很多商家和个人都会通过抖音来引流,那么如何更快速的扩大引流范围,就是大家都在思考的问题了,而这时,抖音群控系统出现了,为什么大家都会选择抖音群控呢?因为它的功能之强大超乎你的想象.多账号集中管理.抖音群控系统手机版多功能的抖音营销软件,可以控制多个手机一键安装抖音程序,一键启动功能操作,以及各种同步操作.企业通过抖音群控引流系统账号批量登录,账号信息管理.一键快捷批量推送消息,发布动态等超高效的功能,抖音活跃帐户超过 10 亿

自动化安装工具Cobbler简易安装配置

Cobbler的安装方式和传统的方式相差无几,但是相对配置简单, 提供WEB界面,不过相对运维工程师来讲,这个WEB反而不太实用. 我个人比较喜欢的是Cobbler可以在一套系统内定义多个系统和菜单, 在大规模.多样化定制环境中非常实用. 如果只是单纯安装某一个操作系统,批量的,传统的就可以. 实际生产环境为了DHCP不冲突,这很重要,由于没有开启DHCP中继, 所以放在一个新的VLAN即可. 实际在应用中,服务器是静态IP,即便服务器重启并从PXE启动也默认从 local启动,所以影响不大.

Cobbler自动化批量部署系统

1.采用yum epel源安装 Cobbler .dhcp.httpd等服务及相关依赖包 [[email protected] ~]# wget -c http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm [[email protected] ~]# rpm -ivh epel-release-6-8.noarch.rpm [[email protected] ~]# yum clean all [[e

Cobbler实现自动化批量安装Linux系统系列二:修改Cobbler Check时发现的问题

在上一系列介绍中,执行Cobbler检查时,提示共有7项不满足要求,我们在今天的系列介绍中,将逐一介绍如何进行配置调整,以满足Cobbler要求.   [修改rsync配置] [[email protected] yum.repos.d]# vi /etc/xinetd.d/rsync 说明1:修改下图所示配置中disable属性值为no 修改后结果如下:   [安装cman] [[email protected] yum.repos.d]# yum install cman   [安装debm