码迷,mamicode.com
首页 > 其他好文 > 详细

Cobbler自动化

时间:2017-02-21 10:53:17      阅读:331      评论:0      收藏:0      [点我收藏+]

标签:cobbler自动化

                                Cobbler自动化

    防伪码:凡事欲其成功,必要付出代价:奋斗。

    前言:随着互联网时代的发展,IT迎来了自动化。什么自动化?自动化的流程是什么?为什么IT行业会使用自动化?让我们带着问题来学习今天的Cobbler自动化。


理论知识:

1. PXE流程

技术分享

PXE属于C/S结构。

PXE+Kickstart工作概述

技术分享

技术分享

       Cobbler安装配置自动化批量装系统

理论知识:

Cobbler功能:

技术分享

Cobbler使用python编写,yum也使用python编写的。


Cobbler部署:


系统环境:CentOS 7 

注意:为了系统稳定,Centos 7.3系统不太稳定,建议使用稳定的系统版本。

安装epel

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

技术分享

安装cobbler安装包

yum -y install httpd  dhcp tftp cobbler 

技术分享

启动httpdcobbler服务(注意顺序)

技术分享

检测cobbler

cobbler check

技术分享

技术分享

出现如下报错:关闭selinux,并重启系统。

技术分享

按着检测出的问题解决问题:

 vim  /etc/cobbler/settings

384   server: 192.168.226.144     384行修改serverip地址为cobbler地址)

重启cobbler服务并检测cobbler

技术分享

根据问题解决问题。

vim  /etc/cobbler/settings

272   next_server: 192.168.226.141    (272行 修改next_serverip地址为cobbler地址)

技术分享

根据问题解决问题。

yum  -y install xinetd

技术分享

vim  /etc/xinetd,d/tftp

 14         disable                 = no     (14行改为no)

技术分享

根据问题解决问题。

安装cobbler  get-loaders

技术分享

根据问题解决问题。

安装pykickstart

yum  -y  install pykickstart

技术分享

根据问题结局问题。

systemctl start rsyncd.service

systemctl enable rsyncd.service

systemctl  restart  xinetd

技术分享

技术分享

根据问题解决问题。

设置cobbler密码生成加密密码,并复制下面的加密密码。

$1$123123$MAV.kVI/b3swmFLErPD2b0       (此处我服务器上生成的cobbler加密密码)

修改/etc/cobbler/settings文件中的密码一行

vim  /etc/cobbler/settings

101 default_password_crypted: "$1$123123$MAV.kVI/b3swmFLErPD2b0"

(101行 加密密码改为之前复制的加密密码)

技术分享

技术分享

此处就是如上复制的加密密码需要写入到/etc/cobbler/settings配置文件中

检测cobbler

cobbler  check 

技术分享

根据实际需要,如果生产环境需要,则解决一下两个问题,如生产环境不需要,则不用添加。

设置dhcp(最好让cobbler管理dhcp),要想让cobbler管理dhcp需要修改配置文件

/etc/cobbler/settings下的dhcp这一项

