im是一个管理云部署上的虚拟基础设施的工具
IM-client的Python项目详细描述
35;IM—基础设施管理器客户端
< >[PYPI](https://img.shields.io/pypi/v/im-client.svg)(https://pypi.org/project/im-client) 啊![构建状态](http://jenkins.i3m.upv.es/buildstatus/icon?job=grycap/im-client-unit)(http://jenkins.i3m.upv.es:8080/job/grycap/job/im-client-unit/) 啊!【Codacy徽章】(https://api.codacy.com/project/badge/grade/c74628a2fc134c26833fc57b5771ce09)"(https://www.codacy.com/app/micafer/im-client?utm source=github.com&utm medium=referration&utm content=grycap/im-client&utm campaign=badge grade) 啊![Codacy徽章](https://www.codacy.com/project/badge/coverage/c74628a2fc134c2683fc57b5771ce09)(https://www.codacy.com/app/micafer/im-客户端?utm source=github.com&utm medium=referral&utm content=grycap/im-client&utm campaign=badge u coverage" rel="nofollow">https://api.codacy.com/project/badge/coverage/c746282828a2fc134c26833fc57b5771ce09)(https://www.codacy.com/app/micafer/im-client?utm source=github.com&utm medium=referration&utm content=grycap/im-client&utm campaign=badge coverage) 啊![许可证](许可证" rel="nofollow">https://img.shields.io/badge/license-gpl%20v3.0-brightgreen.svg)(许可证)https://img.shields.io/badge/license-gpl%20v3.0-brightgreen.svg)(许可证) 啊![文档](https://img.shields.io/badge/docs-latest-brightgreen.svg)(https://imdocs.readthedocs.io/en/latest/client.html" rel="nofollow">https://img.shields.io/badge/docs-latest-brightgreen.svg)(https://imdocs.readthedocs.io/en/latest/client.html)im是一个工具,通过自动化促进了iaas云的访问和可用性。 vmi的选择、部署、配置、软件安装、监控 以及虚拟应用程序的更新。它支持来自大量 虚拟平台,使得用户应用不受云计算影响。除此之外 集成了一个上下文化系统,使安装和 为用户提供 功能齐全的基础设施。
<> 用法:在客户机中使用:在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在客户机中使用;在对u参数的操作'35;'35;1安装
'35;'35;'35;1.1必要条件
im基于python,因此python 2.4或更高版本的运行时和标准库必须 安装在系统中。
还需要安装radl解析器(pip中提供的https://github.com/grycap/radl" rel="nofollow">https://github.com/grycap/radl) 作为"radl"包。还需要python请求库(http://docs.python-requests.org/" rel="nofollow">http://docs.python-requests.org/) 以python的形式提供-o.s.包中的请求或pip中的请求。
'35;'35;'35;1.2可选软件包
如果使用xmlrpc api的ssl安全版本springpython 必须安装框架(http://springpython.webpartialal.com/" rel="nofollow">http://springpython.webpartialal.com/)。
'35;'35;'35;1.3安装
来自PIP的'35;'35;'35;'35;1.3.1
您只需使用im-client包调用pip工具的install命令即可。
<> pip安装im-客户端'35;'35;'35;'35;1.3.2源代码
您只需要将tar-gziped文件安装到任何目录:
嘘 $tar xvzfim-client-x.xx.tar.gz
###1.4配置
以避免在所有客户端调用中键入参数。用户可以定义配置 当前目录中的文件"im_client.cfg"或其目录中的文件".im_client.cfg" 主目录。在配置文件中,用户可以指定以下参数:
<> [ IMM-客户端] #只设置一个URL xmlrpc戋url=http://localhost:8899重新启动URL==http://localhost:8800 auth_file=auth.dat xmlrpc_ssl_ca_certs=/tmp/pki/ca chain.pem####1.4.1验证文件
授权文件以纯文本存储访问 云提供商、IM服务和VMRC服务。文件的每一行 由以分号分隔的键和值对组成,并引用 单一凭证。键和值应该用"="分隔,即 前面和后面至少有一个空格的等号,如 这:
<> id=id_value;type=value_of_type;username=value_of_username;password=value_of_password值可以包含"=","\n"替换为回车。可用的 关键是:
- type表示引用凭证的服务。服务 支持的是InfrastructureManager,VMRC,OpenNebula,EC2,Fogbow, openstack,occi,libcloud,docker,gce,azure,azureclassic和kubernetes
- 用户名表示与凭证关联的用户名。在EC2中 它指的是访问键id。在GCE中,它指的是服务帐户的电子邮件地址
- 密码表示与凭证关联的密码。在EC2中 它指的是秘密访问密钥。在GCE中,它指的是服务私钥 (JSON或PKCS12格式)。了解如何获取它以及如何从中提取私钥文件 [此处](https://cloud.google.com/storage/docs/authentication\service\u accounts" rel="nofollow">https://cloud.google.com/storage/docs/authentication\service\u accounts)。
- 租户表示与凭证关联的租户。 此字段仅在OpenStack插件中使用。
- 主机指示云提供商的访问点地址。 im、gce、azure和ec2凭据中不使用此字段。
- 代理指示与凭据关联的代理文件的内容。 要引用文件,必须使用函数"file(/tmp/proxyfile.pem)",如示例所示。 此字段用于OCCI和OpenStack插件。
- 项目指示与凭据关联的项目名称。 此字段仅在GCE插件中使用。
- 公钥表示与凭证关联的公钥文件的内容。 要引用一个文件,必须使用函数"file(cert.pem)",如示例所示。 此字段用于azure classic和docker插件。对于azure classic,请查看如何获取它 [此处](https://msdn.microsoft.com/en-us/library/azure/gg551722.aspx" rel="nofollow">https://msdn.microsoft.com/en-us/library/azure/gg551722.aspx)。
- 私钥表示与凭证关联的私钥文件的内容。 要引用一个文件,必须使用"file(key.pem)"函数,如示例所示。 此字段用于azure classic和docker插件。对于azure classic,请查看如何获取它 [此处](https://msdn.microsoft.com/en-us/library/azure/gg551722.aspx" rel="nofollow">https://msdn.microsoft.com/en-us/library/azure/gg551722.aspx)。
- id将标识符与凭证关联。标识符应该是 用作RADL中展开部分的标签。
- 订阅ID指示与凭据关联的订阅ID名称。 此字段仅在azure和azure经典插件中使用。创建用户以使用azure(arm) 插件检查azure python sdk的文档: [此处](使用AD用户密码" rel="nofollow">https://azure sdk for python.readthedocs.io/en/latest/quickstart戥authentication.html;使用AD用户密码" rel="nofollow">https://azure sdk for python.readthedocs.io/en/latest/quickstart戥authentication.html")
- 标记表示与凭证关联的openid标记。此字段用于OCCI插件。
#####OpenStack附加字段
OpenStack有一组附加字段来访问云站点:
- 验证版本用于连接密钥库服务器的验证版本。 可能的值为:2.0_password或3.x_password。默认值为2.0_password
- 基本URL指向OpenStack API终结点的基本URL。默认情况下,连接器从 服务器目录,但如果提供了此参数,则跳过此步骤并直接使用提供的值。 其值为:http://cloud\u server.com:8774/v2/<;租户id>;
- 服务区域云站点的区域(区分大小写)。用于获取API 终结点URL。默认值为:regionone
- 服务名称用于获取API端点URL的服务名称。默认值为:计算
- 身份验证令牌用于身份验证的令牌。如果提供此参数,则正常身份验证 将跳过流,并使用提供的令牌直接命中openstack api终结点。正常身份验证 流程包括使用提供的用户名和密码访问auth服务(keystone)并请求 身份验证令牌。
验证文件的示例:
<> #opennebula站点 id=one;type=opennebula;host=osenserver:2633;username=user;password=pass #使用标准用户、密码、租户格式的OpenStack站点 id=ost;type=openstack;host=https://ostserver:5000;username=user;password=pass;tenant=tenant #使用voms代理身份验证的openstack站点 id=ostvoms;type=openstack;proxy=文件(/tmp/proxy.pem);host=https://keystone:5000;tenant=tname #IM验证数据 id=im;type=infrastructuremanager;username=user;password=pass #vmrc验证数据 id=vmrc;type=vmrc;host=http://server:8080/vmrc;用户名=用户;密码=通过 #EC2验证数据 id=ec2;type=ec2;username=access_key;password=secret_key #谷歌计算认证数据 id=gce;type=gce;username=username.apps.googleusercontent.com;password=pass;project=projectname #带证书的Docker站点 id=docker;type=docker;host=http://host:2375;公钥=文件(/tmp/cert.pem);私钥=文件(/tmp/key.pem) #没有SSL安全的Docker站点 id=docker;type=docker;host=http://host:2375 #OCCI VOMS站点验证数据 id=occi;type=occi;proxy=文件(/tmp/proxy.pem);主机=https://server.com:11443 #occi-oidc网站认证数据 id=occi;type=occi;token=token;host=https://server.com:11443 #azure(rm)站点身份验证数据 id=azure;type=azure;订阅id=订阅id;username=user@domain.com;password=pass #Kubernetes站点验证数据 id=kub;type=kubernetes;host=http://server:8080;用户名=用户;密码=通过 #Fogbow验证数据 id=fog;type=fogbow;主机=http://server:8182;代理=文件(/tmp/proxy.pem) #azure经典身份验证数据 id=azurecla;type=azureclassic;subscription_id=subscription_id;public_key=文件(/tmp/cert.pem);私钥=文件(/tmp/key.pem)###1.4调用
程序"im_client"的调用方式如下:
<> im_client.py[-u--xmlrpc url<;url>;][-r--restapi url<;url>;][-v--verify ssl][-a--auth_file<;filename>;]操作操作参数选项:-u–xmlrpc url
< Buff行情>XML-RPC服务的URL。 必须指定此选项或"-r"选项。
选项::-r–rest url url
< Buff行情>im服务上rest api的url。 必须指定此选项或"-u"选项。
选项::-v–验证SSL
< Buff行情>验证SSL连接的证书。 默认值为false,
选项:-a–auth_文件名
< Buff行情>授权文件的路径,请参见[此处](https://imdocs.readthedocs.io/en/latest/client.html;授权文件)。 此选项是必需的。
操作:
< Buff行情>< dl >- 列表
列出用户创建的基础结构ID。
- 创建<;radlfile>;[异步标志]
使用在路径为的文件中指定的radl创建基础结构 放射性文件。异步标志参数是可选的 是一个标志,用于指定创建调用是否将等待资源 立即创建或返回基础结构的ID。
- 销毁<;infid>;
用idinfid破坏基础设施
- getinfo<;infid>;
显示与 具有idinfid的基础设施
- getcontmsg<;infid>;
显示具有idinfid的基础结构的上下文化消息
- getstate<;infid>;
使用idinfid显示基础结构的状态
- getoutputs<;infid>;
显示具有idinfid的基础结构的输出(仅适用于带有rest api的tosca文档)。
- getvminfo<;infid>;<;vmid>;
显示与idvmid的虚拟机相关联的信息 与具有idinfid的基础结构关联
- getvmcontmsg<;infid>;<;vmid>;
显示ID为vmid的虚拟机的上下文化消息 与具有idinfid的基础结构关联
- 添加资源<;中缀>;[ctxt_标志]
添加到具有idinfid的基础结构中 路径为radl file的radl文件。ctxt_标志参数是可选的 是一个标志,用于指定是否启动上下文化步骤 就在虚拟机添加之后。如果未指定上下文化步骤 将启动。
- 移除资源<;中缀>;<;vmid>;[ctxt_标志]
在具有 id中缀。ctxt_标志参数是可选的 是一个标志,用于指定是否启动上下文化步骤 就在虚拟机添加之后。如果未指定上下文化步骤 将启动。
- 开始<;中缀>;
恢复与ID为的基础结构关联的所有虚拟机 infid,先前由操作停止
- 停止<;infid>;
停止(但不删除)与 具有idinfid的基础设施
- 更改<;infid>;<;vmid>;<;radlfile>;
使用idvmid修改虚拟机的规范 与idvmid的基础结构关联,使用radl 文件中的规范,路径为radlfile
- 重新配置<;infid>;[radl_文件][vm_列表]
使用idinfid重新配置基础结构,并更新 配置数据。最后一个vm_list参数是可选的 是一个列表整数,指定要重新配置的vm的id。 如果未指定,将重新配置所有虚拟机。
- 开始tvm<;中缀>;<;vmid>;
恢复与id为的基础结构关联的指定虚拟机 infid,先前由操作停止
- 停止vm<;中缀>;
停止(但不删除)与id为的基础结构关联的指定虚拟机vmid 具有idinfid的基础设施
- 重新启动vm<;infid>;<;vmid>;
重新启动与ID为的基础结构关联的指定虚拟机 具有idinfid的基础设施
- sshvm<;infid>;<;vmid>;[仅显示]
使用与id为的基础结构关联的指定虚拟机与ssh连接 具有idinfid的基础结构。 仅显示参数是可选的 and是一个标志,用于指定ssh命令是否只在stdout中显示而不是执行。
- 导出<;中缀>;[删除]
导出具有idinfid的基础结构的数据。delete参数是可选的 和是一个标志,用于指定是否将从IM服务中删除基础结构(vm不是 已删除)。
- 导入<;json_文件>;
导入以前用上一个函数导出的基础结构的数据。 json_文件是一个文件,其中包含使用export函数生成的数据。
- 列表