CentOS7環境にPowerShell CoreとVMware PowerCLIをインストール


以前、PowerShell CoreとVMware PowerCLI Coreに関する記事を書いた。
現在は、VMware PowerCLI Coreが標準のVMware PowerCLIに統合され、またインストール手法も変わっている。
そこで、久しぶりにインストールしてみた。

まずは「Linux への PowerShell Core のインストール」記載の手順に従いインストール

1. Microsoftレポジトリの登録
「curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo」

[root@centos7 ~]# curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   193  100   193    0     0     70      0  0:00:02  0:00:02 --:--:--    70
[packages-microsoft-com-prod]
name=packages-microsoft-com-prod
baseurl=https://packages.microsoft.com/rhel/7/prod/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc
[root@centos7 ~]#

2. PowerShellのインストール
「yum install -y powershell」

[root@centos7 ~]# yum install -y powershell
読み込んだプラグイン:fastestmirror
Determining fastest mirrors
<略>
依存性を解決しました

================================================================================
 Package    アーキテクチャー
                   バージョン                 リポジトリー                 容量
================================================================================
インストール中:
 powershell x86_64 6.1.0~preview.2-1.rhel.7   packages-microsoft-com-prod  50 M
依存性関連でのインストールをします:
 libunwind  x86_64 2:1.2-2.el7                base                         57 k

トランザクションの要約
================================================================================
インストール  1 パッケージ (+1 個の依存関係のパッケージ)

総ダウンロード容量: 50 M
インストール容量: 50 M
<略>
https://packages.microsoft.com/keys/microsoft.asc から鍵を取得中です。
Importing GPG key 0xBE1229CF:
 Userid     : "Microsoft (Release signing) <gpgsecurity@microsoft.com>"
 Fingerprint: bc52 8686 b50d 79e3 39d3 721c eb3e 94ad be12 29cf
 From       : https://packages.microsoft.com/keys/microsoft.asc
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : 2:libunwind-1.2-2.el7.x86_64                    1/2
  インストール中          : powershell-6.1.0~preview.2-1.rhel.7.x86_64      2/2
  検証中                  : 2:libunwind-1.2-2.el7.x86_64                    1/2
  検証中                  : powershell-6.1.0~preview.2-1.rhel.7.x86_64      2/2

インストール:
  powershell.x86_64 0:6.1.0~preview.2-1.rhel.7

依存性関連をインストールしました:
  libunwind.x86_64 2:1.2-2.el7

完了しました!
[root@centos7 ~]#

これでPowerShellを「pwsh」で実行できるようになりました。

続いてvSphere環境をコントロールするためにPowerCLI
VMware PowerCLI 10.11

といっても、以前はパッケージをダウンロードしてインストールという形態だったものが、現状は、MicrosoftのPowerShellギャラリーに登録されています。
PowerShell Gallery「VMware.PowerCLI

インストール方法もとっても簡単。
「Install-Module -Name VMware.PowerCLI」を実行するだけ。
途中で「Untrusted repositoryからのインストールを行うか」という質問に「y」と答える必要があります。

[root@centos7 ~]# pwsh
PowerShell v6.1.0-preview.2
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.

PS /root> Install-Module -Name VMware.PowerCLI

Untrusted repository
You are installing the modules from an untrusted repository. If you trust this
repository, change its InstallationPolicy value by running the Set-PSRepository
 cmdlet. Are you sure you want to install the modules from 'PSGallery'?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "N"):y

<いろんなVMwareモジュールを追加インストール>

PS /root>

まずは、初期状態で読み込まれているモジュールを確認

