2020年2月4日火曜日

VMware.PowerCLI でロールや権限周りの操作をしてみる

環境

  • CentOS 7.7.1908
  • .NET SDK 3.1
  • PowerShell 6.2.3
  • VMware.PowerCLI 11.5.0.14912921

Powershell の起動

以下は Powershell を起動したプロンプト内で実行します

証明書のエラーを抑制する

  • Set-PowerCLIConfiguration -InvalidCertificateAction:Ignore

一度のみ実行すれば OK です

vCenter or ESXi への接続 (basic 認証)

  • Connect-VIServer -Server 192.168.100.10 -User administrator@vsphere.local -Password xxxxxxxxxxx

vCenter or ESXi への接続解除

  • Disconnect-VIServer

ユーザの取得

  • Get-VMHostAccount
  • Get-VMHostAccount -Name hoge

ユーザの追加

  • New-VMHostAccount -Id hoge -Password "fuga12345!" -Description "for test"

ユーザの削除

  • Get-VMHostAccount -Id hoge | Remove-VMHostAccount

ロールの取得

  • Get-VIRole
  • Get-VIRole -Name NewRole_20200204

ロールの追加

  • New-VIRole -Name NewRole_20200204 -Privilege (Get-VIPrivilege -PrivilegeGroup)

ロールの削除

  • Get-VIRole -Name NewRole_20200204 | Remove-VIRole

権限の取得

  • Get-VIPermission
  • Get-VIPermission -Entity (Get-Datacenter) -Principal VSPHERE.LOCAL\vsphere-webclient-0c0e11a5-d914-4030-976c-04e51aa67b00

権限の追加 (ロール or ユーザへの権限割り当て)

  • New-VIPermission -Role NewRole_20200204 -Entity (Get-Datacenter) -Principal VSPHERE.LOCAL\vsphere-webclient-0c0e11a5-d914-4030-976c-04e51aa67
  • New-VIPermission -Entity (Get-VMHost) -Principal hoge -Role Admin -Propagate:$true

権限の削除

  • $permission = Get-VIPermission -Entity (Get-VMHost) -Principal hoge
  • Remove-VIPermission -Permission $permission

Tips

Get-View の使い方

  • $dc = Get-Datacenter | Get-View
  • Write-Host $dc.Name

Get-Datacenter で取得した結果から Datacenter オブジェクトを取得して編集に格納します
オブジェクトにすることでドットつなぎでフィールドなどを参照することができます

Select-Object -ExpandProperty

  • Get-VIPrivilege -Name System | Select-Object -ExpandProperty Id

デフォルトで表示されない Id フィールドを表示することができます
フィールドの一覧は Get-Member あたりで確認できます

  • Get-VIPrivilege | Get-Member

WhatIf (ドライラン)

  • Get-VIRole -Name NewRole_20200204 -WhatIf

どういう挙動になるのか確認することができます

Format-List で短縮形を表示する

  • Get-VIPermission | Format-List

長くて表示されない項目がある場合はフォーマットを指定することで表示できます

各コマンドのヘルプの表示

  • Get-Help Get-VIPermission
  • Get-Help Get-VIPermission -examples
  • Get-Help Get-VIPermission -full

最後に

VMware.PowerCLI でユーザ/ロール/権限周り操作をしてみました
Powershell に用意されているコマンドレットと組み合わせることで更に便利に扱うことができるようになります

0 件のコメント:

コメントを投稿