1 try:
2 import xmlrpclib
3
4 except ImportError as e:
5 import xmlrpc.client
6
7
8 SERVER_IP = '192.168.144.11'
9
10
11 try:
12 # 连接你的cobbler服务器,ip自改,后面的url是固定的
13 remote = xmlrpclib.Server("http://{}/cobbler_api".format(SERVER_IP))
14
15 except Exception as e:
16 remote = xmlrpc.client.Server("http://{}/cobbler_api".format(SERVER_IP))
17
18 # 这个帐号密码就是登录cobbler web的帐号密码,用htdigest /etc/cobbler/users.digest "加密字符" cobbler命令生成
19 token = remote.login("cobbler", "bfmq")
20
21 # 身份认证后拿到token后以后就用token操作喽,新建一个系统,获取id
22 system_id = remote.new_system(token)
23
24 # 起一个名字,名字随意不重要,都是以id为标准操作的
25 remote.modify_system(system_id, "name", "CentOS7.2-x86_64", token)
26
27 # 关联相关profile,必须是cobbler profile list存在的
28 remote.modify_system(system_id, "profile", "centos7.2-x86_64", token)
29
30 # 关联kickstart,相当于cobbler profile edit --name=CentOS7.2-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-7.2-x86_64.cfg
31 remote.modify_system(system_id, "ks_meta", "/var/lib/cobbler/kickstarts/CentOS-7.2-x86_64.cfg", token)
32
33 # 关联内核参数,相当于cobbler profile edit --name=CentOS7.2-x86_64 --kopts='net.ifnames=0 biosdevname=0',这个装6系统不需要
34 remote.modify_system(system_id, "kernel_options", "net.ifnames=0 biosdevname=0", token)
35
36 # 这是对指定mac地址进行ip指定,但是在北看来没什么意义....因为你还要去查他的mac,更麻烦
37 # remote.modify_system(system_id,'modify_interface', {
38 # "macaddress-eth0" : "66:66:66:66:66:66",
39 # "ipaddress-eth0" : "192.168.144.100",
40 # "Gateway-eth0" : "192.168.144.254",
41 # "subnet-eth0" : "255.255.255.0",
42 # "static-eth0" : 1,
43 # "dnsname-eth0" :"114.114.114.114"
44 # }, token)
45
46 # 将刚才所有操作保存,如果在机器上执行cobbler system list就会发现多出了新系统的name
47 remote.save_system(system_id, token)
48
49 # 相当于ccobbler sync
50 remote.sync(token)