建立系统安装的标准
- 唯一身份标识符:身份证
- 服务器标示符: 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()
下面看看创建system模版的:
[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文件结合脚本,自动化完成。