python libvirt api openAuth()

使用tcp连接libvirt服务,不适用密码

/etc/libvirt/libvirtd.conf
auth_tcp="none"
service libvirtd restart
import libvirt
conn = libvirt.open("qemu+tcp://localhost/system")
print conn.getHostname()

使用tcp加密码连接libvirt

auth_tcp="sasl"
saslpasswd2 -a libvirt admin
sasldblistusers2 -f /etc/libvirt/passwd.dbservice libvirtd restart

连接代码

import libvirt
USER = "root"
PASSWD = "mypasswd"

def authcb(credentials, user_data):
   for credential in credentials:
       if credential[0] == libvirt.VIR_CRED_AUTHNAME:
           credential[4] = USER
       elif credential[0] == libvirt.VIR_CRED_PASSPHRASE:
           credential[4] = PASSWD
   return 0

auth = [[libvirt.VIR_CRED_AUTHNAME, libvirt.VIR_CRED_PASSPHRASE], authcb, None]
conn = libvirt.openAuth("qemu+ssh://localhost/system", auth, 0)

print conn.getHostname()

参考文档:

  http://blog.csdn.net/gaoxingnengjisuan/article/details/9674315

  http://blog.csdn.net/qq_21398167/article/details/46422583

时间: 2024-09-29 11:19:10

python libvirt api openAuth()的相关文章

通过python获取kvm虚拟机的监控信息(基于libvirt API)

通常在我们的云环境中,为了保证云平台中虚拟机的正常运行,基本都需要这样一个功能,就是收集虚拟机的监控数据,比如cpu的使用率.内存的使用率.磁盘io.网络io等基本信息.可以利用这些信息及时调整云平台环境中出现的一些问题,从而实现保证VM的正常运行. 说到KVM管理工具,首先应该想到的就是libvirt,因为目前对KVM使用最为广泛的管理工具(应用程序接口)就是libvirt.Libvirt本身构建于一种抽象的概念上,它为受支持的虚拟机监控程序实现常用功能提供通用的API.Libvirt提供了操

libvirt API管理hypervisors

发布一段C代码,用于连接指定的KVM宿主机器,获得该宿主机器的配置信息,以及该主机上所有的虚拟主机列表.状态及配置信息: #include <stdio.h>#include <stdlib.h>#include <libvirt/libvirt.h> void ListDom(virConnectPtr conn){    char **inactiveDom;    virDomainPtr *allDom;    int nInActiveDoms = virCo

基于C语言libvirt API简单小程序

libvirt API简单小程序 1.程序代码如下 #include<stdio.h> #include<libvirt/libvirt.h> int getDomainInfo(int id) { virConnectPtr conn = NULL; virDomainPtr dom = NULL; virDomainInfo info; conn = virConnectOpenReadOnly(NULL); if (conn == NULL) { fprintf(stderr

(转)libvirt API的基本概念

本文摘自:http://blog.sina.com.cn/s/blog_da4487c40102v31i.html libvirt对象 libvirt的对象向外展现了虚拟化环境的所有资源.libvirt API编程操纵的第一个对象总是virConnectPtr,它提供了到一个Hypervisor的连接.任何一个libvirt应用程序,都是从调用 virConnectOpen函数开始的,该函数的参数包含一个Hypervisor的URI,函数执行成功表示已连接到指定的Hypervisor,并返回一个

Python DB API的异常

我们在昨天预告了一下Python DB API的异常,今天我们来细讲一下: 1.所有异常的超类:StandardError; 2.waring:属于StandardError超类,发生非致命问题所以发的异常: 3.Error:属于StandardError超类,所有错误条件的超类: 4.InterfaceError:属于Error超类,发生与接口(非数据库)相关的错误所引发的异常: 5.DatabaseError:属于Error超类,发生与数据库相关的错误的超类: 6.DataError:属于D

Python Elasticsearch API操作ES集群

环境 Centos 7.4 Python 2.7 Pip 2.7 MySQL-python 1.2.5 Elasticsearc 6.3.1 Elasitcsearch6.3.2 知识点 调用Python Elasticsearh API Python Mysqldb使用 DSL查询与聚合 Pyehon 列表操作 代码 #!/usr/bin/env python # -*- coding: utf-8 -*- #minyt 2018.9.1 #获取24小时内出现的模块次数 # 该程序通过elas

Python C API 引用计数器(三)

简介 Python的内存管理是通过对象的引用计数器来实现的,对象的创建会将引用计数器加1,被引用一次则引用计数器就会加1,反之解除引用时,则引用计数器就会减1,当Python对象的引用计数器为0的时候,则这个对象就会被回收和释放. 这种内存管理的方式是有一定的弊端的,一是它需要额外的空间维护引用计数,二是它不能解决对象的"循环引用"的问题,因此,也有很多语言比如Java并没有采用该算法做来垃圾的回收机制. Python代码实例 import sys def test_refcount(

Python DB API 连接数据库

Python DB API Mysql,Oracle,SqlServer 不关闭,会浪费资源. 原文地址:https://www.cnblogs.com/jiqing9006/p/9713716.html

如何用 Python 和 API 收集与分析网络数据?

摘自 https://www.jianshu.com/p/d52020f0c247 本文以一款阿里云市场历史天气查询产品为例,为你逐步介绍如何用 Python 调用 API 收集.分析与可视化数据.希望你举一反三,轻松应对今后的 API 数据收集与分析任务. 市场 我们尝试的,是他们找到的阿里云市场的一款 API 产品,提供天气数据. 它来自于易源数据,链接在 https://market.aliyun.com/products/57096001/cmapi010812.html?spm=517