Cobbler自动化批量安装linux服务器的操作记录

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

Cobbler功能 使用Cobbler,可以做到无需进行人工干预即可安装机器; Cobbler设置一个PXE引导环境(它还可使用yaboot支持PowerPC),并控制与安装相关的所有方面,比如网络引导服务(DHCP和TFTP)与存储库镜像。 当希望安装一台新机器时,Cobbler可以: 使用一个以前定义的模板来配置DHCP服务(如果启用了管理 DHCP)将一个存储库(yum或rsync)建立镜像或解压缩一个媒介,以注册一个新操作系统 在DHCP配置文件中为需要安装的机器创建一个条目,并使用您指定的参数(IP和MAC地址); 在TFTFP服务目录下创建适当的PXE文件; 重新启动DHCP服务以反映更改; 重新启动机器以开始安装(如果电源管理已启用)。

Cobbler的安装部署 基础环境 [root@cobbler-server ~]# cat /etc/redhat-release       #系统版本 CentOSLinux release 7.1.1503(Core) [root@cobbler-server ~]# uname –r        #内核版本 3.10.0-229.el7.x86_64 [root@cobbler-server ~]# getenforce       #检测selinux是否关闭(必须关闭) Disabled [root@cobbler-server ~]# systemctl stop firewalld        #关闭防火墙 [root@cobbler-server ~]# ifconfig eth0|awk -F '[ :]+''NR==2 {print $3}'       #查看IP地址 10.0.0.101 [root@cobbler-server ~]# hostname        #查看主机名 cobbler-server [root@cobbler-server ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo         #cobbler安装必须使用到epel源 安装 [root@cobbler-server ~]# yum install cobbler cobbler-web pykickstart httpd dhcp tftp xinetd 配置说明 cobbler        #cobbler程序包 cobbler-web     #cobbler的web服务包 pykickstart    #cobbler检查kickstart语法错误 httpd      #Apache web服务 dhcp       #Dhcp服务 tftp      #tftp服务 /etc/cobbler       #配置文件目录 /etc/cobbler/settings       #cobbler主配置文件 /etc/cobbler/dhcp.template       #DHCP服务的配置模板 /etc/cobbler/tftpd.template     #tftp服务的配置模板 /etc/cobbler/rsync.template     #rsync服务的配置模板 /etc/cobbler/iso      #iso模板配置文件目录 /etc/cobbler/pxe      #pxe模板文件目录 /etc/cobbler/power     #电源的配置文件目录 /etc/cobbler/users.conf     #web服务授权配置文件 /etc/cobbler/users.digest     #web访问的用户名密码配置文件 /etc/cobbler/dnsmasq.template     #DNS服务的配置模板 /etc/cobbler/modules.conf     #Cobbler模块配置文件 /var/lib/cobbler        #Cobbler数据目录 /var/lib/cobbler/config       #配置文件 /var/lib/cobbler/kickstarts       #默认存放kickstart文件 /var/lib/cobbler/loaders      #存放的各种引导程序 /var/www/cobbler        #系统安装镜像目录 /var/www/cobbler/ks_mirror       #导入的系统镜像列表 /var/www/cobbler/images       #导入的系统镜像启动文件 /var/www/cobbler/repo_mirror      #yum源存储目录 /var/log/cobbler         #日志目录 /var/log/cobbler/install.log       #客户端系统安装日志 /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配置文件中各服务的模块参数的值来实现。 [root@cobbler-server ~]# systemctl start httpd       #启动apache服务 [root@cobbler-server ~]# systemctl start cobblerd    #启动cobbler程序 查看检查 [root@cobbler-server ~]# 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 localhost, or kickstarting features will not work.This should be a resolvable hostname or 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 the PXE network. 3:change 'disable' to 'no'in/etc/xinetd.d/tftp 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 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 yaboot.The'cobbler get-loaders' command is the easiest way to resolve these requirements. 5:enable and start rsyncd.service with systemctl 6:debmirror package is not installed, it will be required to manage debian deployments and repositories 7:The default password used by the sample templates for newly installed machines (default_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 generate new one 8:fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them Restart cobblerd and then run 'cobbler sync' to apply changes. 对于上述问题,一个个的解决,其实每个问题的后面都给出了解决方法: 1)修改/etc/cobbler/settings文件中的server参数的值为提供cobbler服务的主机相应的IP地址或主机名,如server:10.0.0.101; [root@cobbler-server ~]# sed -i 's/server: 127.0.0.1/server: 10.0.0.101/'/etc/cobbler/settings 2)修改/etc/cobbler/settings文件中的next_server参数的值为提供PXE服务的主机相应的IP地址,如next_server:10.0.0.101; [root@cobbler-server ~]# sed -i 's/next_server: 127.0.0.1/next_server: 10.0.0.101/'/etc/cobbler/settings 3)修改/etc/xinetd.d/tftp文件中的disable参数修改为 disable = no 4)执行 cobbler get-loaders 命令即可;否则,需要安装syslinux程序包,而后复制/usr/share/syslinux/{pxelinux.0,memu.c32}等文件至/var/lib/cobbler/loaders/目录中; 5)执行 systemctl enable rsyncd命令即可; 6)如果有强迫症可以选择 yum –y install debmirror 然后根据错误进行解决,一般错误如下。 注释/etc/dedmirror.conf文件中的@dists=”sid”;@arches=”i386”; 7)[root@cobbler-server ~]# openssl passwd -1-salt '$(openssl rand -hex 4)''xuliangwei' $1$$(openss$.wbDUBV/STL0YaNuAcusK/ [root@cobbler-server~]# grep "default_password_crypted"/etc/cobbler/settings #替换/etc/cobbler/setting内的default_password_crypted为上个命令结果 default_password_crypted:"$1$$(openss$.wbDUBV/STL0YaNuAcusK/" 8)[root@cobbler-server~]# yum –y install cman fence-agents

