精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

使用Perl SDK獲取VMware虛擬化平臺信息

責任編輯:editor006

作者:王偉

2016-10-14 16:34:41

摘自:it168網站

云計算做為當前IT技術的主流,已經深入各行各業。而虛擬化做為其基礎,已經被做為部署企業公有云、私有云的基礎架構

云計算做為當前IT技術的主流,已經深入各行各業。而虛擬化做為其基礎,已經被做為部署企業公有云、私有云的基礎架構,虛擬化技術已經普及到我們大多數的公司企業中。在此背景下,相應的也就需要我們更加智能,更加高效的維護其不同的虛擬化平臺,例如VMware,PowerVM,OpenStack等主流虛擬化技術平臺。

VMware做為當前主流虛擬化平臺,具有市場占有率高,技術穩定,受眾人群多等特點。在日常的VMware維護中,我們更多的是以手動通過vSphere Client 或者vSphere Web Client來維護企業vSphere環境,又或者是通過vSphere命令行接口(vCLI)來管理vSphere環境。假如當我們的環境中需要自動、定時、批量的獲取vSphere平臺的數據時,這種方式就有很多的不足。除此之外,我們還可以開發一套自己的VMware監控平臺, VMware提供了SDKs供我們集成,對系統維護人員或者開發人員來說,使用vSphere SDK for perl對vCenter環境進行維護是個不錯的選擇。

本文以linux平臺為例,主要將介紹VMware vSphere SDK for Perl的安裝部署,開發集成等內容。

具體有以下幾個方面:

1、集成環境準備

2、 VMware vSphere SDK for Perl 下載安裝部署

3、 Perl 示例代碼介紹

4、 總結

一.集成環境準備

1. 操作系統環境準備

首先需要一臺linux開發環境,并且完成基礎的系統配置。由于我們采用的Perl的SDK,當前測試環境還必須集成perl 開發環境,具體配置略。

2. VMware平臺環境準備

確認企業內部當前vSphere環境正常運行,vCenter或者Esxi Host可以通過 https或者vSphere Client的方式正常訪問并可操作,并且需要一個當前vCenter Server提供具有管理員權限的賬號。

在開始使用vSphere SDK for Perl之前,需要確保開發環境與 vSphere 之間的連接正常工作。使用https://ip/mob測試登錄連接。

二.VMware vSphere SDK for Perl 下載安裝部署

首先下載 VMware-vSphere-Perl-SDK-6.0.0-2503617.x86_64.tar.gz安裝包,官方下載地址:https://developercenter.vmware.com/web/sdk/60/vsphere-perl

1. VMware vSphere SDK for Perl的安裝

安裝依賴包: yum install openssl-devel libxml2-devel e2fsprogs-devel

安裝SDK:

解壓縮:tar –zxvf VMware-vSphere-CLI-6.0.0-2503617.x86_64.tar.gz

安裝:/vmware-vsphere-cli-distrib/vmware-install.pl 根據安裝提示默認選擇即可。

2. VMware vSphere SDK for Perl的測試

測試連接,我們可以通過vSphere SDK for Perl Utility Applications Reference通過以下命令測試和vCenter環境的連接。

# cd /usr/lib/vmware-vcli/apps/general

# ./connect.pl --url https://ip:443/sdk/vimService --username vCenter_account --password password

參考guide:

http://pubs.vmware.com/vsphere-60/index.jsp#com.vmware.perlsdk.uaref.doc/perl-toolkit-right.html

3. VMware vSphere SDK for Perl的相關概念

在使用vSphere SDK for perl 開發之前,我們可以通過訪問 Managed Object Browser (MOB) 來獲取managed object及其屬性值。

vSphere SDK for Perl 主要有以下一些概念: 管理對象,屬性,方法,數據對象等。

使用Perl SDK獲取VMware虛擬化平臺信息

三.Perl 示例代碼介紹

在vSphere SDK for Perl Script的開發過程中主要有以下幾個步驟:

1. 加載vSphere SDK for Perl 的Modules

2. 建立和vCenter Server 的連接

3. 獲取遠程服務器端的管理對象,篩選對象屬性信息并生成所需要的數據

