cobbler api python3調用,創建system,刪除system

cobbler api python3調用,創建system,刪除system

可以根據mac 地址 調用API 創建任務,安裝完成之後,再把任務刪除掉。

#!/usr/bin/python3.6

import xmlrpc.client

server = 'http://192.168.100.52/cobbler_api'
user = 'admin'
password = '123456'

if __name__ == '__main__':

    try:
        remote_server = xmlrpc.client.Server(server)
        token = remote_server.login(user, password)

        print(remote_server.ping())  # cobbler服務器狀態監測

        print(remote_server.find_distro())
        print(remote_server.find_system())

        # 創建
        system_id = remote_server.new_system(token)
        remote_server.modify_system(system_id, "name", "web1", token)
        remote_server.modify_system(system_id, "hostname", "web1", token)
        remote_server.modify_system(system_id, 'modify_interface', {
            "macaddress-eth0": "00:0C:29:e1:8a:5b",
            "ipaddress-eth0": "192.168.100.150",
            "Gateway-eth0": "192.168.100.2",
            "subnet-eth0": "255.255.255.0",
            "static-eth0": 1,
            "dnsname-eth0": "192.168.100.2"
        }, token)
        remote_server.modify_system(system_id, "profile", "CentOS-7.4-x86_64", token)
        remote_server.save_system(system_id, token)
        remote_server.sync(token)

        print(remote_server.get_systems())

        ##刪除
        remote_server.remove_system("web1", token)
        remote_server.sync(token)
        print(remote_server.find_system())

    except Exception as e:
        exit('URL:%s no access' % server)

    # print(remote_server.get_user_from_token(token))  # 返回cobbler系統登錄賬號
    # print(remote_server.get_item('distro','Centos6.9-x86_64')) # 獲取指定發佈版本的信息
    # print('-------------------------')
    # print(remote_server.get_distro('Centos6.9-x86_64'))  #返回distro指定名稱的詳細信息
    # print('-------------------------')
    # print(remote_server.get_profile('CT6.8_PHY_db_high'))  # 返回profile 指定名稱的詳細信息
    # print('-------------------------')
    # print(remote_server.get_distros())   # 返回所有distro 的已有內容
    # print('-------------------------')
    # print(remote_server.get_profiles())  # 返回所有profiles的已有內容
    # print('-------------------------')
    # print(remote_server.find_system())  # 以列表返回所有的 system 名稱
    # print('-------------------------')
    # print(remote_server.find_distro())  # 以列表返回所有的distro名稱
    # print('-------------------------')
    # print(remote_server.find_profile())  # 以列表返回所有profile的名稱
    # print('-------------------------')
    # print(remote_server.has_item('distro','Centos6.9-x86_64'))  # 檢測指定distro中指定的名稱是否存在
    # print('-------------------------')
    # print(remote_server.get_distro_handle('Centos6.9-x86_64',token))  # 沒啥用
    # print(remote_server.remove_profile('test111',token))  # 刪除指定的profile
    # print('-------------------------')
    # print(remote_server.remove_system('hostname121',token)) # 刪除指定的system
    # print('-------------------------')
    # prof_id = remote_server.new_profile(token)  # 創建一個新的profile 並保存
    # print('profile new id:%s' % prof_id)
    # print('-------------------------')
    # remote_server.modify_profile(prof_id,'name','vm_test1',token) # 修改prof_id指定的profile 名稱
    # remote_server.modify_profile(prof_id,'distro','centos6.8-x86_64',token)  # 也是修改prof_id的信息
    # remote_server.modify_profile(prof_id,'kickstart','/var/lib/cobbler/kickstarts/txt111',token)
    # remote_server.save_profile(prof_id,token) # 保存
    # remote_server.sync(token) # 同步cobbler修改後的信息,這個做任何操作後,都要必須有
    # print('-------------------------')
    # print(remote_server.get_kickstart_templates())  # 獲取所有KS模板文件路徑
    # print('-------------------------')
    # print(remote_server.get_snippets())  # 獲取所有snippets文件路徑
    # print('-------------------------')
    # print(remote_server.is_kickstart_in_use('/var/lib/cobbler/kickstarts/CT6.8_PHY_db_middle.ks')) # 判斷ks文件是否在使用
    # print('-------------------------')
    # print(remote_server.generate_kickstart('CT6.8_PHY_web_high')) # 打印profile對應的ks文件內存
    # print('-------------------------')
    # print(remote_server.generate_kickstart('vm_test1','t1'))# 打印profile對應的ks文件內存
    # print('-------------------------')
    # print(remote_server.generate_gpxe('vm_test1')) # 啓動方面的,沒用
    # print('-------------------------')
    # print(remote_server.generate_bootcfg('vm_test1'))
    # print('-------------------------')
    # print(remote_server.get_blended_data('vm_test1')) # 獲取profile 的詳細信息
    # print('-------------------------')
    # print(remote_server.get_settings())  # 沒啥用
    # print('-------------------------')
    # print(remote_server.get_signatures())  # 不知道輸出的是啥
    # print('-------------------------')
    # print(remote_server.get_valid_breeds())  # 獲取的是各個操作系統的類型,
    # 輸出: ['debian', 'freebsd', 'generic', 'nexenta', 'redhat', 'suse', 'ubuntu', 'unix', 'vmware', 'windows', 'xen']
    # print('-------------------------')
    # print(remote_server.get_valid_os_versions())  # 沒啥用
    # print('-------------------------')
    # print(remote_server.get_repo_config_for_profile('vm_test1'))
    # print('-------------------------')
    # print(remote_server.get_repo_config_for_system('t1'))
    # print('-------------------------')
    # print(remote_server.version())  # 返回cobbler版本,沒啥用
    # print('-------------------------')
    # print(remote_server.extended_version())  # 返回cobbler詳細版本信息,沒啥用
    # print('-------------------------')
    # print(remote_server.logout(token))  # 退出當前cobbler連接
    # print('-------------------------')
    # print(remote_server.token_check(token))  # 檢測當前token狀態,是否失效
    # print('-------------------------')
    # print(remote_server.sync_dhcp(token)  # 同步DHCP
    # print('-------------------------')
    # print(remote_server.sync(token))  # 進行同步更新
    # print('-------------------------')
    # print(remote_server.read_or_write_kickstart_template('cobbler上ks文件路徑','false爲可寫','將要替換ks文件的內容',token))  # 注意 替換KS字符串如果爲-1,將刪除此Ks文件,條件是此ks文件已不在引用
    # print(remote_server.read_or_write_kickstart_template('/var/lib/cobbler/kickstarts/hostname106.ks',False,-1,token))
    # print('-------------------------')
    # print(remote_server.get_config_data('zhaoyong'))  # 沒啥用
    # print('-------------------------')
    # x  = remote_server.test_xmlrpc_ro()
    # print(x.distro)
    # print(remote_server.read_or_write_snippet('/var/lib/cobbler/snippets/test1',False,'zhaoyong_test',token)) # 在snippgets下建立腳本文件
    # distro_obj = cbl_distro.cobbler_distro(remote_server,token)
    # # distro 查詢
    # out = distro_obj.find_distro_name()
    # print(out)
    # out = distro_obj.find_distro_info('Centos6.9-x86_64')
    # print(out)
    #
    # profile_obj = cbl_profile.cobbler_profiles(remote_server,token)
    #  profile 查找
    # pro_name_list = profile_obj.find_profile_name()
    # print(out)
    # out = profile_obj.find_profile_info('CT6.8_VM_web_custom')
    # print(out)
    #
    # system_obj = cbl_system.cobbler_system(remote_server,token)
    # # system 查詢
    # out_all = system_obj.find_system_name()
    # print(out_all)
    # out = system_obj.system_name_info('tttttt')
    # print(out)
    # del system
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章