天天看点

Cobbler自动化

                                cobbler自动化

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

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

理论知识:

1. pxe流程

Cobbler自动化

pxe属于c/s结构。

pxe+kickstart工作概述

Cobbler自动化
Cobbler自动化

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

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自动化

安装cobbler安装包

yum -y install httpd  dhcp tftp cobbler 

Cobbler自动化

启动httpd和cobbler服务(注意顺序)

Cobbler自动化

检测cobbler

cobbler check

Cobbler自动化
Cobbler自动化

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

Cobbler自动化

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

 vim  /etc/cobbler/settings

384   server: 192.168.226.144     (384行修改server的ip地址为cobbler地址)

重启cobbler服务并检测cobbler

Cobbler自动化

根据问题解决问题。

vim  /etc/cobbler/settings

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

Cobbler自动化

yum  -y install xinetd

Cobbler自动化

vim  /etc/xinetd,d/tftp

 14         disable                 = no     (14行改为no)

Cobbler自动化

安装cobbler  get-loaders

Cobbler自动化

安装pykickstart

yum  -y  install pykickstart

Cobbler自动化

根据问题结局问题。

systemctl start rsyncd.service

systemctl enable rsyncd.service

systemctl  restart  xinetd

Cobbler自动化
Cobbler自动化

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

$1$123123$mav.kvi/b3swmflerpd2b0       (此处我服务器上生成的cobbler加密密码)

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

101 default_password_crypted: "$1$123123$mav.kvi/b3swmflerpd2b0"

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

Cobbler自动化
Cobbler自动化

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

cobbler  check 

Cobbler自动化

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

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

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

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

Cobbler自动化

重启cobblerd服务

systemctl  restart  cobblerd

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

vim  /etc/cobbler/dhcp.template

Cobbler自动化

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

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

执行cobbler  sync 

Cobbler自动化
Cobbler自动化

查看dhcp端口号:

Cobbler自动化

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

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

首先需要那些必备品呢?

1. 镜像

2. kickstart

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

挂载镜像:

mount  -o  loop /opt/centos-7-x86_64-dvd-1511.iso  /mnt

Cobbler自动化

导入镜像:

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

Cobbler自动化

参数:--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

Cobbler自动化

会有两个centos-7-x86_64,profiles这个是可以修改的

安装时需要,如在vm中模仿,则需要关闭vmware  workstation的dhcp功能

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

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

导入centos-7的文件:

Cobbler自动化
Cobbler自动化

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

查看cobbler profile report

cobbler profile report

Cobbler自动化

查看名称:

cobbler profile list

Cobbler自动化

更改kickstarts配置:

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

Cobbler自动化

查看kickstarts是否更改:

cobbler profile report 

Cobbler自动化

显示已经更改。

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

cobbler profile edit --name=centos-7-x86_64 --kopts='net.ifnames=0 biosdevname=0'

(--kopts是kernel options的缩写)

Cobbler自动化

查看到已更改完成。

执行cobbler  sync同步一下

cobbler  sync

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

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

Cobbler自动化
Cobbler自动化

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

如何更改

Cobbler自动化

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

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

然后执行cobbler sync

cobbler sync

更改后的如下图:

Cobbler自动化

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

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

需要安装cobbler-web安装包

yum -y install cobbler-web

Cobbler自动化

注意:cobbler是python编写的,cobbler的web界面是django编写的(django是python的一个框架)。

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

Cobbler自动化

重启apache服务:

systemctl  restart  httpd 

Cobbler自动化

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

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

访问cobbler  web界面

Cobbler自动化

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

访问成功的cobbler web界面:

Cobbler自动化

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

访问时注意防火墙规则。

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

生成密码:

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

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

Cobbler自动化

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

Cobbler自动化
Cobbler自动化

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

Cobbler自动化

编辑profile界面:

Cobbler自动化

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

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

在/usr/share/cobbler/web/下

Cobbler自动化

这是一个django的一个工程。

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

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

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

Cobbler自动化

已安装完毕。

koan实现自动化安装系统

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

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

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

安装epel源:

yum -y install koan

Cobbler自动化

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

查看重装的系统:

Cobbler自动化

自动化重新安装系统:

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

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

--profile=    在cobbler上显示的系统

Cobbler自动化

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

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

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

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

Cobbler自动化
Cobbler自动化

可以自动化安装了。

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

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

Cobbler自动化

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

Cobbler自动化

如何导入其他源呢?我们来试一下导入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自动化

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

cobbler  reposync

Cobbler自动化

尝试导入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自动化

执行cobbler reposync

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

两种方法:

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

Cobbler自动化

二、使用命令: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

Cobbler自动化

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

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

用python编写两个小脚本。

1.  cobbler_list.py

Cobbler自动化

2.  cobbler-api.py

Cobbler自动化
Cobbler自动化

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

执行cobbler system list 

Cobbler自动化

再执行python  cobbler-api.py

Cobbler自动化

true代表成功。

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

Cobbler自动化

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

cobbler支持电源管理。

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

上一篇: 让IT自动化
下一篇: 自动化测试