突然ですが、vCenter のタスク情報の一覧を PowerCLI で見てみようと思います。
vSphere API では、下記のあたりの情報です。
Data Object - TaskInfo(vim.TaskInfo)
https://code.vmware.com/apis/196/vsphere#/doc/vim.TaskInfo.html
PowerCLI から見る TaskInfo
vSphere Web Client / vSphere Client などで見られる vCenter のタスク情報は、
PowerCLI だと下記のように見ることができます。
まず、VM を起動してみます。
PowerCLI> Get-VM vm21 | Start-VM
Name PowerState Num CPUs MemoryGB
---- ---------- -------- --------
vm21 PoweredOn 1 0.500
この VM の直近のタスクを見てみます。
PowerCLI> Get-VM vm21 | select Name,{$_.ExtensionData.RecentTask}
Name $_.ExtensionData.RecentTask
---- ---------------------------
vm21 Task-task-17043
PowerCLI> (Get-View (Get-VM vm21).ExtensionData.RecentTask).Info
Key : task-17043
Task : Task-task-17043
Description :
Name : PowerOnVM_Task
DescriptionId : VirtualMachine.powerOn
Entity : VirtualMachine-vm-500
EntityName : vm21
Locked :
State : success
Cancelled : False
Cancelable : False
Error :
Result :
Progress :
Reason : VMware.Vim.TaskReasonUser
QueueTime : 2017/09/14 11:31:41
StartTime : 2017/09/14 11:31:41
CompleteTime : 2017/09/14 11:31:45
EventChainId : 702468
ChangeTag :
ParentTaskKey :
RootTaskKey :
ActivationId :
LinkedView :
タスクの内容が分かりやすい、DescriptionId だけに絞ってみます。
直近の VM を起動したタスクだとわかります。
PowerCLI> Get-VM vm21 | select Name,{(Get-View $_.ExtensionData.RecentTask).Info.DescriptionId}
Name (Get-View $_.ExtensionData.RecentTask).Info.DescriptionId
---- ---------------------------------------------------------
vm21 VirtualMachine.powerOn
PowerCLI で タスク情報の一覧を取得してみる。
今回は、vCenter のタスクにどのようなものがあるのか PowerCLI で一覧を取得してみます。
まず今回使用した PowerCLI と、vCenter のバージョンです。
PowerCLI 6.5.1 と、vCenter 6.5 U1 を使用しています。
PowerCLI> (Get-PowerCLIVersion).UserFriendlyVersion
VMware PowerCLI 6.5.1 build 5377412
PowerCLI> Connect-VIServer vc-sv01.go-lab.jp | Out-Null
PowerCLI> $global:DefaultVIServer | fl Name,Version,Build,IsConnected
Name : vc-sv01.go-lab.jp
Version : 6.5.0
Build : 5973321
IsConnected : True
TaskManager から、タスク情報を取得してみます。
1500 件以上あるようです。
PowerCLI> $t = Get-View $global:DefaultVIServer.ExtensionData.Content.TaskManager
PowerCLI> ($t.Description.MethodInfo).Count
1578
とりあえず 10件だけ取得してみると、下記のような感じです。
PowerCLI> $t.Description.MethodInfo | select -First 10 | fl
Key : host.OperationCleanupManager.createEntry
Label : createEntry
Summary : createEntry
Key : host.OperationCleanupManager.updateEntry
Label : updateEntry
Summary : updateEntry
Key : host.OperationCleanupManager.queryEntry
Label : queryEntry
Summary : queryEntry
Key : vm.guest.GuestOperationsManager.queryDisabledMethods
Label : Query disabled guest operations
Summary : Returns a list of guest operations not supported by a virtual machine
Key : profile.host.HostSpecificationManager.updateHostSpecification
Label : updateHostSpecification
Summary : updateHostSpecification
Key : profile.host.HostSpecificationManager.updateHostSubSpecification
Label : updateHostSubSpecification
Summary : updateHostSubSpecification
Key : profile.host.HostSpecificationManager.retrieveHostSpecification
Label : retrieveHostSpecification
Summary : retrieveHostSpecification
Key : profile.host.HostSpecificationManager.deleteHostSubSpecification
Label : deleteHostSubSpecification
Summary : deleteHostSubSpecification
Key : profile.host.HostSpecificationManager.deleteHostSpecification
Label : deleteHostSpecification
Summary : deleteHostSpecification
Key : profile.host.HostSpecificationManager.getUpdatedHosts
Label : getUpdatedHosts
Summary : getUpdatedHosts
PowerCLI>
最初に確認した VM を起動したタスクについての情報も含まれています。
PowerCLI> $t.Description.MethodInfo | where {$_.key -eq "VirtualMachine.powerOn"} | fl
Key : VirtualMachine.powerOn
Label : Power On virtual machine
Summary : Power On this virtual machine
再起動だと、下記のようなタスクです。
PowerCLI> $t.Description.MethodInfo | where {$_.key -eq "VirtualMachine.rebootGuest"} | fl
Key : VirtualMachine.rebootGuest
Label : Initiate guest OS reboot
Summary : Issues a command to the guest operating system asking it to perform a reboot
ちなみに、下記のように CSV で出力することもできます。
PowerCLI> $t.Description.MethodInfo | Export-Csv -Encoding utf8 -NoTypeInformation -Path C:\work\vc-task.csv
PowerCLI> cat C:\work\vc-task.csv | select -First 10
"Key","Label","Summary"
"host.OperationCleanupManager.createEntry","createEntry","createEntry"
"host.OperationCleanupManager.updateEntry","updateEntry","updateEntry"
"host.OperationCleanupManager.queryEntry","queryEntry","queryEntry"
"vm.guest.GuestOperationsManager.queryDisabledMethods","Query disabled guest operations","Returns a list of guest operations not supported by a virtual machine"
"profile.host.HostSpecificationManager.updateHostSpecification","updateHostSpecification","updateHostSpecification"
"profile.host.HostSpecificationManager.updateHostSubSpecification","updateHostSubSpecification","updateHostSubSpecification"
"profile.host.HostSpecificationManager.retrieveHostSpecification","retrieveHostSpecification","retrieveHostSpecification"
"profile.host.HostSpecificationManager.deleteHostSubSpecification","deleteHostSubSpecification","deleteHostSubSpecification"
"profile.host.HostSpecificationManager.deleteHostSpecification","deleteHostSpecification","deleteHostSpecification"
PowerCLI>
取得した CSV ファイルは下記のような感じでした。
以上、PowerCLI で TaskInfo の一覧を取得してみる話でした。