4. 斷開連接

具體可參考以下示例:

1. Perl 頭文件及連接

代碼清單1:加載vSphere SDK for Perl 相關模塊

#!/usr/bin/perl -w

#########################################################################

# - Get VMware Infos

#########################################################################

#

use strict;

use warnings;

use FindBin;

use lib "$FindBin::Bin/../";

use VMware::VIRuntime;

use VMware::VILib;

use AppUtil::VMUtil;

代碼清單2:連接,建立程序和vSphere 環境的連接

# define para.

my $vCIp="0.0.0.0";

my $vCenterURL='https://'.$vCIp.'/sdk';

my $vCuser="username";

my $vCpass="password";

# Util::connect Connection.

Util::connect($vCenterURL, $vCuser, $vCpass);

2. 獲取當前VC所管理的DataCenter

代碼清單3:通過Vim::find_entity_views方法,指定entity type的類型來獲取當前VC下的DataCenter

my $data_center_views = Vim::find_entity_views(view_type=>'Datacenter'); foreach(@$data_center_views){

print $_->name." ";

}

3. 獲取當前Datacenter下的Cluster

代碼清單4:通過Vim::find_entity_views方法,指定entity type的類型并定義entity的范圍來獲取當前Datacenter下的cluster

my $cluster_views = Vim::find_entity_views(view_type => 'ComputeResource',begin_entity => $data_center);

foreach(@$cluster_views){

print $_->name." ";

}

4. 獲取當前Cluster下的Host

代碼清單5:通過Vim::find_entity_views方法,指定entity type的類型并定義entity的范圍來獲取cluster下的host

my $cluster_views = Vim::find_entity_views(view_type => 'ComputeResource',begin_entity => $data_center);

foreach (@$cluster_views){

my $clustername=$_->name;

if (!defined $clustername){

print "cluster is null!"." ";

}else{

my $host_view_list = $_->host;

foreach my $host (@$host_view_list){

my $host_value_name = $host->value;

my $hosts = Vim::get_view(mo_ref => $host);

my $_ = $hosts;

my $hostname=$_->name;

}

}

}

5. 獲取指定主機下的VMs

代碼清單6:通過Vim::get_view來獲取VM的引用來獲取主機下的VM,并指定VM這狀態不能是“inaccessible”

my $vms_host = $_->vm;

my $vm_value_name = $vms->value;

my $vms_detail = Vim::get_view(mo_ref => $vms);

# Get VMs Status

My $vm_connection_state= vms_detail->summary->runtime->connectionState->val;

if ($vm_connection_state ne "inaccessible"){

my $vmname = $vms_detail->name;

print $vmname;

}

6. 退出

代碼清單7: 退出程序和vSphere 環境的連接

# exit connection

Util::disconnect();

四.總結

本文僅僅是獲取出vCenter 環境中最基本的name信息,除此之外還有其他更多的信息可以獲取到,例如Datacenter,cluster,host,vm的拓撲結構,配置信息等,還可以獲取Host、VM的CPU、MEM、Disk、Net等常規配置、監控信息及其動態的IO數據??梢愿鶕覀兊捻椖啃枨笕レ`活獲取;也可以利用該方法對vCenter環境進行管理,例如VM的創建,管理,遷移,備份等。在此基礎上我們可以對獲取到數據進行進一步的處理,比如集成到其他系統中分析匯總等,滿足其他的業務運營的需要等等;也可以開發我們自己的VMware環境的管理工具。

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 高阳县| 榆树市| 上林县| 黑水县| 保康县| 山丹县| 肥东县| 太仆寺旗| 栾城县| 贵德县| 柘城县| 平谷区| 庆阳市| 泸溪县| 呼图壁县| 阿拉善左旗| 长春市| 胶南市| 拜城县| 和龙市| 波密县| 精河县| 阿荣旗| 西贡区| 长武县| 明星| 昌平区| 新宾| 天峻县| 天水市| 广安市| 饶平县| 阿拉善右旗| 天气| 开封市| 石嘴山市| 阿鲁科尔沁旗| 姚安县| 华池县| 兰坪| 嘉黎县|