242   manage_dhcp: 1    (修改242行,把0改为1,代表让cobbler来管理dhcp,如果是0,代表手动自己管理dhcp

技术分享

重启cobblerd服务

systemctl  restart  cobblerd

修改/etc/cobbler/dhcp.template配置文件。

vim  /etc/cobbler/dhcp.template

技术分享

根据生产环境的需要修改dhcp

注意:如果让cobbler来管理dhcp,就不能用/etc/dhcp/dhcp.conf来管理dhcp,需要用/etc/cobbler/dhcp.template来管理dhcp

执行cobbler  sync 

技术分享

技术分享

查看dhcp端口号:

技术分享

如果以后要是更改dhcp服务就要执行cobbler sync 做到同步

下面我们来使用cobbler来装系统试一下!

首先需要那些必备品呢?

1. 镜像

2. Kickstart

下面来挂在已经传上去的镜像,(我的镜像传到了/opt下,到时候根据生产环境自己调整)。

挂载镜像:

mount  -o  loop /opt/CentOS-7-x86_64-DVD-1511.iso  /mnt

技术分享

导入镜像:

cobbler  import  --path=/mnt/ --name=CentOS-7-x86 --arch=x86_64

技术分享

参数:--path 导入路径  --name 起一个名字  --arch  架构是32还是64

导入成功后,yum仓库就做好了,那么导入到什么位置了?

 

/var/www/cobbler/ks_mirror/CentOS-7-x86-x86_64/下。

为什么会放在/var/www/cobbler/ks_mirror/CentOS-7-x86-x86_64/下,那么我们可以看一下apache的配置文件 /etc/httpd/conf.d/cobbler.conf

 

执行cobbler  list

cobbler  list

技术分享

会有两个CentOS-7-x86_64profiles这个是可以修改的

安装时需要,如在VM中模仿,则需要关闭vmware  workstationdhcp功能

 

/var/lib/cobbler/kickstarts中有很多自动安装文件,

如果使用xshell工具可以使用rz命令导入文件,

导入CentOS-7的文件:

技术分享

技术分享

切记CentOS 7 CentOS 6.5的模板文件不一样,不可混用。

查看cobbler profile report

cobbler profile report

技术分享

查看名称:

cobbler profile list

技术分享

更改kickstarts配置:

cobbler profile edit --name=CentOS-7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-7.1-x86_64_cobbler.cfg

技术分享

查看kickstarts是否更改:

cobbler profile report 

技术分享

显示已经更改。

更改网卡名称,增加内核参数:

cobbler profile edit --name=CentOS-7-x86_64 --kopts=‘net.ifnames=0 biosdevname=0‘

--koptsKernel Options的缩写)

技术分享

查看到已更改完成。

执行cobbler  sync同步一下

cobbler  sync

以上操作完成,我们可以试一下自动化安装一个系统看一下

创建一个新的虚拟机只需要下一步就可以在这里我就不多说,

技术分享

技术分享

出现如上图片说明已经可以自动安装了

如何更改

技术分享

这个界面中的Cobbler | http://cobbler.github.io/如何更改呢?

修改/etc/cobbler/pxe/pxedefault.template文件

然后执行cobbler sync

cobbler sync

更改后的如下图:

技术分享

选择CentOS-7-x86_64自动安装即可。

Cobbler设置profile还可以web界面中,图形化设置profile

需要安装cobbler-web安装包

yum -y install cobbler-web

技术分享

注意:cobblerpython编写的,cobblerweb界面是django编写的(djangopython的一个框架)。

安装完毕后需要重启apache。(为什么重启apache呢?下面来看一下/etc/httpd/conf.d/下会有一个cobbler_web.conf,所以需要重新启动apache服务)

技术分享

重启apache服务:

systemctl  restart  httpd 

技术分享

注意:重启服务不会影响自动安装,安装过程中遇到重启会卡顿一下后,自动重试10次再次继续安装。

那么安装完cobbler  web界面如何访问呢?

访问cobbler  web界面

技术分享

注意:选择高级,使用https访问

访问成功的cobbler web界面:

技术分享

注意:cobbler用户密码使用http的基本认证就可以。

访问时注意防火墙规则。

/etc/cobbler/users.conf/etc/cobbler/users.digest下,一个为cobbler用户文件,一个为cobbler密码文件。由于密码是加密的,不知道密码,只能生成一个新的密码。

生成密码:

htdigest /etc/cobbler/users.digest "Cobbler" cobbler

注意:“”中为描述信息 后面为用户

技术分享

设置密码完成登陆cobbler web界面:

技术分享

技术分享

设置profile,可以在这里设置。

技术分享

编辑profile界面:

技术分享

Cobbler web界面很强大 ,在这里就不一一解释了。

编辑的代码放在哪里?不知道 可以在apache配置文件中查看存放位置。

/usr/share/cobbler/web/

技术分享

这是一个django的一个工程。

Url存放位置:/usr/share/cobbler/web/urls.py文件下,所有的url都存放在这个文件下。

view.py文件中设置请求方法。

查看自动安装是否安装完毕:

技术分享

已安装完毕。

