- 唯一身份标识符:身份证
- 服务器标示符: MAC地址
MAC地址标示符 ―> 固定IP地址 掩码 网关 dns 主机名
ITIL -> ITSM 基础设施及架构
流程 -> 人 -> 技术/工具
标准
-> 文档
-> 脚本
-> 工具
-> web界面
-> api接口
-> 智能
a:/soft/nginx
b:/soft/nginx
c:/soft/nginx
ip地址 -> 主机名 -> 服务部署目录 -> 日志存放位置
- 服务器采购
- 服务器验收并设置raid
- 服务商提供验收单,运维负责人签字
- 服务器上架
- 资产录入
- 开始自动化安装,将新服务器划入装机vlan,根据资产清单上的mac地址,自定义安装
如:
IP地址:192.168.56.12
掩码:255.255.255.0
网关:192.168.56.2
DNS:192.168.56.2
主机名:linux-node2.com
系统版本:CentOS7.4 x86_64
//Cobbler具体实现指令 [root@cobbler ~]# cobbler system add --name=linux-node2.com --mac=00:0c:29:4f:c4:06 --profile=CentOS-7-x86_64 --ip-address=192.168.56.12 --subnet=255.255.255.0 --gateway=192.168.56.2 --interface=eth0 --static=1 --hostname=linux-node2.com --name-server="192.168.56.2" # 添加主机 [root@cobbler ~]# cobbler system list # 查看有哪些自定义的主机 [root@cobbler ~]# cobbler system report # 同步配置 [root@cobbler ~]# cobbler sync
cobbler system add --name=linux-node3 --mac=00:50:56:24:82:3A \ --profile=CentOS-7.0-1406-x86_64 \ --ip-address=192.168.56.100 --subnet=255.255.255.0 \ --gateway=192.168.56.2 --interface=eth0 \ --static=1 --hostname=linux-node3.example.com \ --name-servers="192.168.56.2" \ --kickstart=/var/lib/cobbler/kickstarts/CentOS-7.1-x86_64_cobbler.cfg
system add
添加一个系统定制name
定义这个新添加的系统定制的名字mac
指定MACprofile
指定profile,通过cobbler profile list查看ip-address
指定静态IPsubnet
指定子网掩码gateway
指定网关interface
指定网卡static=1
设置为静态IPhostname
这是主机名name-servers
设置dns服务器kickstart
设置kickstart,通过cobbler profile report
来查看
[root@cobbler ~]# cobbler system list # 创建成功后能够看到刚才新建的系统模版 linux-node3
cobbler-api
cobbler也是通过restful-api来调用对应的接口,下面请看两个小脚本:
都是采用python2.7版本运行的
[root@cobbler ~]# cat cobbler_list.py #!/usr/bin/python import xmlrpclib server = xmlrpclib.Server("http://192.168.56.11/cobbler_api") print server.get_distros() print server.get_profiles() print server.get_systems() print server.get_images() print server.get_repos()
[root@cobbler ~]# cat cobbler-api.py #!/usr/bin/env python # -*- coding: utf-8 -*- import xmlrpclib class CobblerAPI(object): def __init__(self,url,user,password): self.cobbler_user= user self.cobbler_pass = password self.cobbler_url = url def add_system(self,hostname,ip_add,mac_add,profile): ''' Add Cobbler System Infomation ''' ret = { "result": True, "comment": [], } #get token remote = xmlrpclib.Server(self.cobbler_url) token = remote.login(self.cobbler_user,self.cobbler_pass) #add system system_id = remote.new_system(token) remote.modify_system(system_id,"name",hostname,token) remote.modify_system(system_id,"hostname",hostname,token) remote.modify_system(system_id,'modify_interface', { "macaddress-eth0" : mac_add, "ipaddress-eth0" : ip_add, "dnsname-eth0" : hostname, }, token) remote.modify_system(system_id,"profile",profile,token) remote.save_system(system_id, token) try: remote.sync(token) except Exception as e: ret['result'] = False ret['comment'].append(str(e)) return ret def main(): cobbler = CobblerAPI("http://192.168.56.11/cobbler_api","cobbler","123456") ret = cobbler.add_system(hostname='cobbler-api-test',ip_add='192.168.56.101',mac_add='00:50:56:21:65:78',profile='CentOS-7.0-1406-x86_64') print ret if __name__ == '__main__': main()
说明:通过这样api的方式,也能够创建system模版实现安装主机的功能。
1.安装rpm包软件
2.修改配置文件,可以替换可以sed修改
3.启动服务,加入开机自启动
这三部都可以利用ks文件结合脚本,自动化完成。
文章来源: Cobbler自定义安装