最后重启Cobbler: [root@cobbler-server~]# systemctl restart cobblerd

配置DHCP [root@cobbler-server~]# sed -i 's#manage_dhcp: 0#manage_dhcp: 1#g'/etc/cobbler/settings              #使用cobbler管理dhcp [root@cobbler-server~]# vim /etc/cobbler/dhcp.template             #修改cobbler的dhcp模版,因为cobbler会替换。 subnet 10.0.0.0 netmask 255.255.255.0{ option routers 10.0.0.2; option domain-name-servers 10.0.0.2; option subnet-mask 255.255.255.0; range dynamic-bootp 10.0.0.20010.0.0.250; default-lease-time 21600; max-lease-time 43200; next-server $next_server; 同步cobbler [root@cobbler-server~]# systemctl restart xinetd     #重启xinetd [root@cobbler-server~]# systemctl restart cobblerd    #重启cobbler [root@cobbler-server~]# 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。 [root@cobbler-server ~]# 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不需要。 [root@cobbler-server ~]# cobbler profile edit --name=CentOS-7.1-x86_64-distro --kopts='net.ifnames=0 biosdevname=0'       #修改centos7内核 新部署机器安装yum源,并同步。建议使用内网yum源,在这里使用阿里云yum源 [root@cobbler-server ~]# cobbler repo add --name=base --mirror=http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/--arch=x86_64 --breed=yum        #添加yum源 [root@cobbler-server ~]# cobbler reposync      #同步yum源 [root@cobbler-server ~]# cobbler sync     #每次修改profile都需要同步 解析来直接启动一台机器,然后开启网络启动就OK了。 自定义安装 system主要目的配置网络接口,通过system来固定机器的IP、掩码、网关、DNS、主机名、等等实现基础环境标准化。 根据机器的MAC地址,自动绑定IP,网关,dns等。 [root@cobbler-server ~]# cobbler system add --name=wangshibo--mac=00:0C:29:6E:41:CB --profile=Centos7.1-profile-x86_64 \ --ip-address=10.0.0.110--subnet=255.255.255.0--gateway=10.0.0.2--interface=eth0 \ --static=1--hostname=wangshibo --name-servers="114.114.114.114 8.8.8.8" [root@cobbler-server ~]# cobbler sync [root@linux-node1 ~]# cobbler system list wangshibo 自定义登录界面 [root@cobbler-server ~]# grep "wangshibo"/etc/cobbler/pxe/pxedefault.template#自定义装机页面 MENU TITLE wangshibo | http://wangshibo [root@cobbler-server ~]# 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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏伪君子的梦呓

下载 Jekyll,并使用它在本地搭建一个博客

16540
来自专栏weixuqin 的专栏

一些杂想(服务器篇)

7520
来自专栏散尽浮华

Linux系统批量化安装部署之Cobbler

说明: Cobbler服务器系统:CentOS 5.10 64位 IP地址:192.168.21.128 需要安装部署的Linux系统: eth0(第一块网卡,...

22980
来自专栏python成长之路

类实例:烤地瓜

24530
来自专栏流星博客

在百度云BCH中WordPress实现伪静态和SSL

原文来自流星博客:https://www.liues.cn/lx-449.html

20640
来自专栏郭少华

用apache服务在Centos系统中搭建Git服务器

[图片上传失败...(image-1f0008-1512008839841)] 首次搭建可以去京东云注册一个账号可以免费领一个月的云主机 京东云

11130
来自专栏云计算教程系列

如何在服务器上安装LAMP

在本教程中,我们将在Ubuntu上安装LAMP。Ubuntu将满足我们的第一个要求:Linux操作系统。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免...

56020
来自专栏散尽浮华

[原创]CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接

近年来,由于开源项目、社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发、敏捷开发、迭代开发、持续集成和单元测试这些拉风的...

1.3K90
来自专栏openshift持续集成

openshift镜像构建-s2i环境变量设置

源码构建的时候我们可以在应用程序内设置环境变量的值(每行一个),方法是在源码库的.s2i / environment文件中指定它们。这个文件中指定的环境变量在构...

51870
来自专栏云计算教程系列

如何在Ubuntu 14.04上使用Pydio托管文件共享服务器

随着云的采用增加,越来越多的数据被远程存储。从音乐到图片再到个人文档,很多人都将文件上传到他们不管理的服务器上。如果您希望将文件保存在您控制的服务器上,则可以使...

40600

扫码关注云+社区

领取腾讯云代金券