読者です 読者をやめる 読者になる 読者になる

NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nutanix Cmdlets (PowerShell) のコマンドレットの様子。

Nutanix Advent Calendar 2016 の6日目の投稿です。

www.adventar.org

今回は、 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>

実際の見た目は下記のようになります。

f:id:gowatana:20161206020653p:plain

 

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>

以上。