PS /root> Get-Module

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Manifest   3.1.0.0    Microsoft.PowerShell.Management     {Add-Content, Clea...
Manifest   3.1.0.0    Microsoft.PowerShell.Utility        {Add-Member, Add-T...
Script     1.1.7.0    PackageManagement                   {Find-Package, Fin...
Script     1.6.0      PowerShellGet                       {Find-Command, Fin...
Script     1.2        PSReadLine                          {Get-PSReadlineKey...


PS /root>

現在使えるモジュールを確認。

PS /root> Get-Module -ListAvailable


    Directory: /usr/local/share/powershell/Modules


ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Script     6.7.0.8... VMware.DeployAutomation             {Add-DeployRule, A...
Script     6.7.0.8... VMware.ImageBuilder                 {Add-EsxSoftwareDe...
Manifest   10.1.1.... VMware.PowerCLI
Script     6.7.0.8... VMware.Vim
Script     10.1.0.... VMware.VimAutomation.Cis.Core       {Connect-CisServer...
Script     10.0.0.... VMware.VimAutomation.Cloud          {Add-CIDatastore, ...
Script     10.1.0.... VMware.VimAutomation.Common
Script     10.1.0.... VMware.VimAutomation.Core           {Add-PassthroughDe...
Script     6.5.4.7... VMware.VimAutomation.HA             Get-DrmInfo
Script     7.5.0.8... VMware.VimAutomation.HorizonView    {Connect-HVServer,...
Script     10.0.0.... VMware.VimAutomation.License        Get-LicenseDataMan...
Script     10.1.0.... VMware.VimAutomation.Nsxt           {Connect-NsxtServe...
Script     10.0.0.... VMware.VimAutomation.PCloud         {Connect-PIServer,...
Script     10.1.0.... VMware.VimAutomation.Sdk
Script     10.0.0.... VMware.VimAutomation.Srm            {Connect-SrmServer...
Script     10.1.0.... VMware.VimAutomation.Storage        {Add-KeyManagement...
Script     1.2.0.0    VMware.VimAutomation.StorageUtility Update-VmfsDatastore
Script     10.1.0.... VMware.VimAutomation.Vds            {Add-VDSwitchPhysi...
Script     10.0.0.... VMware.VimAutomation.Vmc            {Connect-Vmc, Disc...
Script     10.0.0.... VMware.VimAutomation.vROps          {Connect-OMServer,...
Script     6.5.1.7... VMware.VumAutomation                {Add-EntityBaselin...


    Directory: /opt/microsoft/powershell/6.1.0~preview.2/Modules


ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Manifest   1.1.0.0    Microsoft.PowerShell.Archive        {Compress-Archive,...
Manifest   3.0.0.0    Microsoft.PowerShell.Host           {Start-Transcript,...
Manifest   3.1.0.0    Microsoft.PowerShell.Management     {Add-Content, Clea...
Manifest   3.0.0.0    Microsoft.PowerShell.Security       {Get-Credential, G...
Manifest   3.1.0.0    Microsoft.PowerShell.Utility        {Format-List, Form...
Script     1.1.7.0    PackageManagement                   {Find-Package, Get...
Script     1.6.0      PowerShellGet                       {Install-Module, F...
Script     0.0        PSDesiredStateConfiguration         {Get-PublicKeyFrom...
Script     1.2        PSReadLine                          {Get-PSReadlineKey...


PS /root>

以前、「PowerCLIとPowerCLI Coreの双方で動くPowerShellスクリプトの作り方」では、それぞれでモジュール名が異なっていた。
PowerCLI Coreでのモジュール名変更は無かったことになった模様。

とりあえず、VI-Connectで接続をかけてみる・・・

PS /root> Connect-VIServer -Server IPアドレス -User root -Password password -WarningAction 0
Connect-VIServer : 2018/07/06 14:29:03  Connect-VIServer                Error: Invalid server certificate. Use Set-PowerCLIConfiguration to set the value for the InvalidCertificateAction option to Ignore to ignore the certificate errors for this connection.
Additional Information: Could not establish trust relationship for the SSL/TLS secure channel with authority 'IPアドレス'.
At line:1 char:1
+ Connect-VIServer -Server IPアドレス -User root -Password password - ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : SecurityError: (:) [Connect-VIServer], ViSecurityNegotiationException
+ FullyQualifiedErrorId : Client20_ConnectivityServiceImpl_Reconnect_CertificateError,VMware.VimAutomation.ViCore.Cmdlets.Commands.ConnectVIServer

PS /root>

おや?
デフォルト証明書の場合の取り扱いが変わった模様。

VMware PowerCLI Blog「New Release: VMware PowerCLI 10.0.0」の「Default Certificate Handling」に記載がある。

エラーメッセージもあるように「Set-PowerCLIConfiguration -InvalidCertificateAction Ignore」を実行して無視するようにする、と。

PS /root> Set-PowerCLIConfiguration -InvalidCertificateAction Ignore

Perform operation?
Performing operation 'Update PowerCLI configuration.'?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):y

Scope    ProxyPolicy     DefaultVIServerMode InvalidCertificateAction  DisplayD
                                                                       eprecati
                                                                       onWarnin
                                                                       gs
-----    -----------     ------------------- ------------------------  --------
Session  UseSystemProxy  Multiple            Ignore                    True
User                                         Ignore
AllUsers


PS /root>

改めて接続を実行

PS /root> Connect-VIServer -Server IPアドレス -User root -Password password   
Name                           Port  User
----                           ----  ----
IPアドレス                     443   root


PS /root>

問題なく動作しましたね。

Windows Server 2019 Insider Preview 17623から17692にアップデートしたらライセンス認証できていない


テスト環境としてWindows Server 2019 Indiser Preview Build 17623をインストールしている環境が使用期限切れを迎えたので、Windows Server 2019 Indiser Preview Build 17692に更新してみた。

再インストールしろ、ってあったが、CドライブにISOイメージを置いて、その中のsetupを実行してみると、アップデートが完了した。

しかし、ライセンス認証ができていない。
「Windows ライセンス認証 サーバーに到達できません」というエラーとなっている。

“設定”の”ライセンス認証”にある「プロダクトキーを変更します」だと、サーバーに到達できずエラーとなる。
よく見てみるとプロダクトキーの末尾5文字が、元の環境で使用していたものとは異なるものになっている。

コマンドで設定する方法がないか確認してみると「slmgr」コマンドで設定できることを発見。

今回使用しているのはStandard Editionなので、ダウンロードページにある下記記述を元にコマンドを実行

Datacenter Edition 6XBNX-4JQGW-QX6QG-74P76-72V67
Standard Edition MFY9F-XBN2F-TYFMP-CCV49-RMYVH

「slmgr /ipk MFY9F-XBN2F-TYFMP-CCV49-RMYVH」を実行
Microsoft Windows [Version 10.0.17692.1000]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Users\Administrator>slmgr /ipk MFY9F-XBN2F-TYFMP-CCV49-RMYVH

C:\Users\Administrator>

これで、無事更新できました。

Zentyalを日本語で使う場合の設定手順


Linux(Ubuntu 16.04 LTS)ベースでDHCPサーバ/ファイヤーウォール/NATルータ/ActiveDirectory/Exchange互換サーバなどを提供できるアプライアンス「zentyal」を久々にセットアップ。 (以前はzentyal.orgだったのが、zentyal.comに統合された)

2019/07/02追記:Ubuntu 18.04.1 LTSベースのZentyal 6.0です。この記事はZentyal 5.1の時に作成していますが、Zentyal 6.0でも同じでした。
2021/08/12追記:Ubuntu 20.04.2 LTSベースのZentyal 7.0ですが、同じように日本語は化け、同じパッケージインストールで修正できました。

以前、日本語訳を投稿しておいたおかげで日本語を選択できるようになっていますが、注意点が1つ。
インストール時に日本語を設定してしまうと、firefoxが文字化けし、設定に難儀します。
まずはEnglishでインストールを行った上で、手動でパッケージを追加してから日本語に変更する必要があります。

1. EnglishでZentyalをインストール
2. 初回ログイン
3. シェルを開く
4. Ubuntuの日本語対応をインストール「sudo apt install language-pack-ja firefox-locale-ja」
5. 日本語表示用フォントをインストール「sudo apt install fonts-arphic-uming fonts-takao-pgothic」
6. zentyalの日本語対応をインストール「sudo apt install language-pack-zentyal-ja」
7. zentyalの設定画面で「日本語」を設定する。

2019/12/13追記: fonts-takao-pgothic でエラーとなる場合は fonts-takao-gothic で実施のこと

文字化け状態の例

文字化け解消後

なお、yahooのページだと「fonts-arphic-uming」だけでも大丈夫だったが、zentyalではさらに「fonts-takao-pgothic」を追加する必要があった。
なお、 xfonts-intl-japanese では文字化けは直らなかった。

UNISOC(旧Spreadtrum)の廉価版SoC SC9832E登場



SpreadtrumとRDAによる新ブランドUNISOCから新しいSoC SC9832Eが登場
UNISOC Launches the World’s Most Integrated Quad-core LTE Chip Platform SC9832E

従来、Cortex-A7 4コア/GPU Mali400MP2のSC9832というものがありましたが、SC9832EはCortex-A53 4コア/GPU Mali T820 MP1とアップグレードしています。

ターゲットはRAMが512MB/1GBでAndroid Go Editionが載っているローエンド端末。
バッテリーの持ちが標準使用時で50%の改善、ヘビーユースでも40%改善してる、とのこと。

今出てるAndroid Go Edition端末は60ドル~100ドルという価格帯になっていますが、今回のSC9832E搭載機はどれくらいの価格帯で出てくることやら?

なお、SC9832EがVR/AR対応しているように読めてしまう記事がありますが、VR/ARに対応しているのはCortex-A55 8コアのSC9863の方です。
Unigroup Spreadtrum & RDA Launches First Mobile Chip Platform Spreadtrum SC9863 to Support Artificial Intelligence Applications

日本語のWindows環境でNetBackupのJREをアップデートしようとすると失敗する


Veritas NetBackupではGUIインタフェースにJavaを使用しており、インストールディレクトリにJREも含まれている。
NetBackup 7.7以降では、このJREをアップデートするためのコマンド nbcomponentupdate が用意され、JREのアップデートを個別で行うことができるようになった。
NetBackup 8.1.1 Command Reference Guide – nbcomponentupdate
Updating JRE for NetBackup and OpsCenter

しかし、日本語のWindows環境では2つの原因により素直に実行できない。

・空き容量チェックをdirのコマンドに表示される「XXX Byte free」という文字列で行っている。
日本語環境では「XXX バイトの空き容量」となるため、空き容量検出に失敗する
・nbcomponentupdate内でNetBackupサービスの停止を行っているが、やはり英語文字列を見ている。
日本語Locate Packを適用したNetBackupではコードページを変えても常に日本語文字列で出力するため
サービスの停止確認に失敗する

これを回避するためには、以下の手順で実行する必要がある。

1. コマンドプロンプトを開く

2. Javaのバージョンを確認する

C:\Windows\system32>"\Program Files\Veritas\NetBackup\jre\bin\java.exe" -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b11\3, mixed mode)

C:\Windows\system32>

3. bpdownを実行し、NetBackupを停止

C:\Windows\system32>"\Program Files\Veritas\NetBackup\bin\bpdown.exe" /f /v
NetBackup 8.0 -- 停止ユーティリティ

サービスの停止中
> NetBackup Bare Metal Restore Master Server
> NetBackup Bare Metal Restore Master Server -- 停止状態
> NetBackup Web Management Console
> NetBackup Web Management Console -- 停止状態
> NetBackup Indexing Manager
> NetBackup Indexing Manager -- 停止状態
> NetBackup Service Monitor
> NetBackup Service Monitor -- 停止状態
> NetBackup Agent Request Server
> NetBackup Agent Request Server -- 停止状態
> NetBackup Storage Lifecycle Manager
> NetBackup Storage Lifecycle Manager -- 停止状態
> NetBackup Key Management Service
> NetBackup Key Management Service -- 停止状態
> NetBackup Vault Manager
> NetBackup Vault Manager -- 停止状態
> NetBackup Service Layer
> NetBackup Service Layer -- 停止状態
> NetBackup Policy Execution Manager
> NetBackup Policy Execution Manager -- 停止状態
> NetBackup Job Manager
> NetBackup Job Manager -- 停止状態
> NetBackup Request Daemon
> NetBackup Request Daemon -- 停止状態
> NetBackup Compatibility Service
> NetBackup Compatibility Service -- 停止状態
> NetBackup Database Manager
> NetBackup Database Manager -- 停止状態
> NetBackup Audit Manager
> NetBackup Audit Manager -- 停止状態
> NetBackup Authorization
> NetBackup Authorization -- 無効状態
> NetBackup Authentication
> NetBackup Authentication -- 停止状態
> NetBackup CloudStore Service Container
> NetBackup CloudStore Service Container -- 停止状態
> NetBackup Deduplication Engine
> NetBackup Deduplication Engine -- 無効状態
> NetBackup Deduplication Manager
> NetBackup Deduplication Manager -- 無効状態
> NetBackup Remote Manager and Monitor Service
> NetBackup Remote Manager and Monitor Service -- 停止状態
> NetBackup Device Manager
> NetBackup Device Manager -- 停止状態
> NetBackup Volume Manager
> NetBackup Volume Manager -- 停止状態
> NetBackup Resource Broker
> NetBackup Resource Broker -- 停止状態
> NetBackup Enterprise Media Manager
> NetBackup Enterprise Media Manager -- 停止状態
> NetBackup Relational Database Manager
> NetBackup Relational Database Manager -- 停止状態
> NetBackup Event Manager
> NetBackup Event Manager -- 停止状態
> NetBackup Deduplication Multi-Threaded Agent
> NetBackup Deduplication Multi-Threaded Agent -- 停止状態
> NetBackup Discovery Framework
> NetBackup Discovery Framework -- 停止状態
> NetBackup SAN Client Fibre Transport Service
> NetBackup SAN Client Fibre Transport Service -- 無効状態
> NetBackup Client Service
> NetBackup Client Service -- 停止状態
> NetBackup Legacy Client Service
> NetBackup Legacy Client Service -- 停止状態
> NetBackup Legacy Network Service
> NetBackup Legacy Network Service -- 停止状態

ロボット制御デーモンの停止中

停止が正常に完了しました。
C:\Windows\system32>

4. コードページ 437(英語)に変更するため「chcp 437」を実行

C:\Windows\system32>chcp 437
Active code page: 437

C:\Windows\system32>

5. nbcomponentupdateコマンドでJREをアップデート

今回は、c:\Program Files\Java\jre1.8.0_171 にインストールされているJRE 1.8.0 Build 171を指定した。

C:\Windows\system32>"\Program Files\Veritas\NetBackup\bin\goodies\nbcomponentupdate.exe" -Product NetBackup -component jre -path "c:\Program Files\Java\jre1.8.0_171"
Command line: C:\Program Files\Veritas\NetBackup\bin\goodies\nbcomponentupdate.exe -Product NetBackup -component jre -path c:\Program Files\Java\jre1.8.0_171

Java Runtime Envrionment(JRE) version installed with product 'Veritas NetBackup'                                 : 1.8.0_101 (64bit)
Java Runtime Envrionment(JRE) version found at path 'c:\Program Files\Java\jre1.8.0_171'                         : 1.8.0_171 (64bit)

This utility will update the Java Runtime Envrionment(JRE) binaries present at 'C:\Program Files\Veritas\NetBackup\jre' path

This utility may start and stop all (or some) services depending upon the present state of services.

Do you want to continue (Y[es]/N[o]): y

Performing upgrade steps ...

[1/4] Pre-installation step is in progress
[1/4] Pre-installation step is completed successfully

[2/4] Installation step is in progress
[2/4] Installation step is completed successfully

[3/4] Post-installation step is in progress
[3/4] Post-installation step is completed successfully

[4/4] Commit and Cleanup step is in progress
[4/4] Commit and Cleanup step is completed successfully

After upgrading, Java Runtime Envrionment(JRE) version installed with product 'Veritas NetBackup'                                 : 1.8.0_171 (64bit)

Successfully upgraded Java Runtime Envrionment(JRE) for Veritas NetBackup.
The log file generated for this operation is C:\Users\ADMINI~1\AppData\Local\Temp\2\logs\nbcomponentupdate\nbcomponentupdate_20-06-2018_17.17.37.log

C:\Windows\system32>

なお、NetBackupサービスはバージョンによっては自動的に起動されたりするようだ。

自働起動しなかった場合は「bpup」を実行して起動する

6. Javaのバージョンを確認する

C:\Windows\system32>"\Program Files\Veritas\NetBackup\jre\bin\java.exe" -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

C:\Windows\system32>

7. 更新完了


2021/04/26追記

Oracle JRE 1.8.0u291にアップデートをかけてみたところ、NetBackup Web Management Consoleが起動できなくなるという問題が発生しました。

このため「nbcomponentupdate.exe -Product NetBackup -component jre -revert」を実行し、以前のバージョンに戻してみたところ正常に動作しました。

NetBackup 8.1.1のデフォルトは1.8.0 u151で、手持ちの古いバージョンのうちOracle JRE 1.8.0u172とOracle JRE 1.8.0u241はnbcomponentupdateでアップデートして動作しました。

AZULのZulu Open JRE 1.8.0 はデフォルトインストール先が C:\Program Files\Zulu\zulu-8-jre\ で、バージョンが入ってないからダメだそうで・・・

AdoptOpen JDK 1.8.0 のデフォルトインストール先は C:\Program Files\AdoptOpenJDK\jre-8.0.292.10-hotspot\ で、こちらもやはり使用できませんでした。

ちなみにインストール先を「C:\Program Files\Zulu\jre1.8.0_292」とか「C:\Program Files\Java\jre1.8.0_292」に変更してみましたが同じエラー

java -versionの結果を比較すると「java version」ではなく「openjdk version」に切り替わっているので失敗していた模様

というわけで、NetBackup 8.1.1/8.1.2などではOracle以外のJavaに切り替えることはできない模様です。