写文章

利用cobbler定义一个装机平台

2018-11-28 17:18:52

5016 | 1 | 1

最近对于CMDB平台做了一次功能增加,把具体实现再往下细分就是:运维人员对设备申请,申请好之后跟网络部需要需要提前分配一个IP地址网段等 等,然后通过从厂商获取的MAC地址号,咱们可以根据cobbler 的API实现一个装机方式,给主机分配好IP地址,装机完成之后再同步到咱们的CMDB平台:

 

     前提条件是cobbler得安装完成,并且咱们提前写好ks文件,生成profile等等。接下来就是咱们运维平台,根据获取的MAC地址给服务器定义一个IP信息录入,然后定制安装操作系统即可:


第一步:添加主机分配IP,最主要是MAC地址:


wKioL1ejGXKgELZVAABhANEoASM865.png-wh_50


第二步:默认刚开始添加的适合都是等待装机状态,当点击开始装机时候,后台根据MAC地址定义操作系统的profile和生成IP地址,这个时候装机状态就变成装机中,然后开启服务器电源执行装机即可:


wKiom1ejGirwGfKLAABfnafwQGE878.png-wh_50


第三步:启动虚拟机开始装机:


wKioL1ejHB2wXNpOAAAj3tWS-Yw495.png-wh_50


wKioL1ejG2WzpZX0AABQWFNlPhA641.png-wh_50


到此安装完成;装机状态可变成装机完成,这里实现的思路咱们可以这样,写一个脚本久不久去ping 这个刚刚分配的IP地址,等真正可以Ping通之后,可以向这个IP发送某条命令然后根据返回值就能判断是否已经完成装机操作。


不足,这里我没有运用ipmi的一些机制来完成,后面慢慢学习和补充,最后咱们跑一个初始化脚本,然后把生产的机器的资产信息,同步到咱们CMDB平台即可。


定制操作系统可以参考官方文档的system修改成如下的操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@cobbler src]# cat cobbler_api.py 
#!/usr/bin/env python
import xmlrpclib
remote =  xmlrpclib.Server("http://192.168.63.238/cobbler_api")
token = remote.login("xiaoluo","123456")
system_id = remote.new_system(token)
remote.modify_system(system_id,"name","xiaoluo",token)
remote.modify_system(system_id,"hostname","xiaoluo",token)
remote.modify_system(system_id,'modify_interface', {
                "macaddress-eth0"   "00:50:56:2C:4C:56",
                "ipaddress-eth0"    "192.168.63.100",
                "Gateway-eth0"      "192.168.63.254",
                "subnet-eth0"       "255.255.255.0",
                "static-eth0"       1,
                "dnsname-eth0"      :"114.114.114.114"
        }, token)
remote.modify_system(system_id,"profile","webserver",token)
remote.save_system(system_id, token)
ret = remote.sync(token)
print ret


      当然这个只是一个官方文档给出的例子做的小修改,咱们可以封装成一个class,包含cobble的定制操作系统即可;当然也可以针对cobbler专门 做一个纯web开发,通过web界面生成ks文件,生成profile也是可以的,这里我减少开发的繁杂,ks文件生成profile文档等等。

1

收藏
分享
全部评论1

130****8361 2019-03-25 11:29:41

龙果学院的这个cobbler安装源比较老了,是在centos6.5下安装的,现在升级到centos7以后是怎么安装的,你有这方面的经验吗?
没有更多了