Koan实现自动化安装系统

假如我需要重装这一台服务器,但是又不想去机房重装这台服务器,那么我该怎么安装呢?

下面介绍一下cobbler 提供的一个koan功能。

首先需要安装koan这个包(一般没有次包,需要安装epel源)

安装epel源:

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

yum -y install koan

技术分享

Koan cobbler自带的一个自动化的软件包。可以通过koan选择需要安装的系统自动化安装。

查看重装的系统:

技术分享

自动化重新安装系统:

koan  --replace-self  --server=192.168.226.128  --profile=CentOS-7-x86_64

注:--replace-self 重装那台服务器系统(写cobbler系统的ip

--profile=    cobbler上显示的系统

技术分享

为什么会执行reboot就会重新装系统呢?

执行完koan  --replace-self  --server=192.168.226.128  --profile=CentOS-7-x86_64

命令后,会在/boot/grub2/grub.cfg下生成一个启动项。

 执行reboot后,会显示如下图。

技术分享

技术分享

可以自动化安装了。

注意:自动化安装需要执行以上的三部就可以实现自动化安装。

 

可以使用cobbler distro help 查看命令帮助

技术分享

使用cobbler  distro  report列出所有发行版

技术分享

如何导入其他源呢?我们来试一下导入epel源 (注意物理环境要查看磁盘空间再考虑导入)在这里我就不导入了,占用磁盘太大。

导入epel源:

cobbler repo add --name=CentOS-7-x86_64-epel --mirror=https://mirrors.aliyum.com/el/7Server/x86_64/ --arch=x86_64 --breed=yum 

技术分享

执行cobbler  reposync下载到本地并构建

cobbler  reposync

技术分享

尝试导入openstack源,下载到本地并构建

cobbler repo add --name=openstack-newton --mirror=https://mirrors.aliyun.com/cent/7.3.1611/cloud/x86_64/openstack-newton/ --arch=x86_64 --breed=yum

技术分享

执行cobbler reposync

成功后,如何已自动安装就有openstack-newton呢?

两种方法:

一、使用cobbler web界面在profiles中添加。

技术分享

二、使用命令:cobbler profile edit --name=xxx --repo=xxx

以上两种方法都可以使用。

如果要想每天同步可以使用crontab

#每天一点一分进行同步,检查机制,这样可以增量同步

1 1 * * * cobbler reposync --tries=3 --no-fail


Cobbler不仅仅只限先于自动化装机。


详细cobbler原理请参考:

Cobbler学习地址(手册)

http://www.ibm.com/developerworks/cn/linux/l-cobbler/index.html

官网地址:http://cobbler.github.io/manuals/2.8.0/

 

Cobbler还可以使用MAC地址对服务器使用定制化的自动安装

首先生成一个固定的MAC地址,然后执行如下操作:

cobbler system add --name=linux-node1 --mac=00:50:56:3C:E6:18 --profile=CentOS-7-x86_64 --ip-address=192.168.226.110 --subnet=255.255.255.0 --gateway=192.168.226.2 --interface=eth0 --static=1 --hostname=linux-node1.example.com --name-servers="192.168.226.2" --kickstart=/var/lib/cobbler/kickstarts/CentOS-7.1-x86_64_cobbler.cfg

技术分享

就可以按着设置安装服务器系统

通过API方式自动化安装系统。

首先生成一个固定的MAC地址,然后执行如下操作:

python编写两个小脚本。

1.  cobbler_list.py

技术分享

2.  cobbler-api.py

技术分享

技术分享

存放在/var/lib/cobbler/kickstarts下。

执行cobbler system list 

技术分享

再执行python  cobbler-api.py

技术分享

True代表成功。

使用cobbler system list 发现会多一个要自动安装的系统:

技术分享

下面字就可以自动化安装了。

cobbler支持电源管理。


希望大家能学会cobbler自动化,真希望能帮助大家!谢谢!

本文出自 “卢春宁” 博客,谢绝转载!

Cobbler自动化

标签:cobbler自动化

原文地址:http://luchunning.blog.51cto.com/12092606/1899657

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!