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>
以上。