Nutanix Advent Calendar 2016 の6日目の投稿です。
今回は、 Nutanix Cmdlets のコマンドレットの様子を見てみます。
Nutanix Cmdlets について
Nutanix Cmdlets は、PowerShell ベースの Nutanix 環境を操作できるコマンドライン インターフェースです。Nutanix は商用版でも、Community Edition (CE) でも操作できます。
Nutanix Cmdlets のインストールについては、こちらをどうぞ。
Windows 10 だとショートカットから読み込めないことがあるようで、その場合は Add-PSSnapin で読み込めます。
今回は、気分を出すために PowerShell プロンプトの文字列を「NTNX>」に変更してから、SnapIn を読み込みます。
PS C:\> function prompt{Write-Host "NTNX" -NoNewLine -ForegroundColor White; Write-Host ">" -NoNewLine -ForegroundColor Green;" "}
NTNX>
NTNX> Add-PSSnapin NutanixCmdletsPSSnapin
NTNX> Get-PSSnapin -Name NutanixCmdletsPSSnapin
Name : NutanixCmdletsPSSnapin
PSVersion : 5.0
Description : This is a custom PowerShell snap-inthat loads Nutanix Cmdlets.
NTNX>
実際の見た目は下記のようになります。

Nutanix Cmdlets (PowerShell) のコマンドレットの様子。
Nutanix Cmdlets のコマンドレットは多く、339個が含まれています。
NTNX> (gcm -PSSnapin NutanixCmdletsPSSnapin).Count 339
PowerShellコマンドレットの名前は、基本的に「<Verb>-<Noun>」となっています。
Nutanix Cmdlets のスナップインである NutanixCmdletsPSSnapin に含まれるコマンドレットを Noun(下記では Name 列)ごとに Verb をまとめてみました。Nown は、基本的に NTNX~ となっています。
一般的には Noun ごとに Get、Set、Add などの Verb (のコマンドレット)をセットで持つことが多い印象がありますが、Nutanix Cmdlets は、Get だけ(情報参照だけ)のものが多い印象を受けました。
NTNX> gcm -PSSnapin NutanixCmdletsPSSnapin | group Noun | select Count,Name,{$_.Group.Verb -join ","} | sort Name
Count Name $_.Group.Verb -join ","
----- ---- -----------------------
1 NTNXAcropolisVDisk Get
3 NTNXAlert Acknowledge,Get,Resolve
2 NTNXAlertConfiguration Get,Set
2 NTNXAlerts Acknowledge,Resolve
1 NTNXAllCloudCredentials Remove
3 NTNXAuthConfig Get,Remove,Update
4 NTNXAuthConfigDirectory Add,Get,Remove,Set
4 NTNXAuthType Add,Get,Remove,Set
1 NTNXBuiltInGroupsFileServerByUuid Get
2 NTNXCACertificate Get,Remove
1 NTNXCertificate Remove
1 NTNXCertificatesViaMultiFile Add
2 NTNXCertificationInformation Get,Set
1 NTNXClientAuth Set
2 NTNXClientAuthState Get,Set
3 NTNXCloudCredential Add,Get,Remove
1 NTNXCloudCvm Get
1 NTNXCloudCvmImage Get
1 NTNXCloudRemoteSite Deploy
4 NTNXCluster Connect,Disconnect,Get,Set
1 NTNXClusterDataState Get
1 NTNXClusterExternalDetail Get
1 NTNXClusterExternalState Get
1 NTNXClusterFromMulticluster Remove
1 NTNXClusterInfo Get
1 NTNXClusterLicenseInfo Get
1 NTNXClusterStat Get
1 NTNXClusterToMulticluster Add
1 NTNXCmdletsInfo Get
1 NTNXConnectionInfo Get
1 NTNXConsistencyGroup Update
4 NTNXContainer Get,New,Remove,Set
1 NTNXContainerAlert Get
1 NTNXContainerEvent Get
1 NTNXContainerStat Get
1 NTNXContainerVDisk Get
1 NTNXCronSchedule Clear
1 NTNXCurrentlyLoggedInUserInfo Get
1 NTNXCurrentlyLoggedInUsersInfo Get
1 NTNXDefaultCloudCredential Set
2 NTNXDisk Get,Rekey
1 NTNXDiskAlert Get
1 NTNXDiskEvent Get
1 NTNXDiskForRemoval Mark
1 NTNXDiskHealthCheckSummary Get
1 NTNXDiskStat Get
2 NTNXdomain join,unjoin
1 NTNXEncryptionConfiguration Test
1 NTNXEntity Restore
1 NTNXEntityFromTag Remove
1 NTNXEntityToTag Add
2 NTNXEvent Acknowledge,Get
1 NTNXEvents Acknowledge
1 NTNXFile Delete
1 NTNXFileGroup Get
5 NTNXfileserver expand,New,Remove,Set,Upgrade
1 NTNXFileServerByUuid Get
1 NTNXFileServers Get
1 NTNXFSStat Get
5 NTNXGuestTool Dismount,Get,Mount,Set,Update
2 NTNXHA Get,Update
1 NTNXHardwareAlert Get
1 NTNXHardwareEvent Get
2 NTNXHealthCheck Get,Set
1 NTNXHost Get
1 NTNXHostAlert Get
1 NTNXHostEvent Get
1 NTNXHostHealthCheckSummary Get
1 NTNXHostStat Get
4 NTNXHttpProxy Add,Get,Remove,Set
1 NTNXHttpProxyWhitelist Get
4 NTNXImage Get,New,Remove,Set
4 NTNXKeyManagementServer Add,Get,Remove,Update
1 NTNXLDAPConnection Test
1 NTNXLicense Get
1 NTNXLicenseAlert Get
1 NTNXLicenseAllowance Get
1 NTNXLicenseEvent Get
2 NTNXMaintenanceMode Start,Stop
1 NTNXMultiClusterAlert Get
1 NTNXMultiClusterEvent Get
1 NTNXMultiClusterStat Get
3 NTNXNameServer Add,Get,Remove
4 NTNXNetwork Get,New,Remove,Set
1 NTNXNetworkAddressTable Get
2 NTNXNetworkIP Reserve,UnReserve
3 NTNXNfsDatastore Add,Get,Remove
3 NTNXNfsSubnetWhitelist Add,Get,Remove
3 NTNXNtpServer Add,Get,Remove
1 NTNXObject New
3 NTNXOutOfBandSchedule Add,Get,Remove
1 NTNXPasswordProtection Set
4 NTNXProtectionDomain Add,Get,Migrate,Rollback
1 NTNXProtectionDomainActive Mark
1 NTNXProtectionDomainAlert Get
1 NTNXProtectionDomainConsistencyGroup Get
4 NTNXProtectionDomainCronSchedule Add,Get,Remove,Replace
1 NTNXProtectionDomainEvent Get
1 NTNXProtectionDomainForRemoval Mark
1 NTNXProtectionDomainHealthCheckSummary Get
1 NTNXProtectionDomainInactive Mark
1 NTNXProtectionDomainPendingAction Get
1 NTNXProtectionDomainPendingReplication Get
3 NTNXProtectionDomainReplication Abort,Get,Set
2 NTNXProtectionDomainRetentionPolicy Clear,Set
3 NTNXProtectionDomainSnapshot Get,Remove,Set
1 NTNXProtectionDomainStat Get
1 NTNXProtectionDomainStatus Get
3 NTNXProtectionDomainStretchCluster Promote,Start,Stop
1 NTNXProtectionDomainStretchTimeout Update
2 NTNXProtectionDomainVM Add,Remove
1 NTNXProtectionStatus Get
3 NTNXPublicKey Add,Get,Remove
2 NTNXRackableUnit Get,Remove
1 NTNXRecentCertificateTestResults Get
3 NTNXRemoteSite Get,New,Set
1 NTNXRemoteSiteAlert Get
1 NTNXRemoteSiteEvent Get
1 NTNXRemoteSiteForRemoval Mark
1 NTNXRemoteSiteHealthCheckSummary Get
1 NTNXRemoteSitePendingReplication Get
1 NTNXRemoteSiteSnapshot Get
1 NTNXRemoteSiteStat Get
2 NTNXRemoteSupportSetting Get,Set
1 NTNXRSyslogConfig Get
4 NTNXRSyslogServer Add,Get,Remove,Set
3 NTNXRSyslogServerModule Add,Get,Remove
1 NTNXRSyslogState Set
1 NTNXRSyslogStatus Get
4 NTNXServiceCenter Get,New,Remove,Set
4 NTNXShare Get,New,Remove,Set
1 NTNXShares Get
1 NTNXShareStat Get
3 NTNXSmtpServer Get,Remove,Set
1 NTNXSmtpServerSecurityModeType Get
5 NTNXSnapshot Clone,Get,New,Remove,Restore
2 NTNXSnapshotForVDisk Add,Get
1 NTNXSnmpInfo Get
4 NTNXSnmpProfile Get,New,Remove,Set
2 NTNXSnmpStatus Get,Set
3 NTNXSnmpTransport Add,Get,Remove
4 NTNXSnmpTrap Add,Get,Remove,Set
4 NTNXSnmpUser Add,Get,Remove,Set
1 NTNXSpotlightSearchResult Get
1 NTNXStorageAlert Get
1 NTNXStorageEvent Get
4 NTNXStoragePool Get,New,Remove,Set
1 NTNXStoragePoolAlert Get
1 NTNXStoragePoolEvent Get
1 NTNXStoragePoolStat Get
1 NTNXSubnets Get
1 NTNXSwitch Get
2 NTNXSwitchCollectorConfig Get,Set
3 NTNXSwitchConfig New,Remove,Set
1 NTNXSwitchInterface Get
1 NTNXSwitchInterfaceStat Get
4 NTNXTag Get,New,Remove,Set
1 NTNXTaggedEntity Get
2 NTNXTask Get,Poll
1 NTNXUnprotectedVM Get
4 NTNXVDisk Get,New,Remove,Set
1 NTNXVDiskAlert Get
1 NTNXVDiskEvent Get
1 NTNXVDiskSnapshot Get
1 NTNXVDiskStat Get
2 NTNXVirtualDisk Get,Set
1 NTNXVirtualDiskStat Get
7 NTNXVirtualMachine Clone,Get,Move,New,Remove,Restore,Set
1 NTNXVM Get
1 NTNXVMAlert Get
4 NTNXVMDisk Add,Get,Remove,Set
1 NTNXVMEvent Get
1 NTNXVMHealthCheckSummary Get
1 NTNXVMMove Stop
3 NTNXVMNIC Add,Get,Remove
1 NTNXVMPowerOff Set
1 NTNXVMPowerOn Set
1 NTNXVMPowerState Set
1 NTNXVMSnapshot Get
1 NTNXVMStat Get
1 NTNXVMVDisk Get
1 NTNXVMVirtualDisk Get
3 NTNXVolumeDisk Delete,New,Set
9 NTNXVolumeGroup AttachVm,Clone,Close,Delete,DetachVm,Get,New,Open,Set
1 NTNXVolumeGroups Get
3 NTNXVStore Get,Protect,UnProtect
1 NTNXVStoreProtection Update
3 NutanixCluster Connect,Disconnect,Get
1 NutanixCmdletsInfo Get
1 NutanixObject New
NTNX>
Nutanix 特有の操作をするため、コマンドレット名の Verb 部分を見ると、PowerShell コマンドレットによくある Get、Set、Remove、Add、New 以外のものが多いのが特徴的だと思います。
NTNX> gcm -PSSnapin NutanixCmdletsPSSnapin | group Verb | select Count,Name | sort Count -Descending
Count Name
----- ----
148 Get
43 Set
42 Remove
25 Add
18 New
7 Update
5 Mark
4 Acknowledge
3 Restore
3 Stop
3 Clone
3 Delete
2 Connect
2 Start
2 Resolve
2 Clear
2 Disconnect
2 Test
1 Replace
1 Reserve
1 unjoin
1 UnProtect
1 UnReserve
1 Rollback
1 Upgrade
1 Rekey
1 Dismount
1 expand
1 join
1 DetachVm
1 AttachVm
1 Close
1 Deploy
1 Migrate
1 Poll
1 Promote
1 Protect
1 Open
1 Mount
1 Move
1 Abort
NTNX>
以上。
