Python 调用cobbler API 学习笔记

目前BootAPI 已经不再推荐在cobbler 2.0中使用,官方推荐使用使用XMLRPC

注:要正常使用API,需要确保cobbler服务器apache和cobbler正常运行

连接cobbler

import xmlrpclib
server = xmlrpclib.Server("http://cobbler-server.example.org/cobbler_api")

登陆获取token,这个token在修改cobbler对象的时候需要提供,否则只能get

token = server.login("username","password")

获取cobbler服务器的相关信息

#!/usr/bin/python
import xmlrpclib
server = xmlrpclib.Server("http://127.0.0.1/cobbler_api")
print server.get_distros()
print server.get_profiles()
print server.get_systems()
print server.get_images()
print server.get_repos()

在服务器上创建一个OS对象

    import xmlrpclib
    remote =  xmlrpclib.Server(http://127.0.0.1/cobbler_api)
    token = remote.login("username","password")
    distro_id = remote.new_distro(token)
    remote.modify_distro(distro_id, ‘name‘,   ‘example-distro‘,token)
    remote.modify_distro(distro_id, ‘kernel‘, ‘/opt/stuff/vmlinuz‘,token)
    remote.modify_distro(distro_id, ‘initrd‘, ‘/opt/stuff/initrd.img‘,token)
    remote.save_distro(distro_id,token)

创建一个新的主机

remote =  xmlrpclib.Server("http://127.0.0.1/cobbler_api")
        token = remote.login(SATELLITE_USER,SATELLITE_PASSWORD)
        system_id = remote.new_system(token)

        remote.modify_system(system_id,"name","hostname",token)
        remote.modify_system(system_id,"hostname","hostname.example.com",token)
        remote.modify_system(system_id,‘modify_interface‘, {
                "macaddress-eth0"   : "01:02:03:04:05:06",
                "ipaddress-eth0"    : "192.168.0.1",
                "dnsname-eth0"      : "hostname.example.com",
        }, token)
        remote.modify_system(system_id,"profile","rhel6-x86_64",token)
        remote.modify_system(system_id,"kernel_options", "foo=bar some=thing", token)
        remote.modify_system(system_id,"ks_meta", "foo=bar some=thing", token)

        remote.save_system(system_id, token)
        remote.sync(token)

移除一个对象

remote.remove_profile("name-of-profile",token)

使用API读取ks文件内容,方便修改

remote.read_or_write_kickstart_template("/var/lib/cobbler/foo.ks",False,new_contents_as_a_string,token)
时间: 2024-07-30 07:04:40

Python 调用cobbler API 学习笔记的相关文章

python基础教程_学习笔记22:数据库支持

数据库支持 python数据库API 支持sql标准的可用数据库有很多,其中多数在python中都有对应的客户端模块. 全局变量 python DB API的模块特性 变量名 用途 apilevel 所使用的python db api版本 threadsafety 模块的线程安全等级 paramstyle 在sql查询中使用的参数风格 异常 异常 超类 描述 StandardError 所有异常的泛型基类 Warning StandardError 在非致命错误发生时引发 Error Stand

python基础教程_学习笔记23:图形用户界面

图形用户界面 丰富的平台 在编写Python GUI程序前,需要决定使用哪个GUI平台. 简单来说,平台是图形组件的一个特定集合,可以通过叫做GUI工具包的给定Python模块进行访问. 工具包 描述 Tkinter 使用Tk平台.很容易得到.半标准. wxpython 基于wxWindows.跨平台越来越流行. PythonWin 只能在Windows上使用.使用了本机的Windows GUI功能. JavaSwing 只能用于Jython.使用本机的Java GUI. PyGTK 使用GTK

TCP协议和socket API 学习笔记

本文转载至 http://blog.chinaunix.net/uid-16979052-id-3350958.html 分类: 原文地址:TCP协议和socket API 学习笔记 作者:gilbertjuly  • TCP包头 ACK为1时,确认序号有效,表示期望收到的下一个序号,是上次成功收到的字节序加1. SYN, FIN都占用一个序号. • TCP连接的建立 client通过connect()来建立TCP连接,connect()会发送SYN报文: server通过bind().list

python基础教程_学习笔记9:抽象

抽象 懒惰即美德. 抽象和结构 抽象可以节省大量工作,实际上它的作用还要更大,它是使得计算机程序可以让人读懂的关键. 创建函数 函数可以调用(可能包含参数,也就是放在圆括号中的值),它执行某种行为并且返回一个值.一般来说,内建的callable函数可以用来判断函数是否可调用: >>> import math >>> y=1 >>> x=math.sqrt >>> callable(x) True >>> callab

python基础教程_学习笔记10:异常

异常 什么是异常 Python用异常对象来表示异常情况.遇到错误后,会引发异常.如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行: >>> 1/0 Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> 1/0 ZeroDivisionError: integer division or modulo by

python基础教程_学习笔记6:字典

字典 映射(mapping),一种可通过名字引用值得数据结构. 字典是python中唯一内建的映射类型. 字典中的值没有特殊的顺序,但都存储在一个特定的键(key)里.键可以是数字.字符串甚至是元组. 字典的使用 某些情况下,字典比列表更加适用,比如: 表征游戏棋盘的状态,每个键都是由坐标值组成的元组: 存储文件修改数,用文件名作为键: 数字电话/地址簿: 假如有一个人名列表如下: >>>names=['Alice','Beth','Cecil','Dee-Dee','Earl'] 如果

python基础教程_学习笔记21:文件和素材

文件和素材 打开文件 open函数用来打开文件,语法如下: open([name[,mode[,buffering]]) open函数使用一个文件名作为唯一的强制参数,然后返回一个文件对象.模式(mode)和缓冲(buffering)参数都是可选的. >>> f=open(r'D:\software(x86)\Python27\README.txt') 如果文件不存在,则出现错误: >>> f=open(r'D:\software(x86)\Python27\READM

python基础教程_学习笔记14:标准库:一些最爱——re

标准库:一些最爱 re re模块包含对正则表达式的支持,因为曾经系统学习过正则表达式,所以基础内容略过,直接看python对于正则表达式的支持. 正则表达式的学习,见<Mastering Regular Expressions>(精通正则表达式) re模块的内容 最重要的一些函数 函数 描述 compile(pattern[,flags]) 根据包含正则表达式的字符串创建模式对象 search(pattern,string[,flags]) 在字符串中寻找模式 match(pattern,st

python基础教程_学习笔记13:标准库:一些最爱——sys

标准库:一些最爱 sys sys这个模块让你能够访问与python解释器联系紧密的变量和函数. sys模块中一些重要的函数和变量 函数/变量 描述 argv 命令行参数,包括脚本名称 exit([arg]) 退出当前程序,可选参数为给定的返回值或者错误信息 modules 映射模块名字到载入模块的字典 path 查找模块所在目录的目录名列表 platform 类似sunos5或者win32的平台标识符 stdin 标准输入流--一个类文件对象 stdout 标准输出流--一个类文件对象 stde