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

安装及配置介绍

 

  1. [root@cobbler-node1 ~]# 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. [root@cobbler-node1 ~]# systemctl start httpd #启动apache服务
  2. [root@cobbler-node1 ~]# systemctl start cobblerd #启动cobbler程序
查看检查
  1. [root@cobbler-node1 ~]# 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. [root@cobbler-node1 ~]# 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. [root@cobbler-node1 ~]# 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、[root@cobbler-node1 ~]# openssl passwd -1-salt '$(openssl rand -hex 4)''xuliangwei'
  11. $1$$(openss$.wbDUBV/STL0YaNuAcusK/
  12. [root@cobbler-node1~]# grep "default_password_crypted"/etc/cobbler/settings #替换/etc/cobbler/setting内的default_password_crypted
  13. default_password_crypted:"$1$$(openss$.wbDUBV/STL0YaNuAcusK/"
  14. 8yum y install cman fence-agents
  15. 最后重启Cobblersystemctl restart cobblerd

配置DHCP

  1. [root@cobbler-node1~]# sed -i 's#manage_dhcp: 0#manage_dhcp: 1#g'/etc/cobbler/settings #使用cobbler管理dhcp
  2. [root@cobbler-node1~]# 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. [root@cobbler-node1~]# systemctl restart xinetd #重启xinetd
  2. [root@cobbler-node1~]# systemctl restart cobblerd #重启cobbler
  3. [root@cobbler-node1~]# cobbler sync #同步最新cobbler配置,可以看具体做了哪些操作

Cobbler管理

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

Cobbler-CentOS-7.1-x86_64.cfg 

Cobbler-CentOS-6.7-x86_64.cfg

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

  1. [root@cobbler-node1 ~]# 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. [root@cobbler-node1 ~]# cobbler profile edit --name=CentOS-7.1-x86_64-distro --kopts='net.ifnames=0 biosdevname=0'#修改centos7内核
新部署机器安装 yum 源,并同步。建议使用内网 yum 源,在这里使用阿里云 yum 源 
  1. [root@cobbler-node1 ~]# cobbler repo add --name=base --mirror=http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/--arch=x86_64 --breed=yum #添加yum源
  2. [root@cobbler-node1 ~]# cobbler reposync #同步yum源
  3. [root@cobbler-node1 ~]# cobbler sync #每次修改profile都需要同步
解析来直接启动一台机器,然后开启网络启动就OK了。

自定义安装

system 主要目的配置网络接口,通过 system 来固定机器的 IP 、掩码、网关、 DNS 、主机名、等等实现基础环境标准化。
根据机器的MAC地址,自动绑定IP,网关,dns等。
  1. [root@cobbler-node1 ~]# 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. [root@cobbler-node1 ~]# cobbler sync
  6. [root@linux-node1 ~]# cobbler system list
  7. caoxiaojian

自定义登录界面

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

Web管理Cobbler

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

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

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

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

首先修改modules中的[authentication]段中的module参数的值为authn_pam
接着创建系统用户,并为用户设定密码
而后将设定的系统用户添加至cobbler_webadmin组中,修改/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账号密码认证

usercobbler

passcobbler

附件
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 





附件列表

 

转载于:https://www.cnblogs.com/caoxiaojian/p/5633376.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值