本文讲的是 : 技术解析:基于Perl的VMWare虚拟机管理 , 【IT168技术】众所周知,VMWare在虚拟化和云计算基础架构领域处于全球领先地位,所提供的经客户验证的解决方案可通过降低复杂性以及更灵活、敏捷地交付服务来提高IT效率。而旗下的VMWare vSphere是一整套虚拟化应用产品,它包含VMWare ESX Server、VMWare Virtual Center、VMotion,以及例如VMWare HA、VMWare DRS和VMWare统一备份服务等分布式服务。它提供了完整的虚拟化解决方案,但是我们仍然需要大量专业人员手动的进行维护和管理整个虚拟化环境。因此,VMWare官方也提供了多种不同语言版本的SDK以满足不同企业用户自动化管理整个虚拟化环境的需求。
关于本文:
本文简单介绍了基于VMWare SDK的Perl语言版本API如何设计并实现虚拟化环境整个生命周期的自动化管理。内容包括:
VMWare Perl SDK简介
虚拟机和模版
部署新的虚拟机
虚拟机的电源管理
虚拟机的快照管理
删除虚拟机
任务进度管理
常见问题的解决方法
总结
参考资料
作者简介
一. VMWare Perl SDK简介
VMWare Perl SDK提供了一组基于Perl脚本语言的操作vSphere对象的接口,管理员及开发人员可以使用Perl的相关方法轻松的操作vSphere对象。
VMWare Perl SDK包括以下主要概念:
1. 连接。所有vSphere对象的操作都建立在已取得vSphere连接的基础上。
2. 被管理对象。vSphere服务器端的每个对象在Perl SDK中都有对应的被管理对象。
3. 被管理对象的引用。Perl SDK中使用被管理对象的引用来唯一确定一个被管理对象。
4. 方法。每个被管理对象会提供0个或多个方法,用于操作该被管理对象。
5. 数据对象。每个被管理对象会对应一个或多个数据对象,用来描述他当前的状态或属性。
API提供一组静态方法来获取被管理对象:
Vim::get_view(mo_ref,view_type);
通过被管理对象的引用获得被管理对象
Vim::get_views(mo_ref_array,view_type);
通过一组被管理对象的引用获得被管理对象
Vim::find_entity_view(view_type,begin_entity,filter);
通过过滤器查找一个被管理对象
Vim::find_entity_views(view_type,begin_entity,filter);
通过过滤器查找一组被管理对象
被管理对象结构图:
二. 虚拟机和模版
在虚拟化环境中,无论底层用到了多少存储,计算核心,内存又或者是网络资源,这些对于最终用户来说,都是透明的,用户不需要知道他们的存在,而我们交付给用户的最直接的产品,就是虚拟机,每一台虚拟机都和真实的服务器一样,有CPU,有内存,有硬盘,IP地址已经预先设定完毕,交到用户手上之后,用户便可以立即开始使用,然而服务器的操作系统种类有很多,对于用户的不同需求,每次都从零开始安装和配置一台服务器,不仅十分浪费时间,同时也不能保证配置的一致性。
在这样的情况下,模版应运而生,其实模版就是一台特定的虚拟机,专业人员通过预先安装配置好大量不同操作系统的虚拟机,并将其转换为模版后,当用户请求到来时,系统会自动选择出合适的模版,通过克隆及少量自定义配置,便可交付给用户使用,不仅大量的缩短了的新建虚拟机的时间,还能保证配置的可靠性。
三、部署新的虚拟机
让我们通过一个简单的示例看看如何通过模版快速创建一台虚拟机吧
a) 连接VMWare vSphere Center SDK
my $vc_ip = ……; my $vc_user = ……; my $vc_pass = ……; my $vCenterURL = 'https://' . $vc_ip . '/sdk'; Util::connect( $vCenterURL, $vc_user, $vc_pass ); |