Successfully reported this slideshow.
Your SlideShare is downloading. ×

Developer Center と Code Capture 楽々 PowerCLI 生活

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 25 Ad

Developer Center と Code Capture 楽々 PowerCLI 生活

Download to read offline

PowerCLI を利用した運用自動化 と vSphere API の構造を理解するための足掛かりとして、vCenter 6.7u2 で実装された Code Capture (Onyx) の機能を活用てみませんか?

PowerCLI を利用した運用自動化 と vSphere API の構造を理解するための足掛かりとして、vCenter 6.7u2 で実装された Code Capture (Onyx) の機能を活用てみませんか?

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Similar to Developer Center と Code Capture 楽々 PowerCLI 生活 (20)

Advertisement

Recently uploaded (20)

Developer Center と Code Capture 楽々 PowerCLI 生活

  1. 1. ©2019 VMware, Inc. Developer Center と Code Capture で楽々 PowerCLI 生活 PowerCLI が今とても使い勝手良く進 化しています 川満 雄樹 Vmware K.K. vSAN Sales Team 2019/7/5 VMware DevOps Meetup #2
  2. 2. 2©2019 VMware, Inc. Onyx って使っていましたか?
  3. 3. ©2019 VMware, Inc. 3 vSphere Client (C#) or Flash Web Client (~6.0u2) をキャプチャして PowerCLI コード化 Onyx は PowerCLI のコード作成を支援する Flings ツールでした https://labs.vmware.com/flings/onyx https://labs.vmware.com/flings/onyx-for-the-web-client 第 1 世代 Onyx : vSphere Client (C#) 第 2 世代 Onyx : Flash Web Client
  4. 4. ©2019 VMware, Inc. 4 Onyx は Code capture と名を変えて最新の vSphere 6.7 でも利用が可能でしたが… その後、実は Fling 版の HTML5 Web Client の中に機能が復活 https://labs.vmware.com/flings/vsphere-html5-web-client 第 3 世代 Onyx : Onyx for HTML5 vSphere Client
  5. 5. ©2019 VMware, Inc. 5  従来の Onyx ( Code Capture ) は Flings ツールであって、正規サポートされたツールではな かった  それゆえ、本番環境へのインストールが必要な 第2世代 Onyx あたりで利用ユーザーが大幅に減っ てしまった…  また、環境毎に対応するバージョンも異なり、更新する際には 新規に OVF をデプロイした り、 vCenter Plugin を入れなおす必要があった  これまたリソースを Onyx のためだけに準備するのも面倒になってしまった。 第1世代 Onyx のようなシンプルさが求められた... 従来の Onyx ( Code Capture ) の課題
  6. 6. 6©2019 VMware, Inc. vCenter 6.7u2 使ってますか? Developer Center 機能で API Explorer と Code Capture (Onyx) が 結構イケてる感じに進化しました
  7. 7. ©2019 VMware, Inc. 7 vCenter 6.7u2 で API Explorer と Code Capture(Onyx) が標準実装 https://blogs.vmware.com/vsphere/2019/04/vcenter-server-6-7-update-2-whats-new.html https://blogs.vmware.com/code/2019/04/18/vsphere-developer-center-update/ 第 3 世代 Onyx : vCenter 6.7u2 HTML5 vSphere Client でついに標準実装化 Code Capture (Onyx) も正式サポート
  8. 8. ©2019 VMware, Inc. 8 API Explorer は 従来の専用View と vCenter View の二通りで実装 REST API 扱う人には便利な機能 https://<vCenter_IP>/apiexplorer/index.html vCenter 6.5 から実装された API Explorer も健在 ※ むしろこっちの方が curl のサンプル出してくれた りと親切... https://<vCenter_IP>/ui/#?extensionId=com.vmwa re.vsphere.client.h5.devcenter.apiexplorer vCenter 6.7u2 から実装された Developer Center 組み込みの API Explorer
  9. 9. ©2019 VMware, Inc. 9 Developer Center に組み込まれた vSphere API を直抜きして PowerCLI 化する機能 Code Capture(Onyx) の実装 操作の記録が PowerCLI のコードとして出力
  10. 10. 10©2019 VMware, Inc. Code Capture デモ どんなコードが生成されるのか?
  11. 11. ©2019 VMware, Inc. 11 操作の記録開始はCode Capture を有効にした後、 「記録を開始」 または、 メニューバーの ● 記録ボタンを押すだけ
  12. 12. ©2019 VMware, Inc. 12 記録中は ● ボタンがゆっくり点灯
  13. 13. ©2019 VMware, Inc. 13 試しに 1台のホストの 詳細設定を変更
  14. 14. ©2019 VMware, Inc. 14 とりあえず 1 ホストだけ 詳細設定'VSAN.ClomRepairDelay'を 60 -> 120 に変更 試しに 1台のホストの 詳細設定を変更
  15. 15. ©2019 VMware, Inc. 15 操作終了後は記録をストップ
  16. 16. ©2019 VMware, Inc. 16 エクセルやテキストエディタの マクロ記録の様に、記録実行中の操 作が API への操作という形で PowerCLI 化されて出力されます。
  17. 17. ©2019 VMware, Inc. 17 #---------------SupportedOption--------------- $_this = Get-View -Id 'OptionManager-EsxHostAdvSettings-19' $_this.SupportedOption #---------------UpdateOptions--------------- $changedValue = New-Object VMware.Vim.OptionValue[] (1) $changedValue[0] = New-Object VMware.Vim.OptionValue $changedValue[0].Value = 120 $changedValue[0].Key = 'VSAN.ClomRepairDelay' $_this = Get-View -Id 'OptionManager-EsxHostAdvSettings-19' $_this.UpdateOptions($changedValue) 出力されるコードは PowerCLI で操作する vSphere API のオブ ジェクトの形で吐き出されるので、PowerCLI コマンドレットの操 作だけになれてしまっていると少し戸惑うかもしれません。Get- View がいたるところに存在します。
  18. 18. ©2019 VMware, Inc. 18 $_this.Setting |where {$_.key -eq 'VSAN.ClomRepairDelay'} Key Value --- ----- VSAN.ClomRepairDelay 60 VSAN.ClomRepairDelay 60 VSAN.ClomRepairDelay 120 VSAN.ClomRepairDelay 60 試しに コードを PowerCLI に貼り付けて動作を確認。 4台のホストの設定値の状態を確認してみます。 ※ Get-AdvancedSetting -name 'VSAN.ClomRepairDelay' でも確認できますが、あえて $_this から情報を引いてみます
  19. 19. ©2019 VMware, Inc. 19 #---------------SupportedOption--------------- $_this = Get-View -Id 'OptionManager-EsxHostAdvSettings-19' $_this.SupportedOption #---------------UpdateOptions--------------- $changedValue = New-Object VMware.Vim.OptionValue[] (1) $changedValue[0] = New-Object VMware.Vim.OptionValue $changedValue[0].Value = 120 $changedValue[0].Key = 'VSAN.ClomRepairDelay' $_this = Get-View -Id 'OptionManager-EsxHostAdvSettings-19' $_this.UpdateOptions($changedValue) $vmhost = Get-VMHost $_this = Get-View -Id ($vmhost | get-view).ConfigManager.AdvancedOption $_this | foreach-Object{$_.UpdateOptions($changedValue)} 全ホストに同じ設定を入れたいので、特定ホストのIDが指定されて いた 'OptionManager-EsxHostAdvSettings-19' の代わりに、 Get-VMHost で全台分取り込むよう書き加え、PowerCLI コンソー ルにコピペして実行。 対象ホストを 全ホストに変更
  20. 20. ©2019 VMware, Inc. 20 $_this.Setting |where {$_.key -eq 'VSAN.ClomRepairDelay'} Key Value --- ----- VSAN.ClomRepairDelay 60 VSAN.ClomRepairDelay 60 VSAN.ClomRepairDelay 60 VSAN.ClomRepairDelay 60 全台設定変更されたか確認します。
  21. 21. ©2019 VMware, Inc. 21 (Get-VMHost) | Get-AdvancedSetting -name 'VSAN.ClomRepairDelay' | select Entity,Name,Value Entity Name Value ------ ---- ----- vxesx01.vx.local VSAN.ClomRepairDelay 60 vxesx04.vx.local VSAN.ClomRepairDelay 60 vxesx03.vx.local VSAN.ClomRepairDelay 60 vxesx02.vx.local VSAN.ClomRepairDelay 60 (Get-VMHost) | Get-AdvancedSetting -name 'VSAN.ClomRepairDelay' | Set-AdvancedSetting -Value 60 -Confirm:$false Name Value Type Description ---- ----- ---- ----------- VSAN.ClomRepairDelay 60 VMHost VSAN.ClomRepairDelay 60 VMHost VSAN.ClomRepairDelay 60 VMHost VSAN.ClomRepairDelay 60 VMHost 実は PowerCLI のコマンドレットにはこの辺りの機能はすでに実装されてい て、こっちを知っていればサクッと設定もできてしまいます...
  22. 22. ©2019 VMware, Inc. 22 #---------------ReconfigureComputeResource_Task--------------- $spec = New-Object VMware.Vim.ClusterConfigSpecEx $spec.GroupSpec = New-Object VMware.Vim.ClusterGroupSpec[] (1) $spec.GroupSpec[0] = New-Object VMware.Vim.ClusterGroupSpec $spec.GroupSpec[0].Operation = 'add' $spec.GroupSpec[0].Info = New-Object VMware.Vim.ClusterVmGroup $spec.GroupSpec[0].Info.Vm = New-Object VMware.Vim.ManagedObjectReference[] (5) $spec.GroupSpec[0].Info.Vm[0] = New-Object VMware.Vim.ManagedObjectReference $spec.GroupSpec[0].Info.Vm[0].Type = 'VirtualMachine' $spec.GroupSpec[0].Info.Vm[0].Value = 'vm-18' $spec.GroupSpec[0].Info.Vm[1] = New-Object VMware.Vim.ManagedObjectReference $spec.GroupSpec[0].Info.Vm[1].Type = 'VirtualMachine' $spec.GroupSpec[0].Info.Vm[1].Value = 'vm-17' $spec.GroupSpec[0].Info.Vm[2] = New-Object VMware.Vim.ManagedObjectReference $spec.GroupSpec[0].Info.Vm[2].Type = 'VirtualMachine' $spec.GroupSpec[0].Info.Vm[2].Value = 'vm-16' ' $spec.GroupSpec[0].Info.Name = 'ManageVMs' $spec.DrsConfig = New-Object VMware.Vim.ClusterDrsConfigInfo $spec.DpmConfig = New-Object VMware.Vim.ClusterDpmConfigInfo $modify = $true $_this = Get-View -Id 'ClusterComputeResource-domain-c8' $_this.ReconfigureComputeResource_Task($spec, $modify) しかし、vSphere API の構成を知るにはとても便利ですし、コマンドレット 知らなくてもコピペで流用できるのはとても便利 DRSグループを作る例
  23. 23. ©2019 VMware, Inc. 23 ちなみに現在の PowerCLI は PowerShell Gallery からモジュールを入れるだけ Windows だけでなく、Linux 用の PowerShell Core にも対応(一部機能は非対応) 公式情報は Vmware {code} に集約 https://code.vmware.com/web/tool/11.3.0/vmware-powercli
  24. 24. ©2019 VMware, Inc. 24 ちなみに現在の PowerCLI は PowerShell Gallery からモジュールを入れるだけ Windows だけでなく、Linux 用の PowerShell Core にも対応(一部機能は非対応) PS C:> Install-Module -Name VMware.PowerCLI インターネットにつながっていれば PowerCLI の導入はモジュールをPowerShell Galleryから落とすだけ Linuxでも使えるので、昔のようなvMA的な作 業VMを Linux + PowerCLI で作る事も可能 https://kwmtlog.blogspot.com/search/label/PowerCLI その他、個人的にブログにもまとめていますので、ご参考まで、、、
  25. 25. ©2019 VMware, Inc. Thank You

×