PowerVC 2.2.0 の導入

#### はじめに

11月10日に IBM Power 関連プロダクト (AIX 7.3 TL02 など) のいくつかのアップデート・リリースが行われました。

合わせて PowerVC 2.2 がリリースされていますので、導入確認を行いました。

下記の手順に沿ってインストールできるかを確認します。

https://qiita.com/c_u/items/41e87f5d0e0417c74395

<br>

* 結果:
  3つほどの rpm パッケージが事前導入のもののバージョンが合わず、PowerVC 提供のパッケージに手動でアップデートする必要がありましたが、他は問題なく導入できました。

<br> 


---

#### What's New 

<br> 

* マニュアル：[PowerVC for Private Cloud](https://www.ibm.com/docs/ja/powervc-cloud/2.2.0?topic=introduction-whats-new-in-powervc-private-cloud) に記載の新機能を抜粋します。

:::note info

新機能抜粋

・RHEL 8.8 および 9.2 への PowerVC のインストールのサポート
・ホスト・スタンバイ・モード・フィーチャー
・AIX® ゲスト・オペレーティング・システムの IPv6 サポート
・ボリュームを使用しない VM のデプロイ
・UI の機能拡張
　-　環境チェッカー・ツールの機能拡張
　-　同時ログイン・アラート・メッセージ
　-　ファブリック」ページの機能拡張
　-　PowerVC GUI セッション非アクティブ・タイムアウト機能の機能強化
:::

OpenStack バージョンも "Yoga" のままで 2.1.1 と変わっていません。

今回は劇的な変化はなさそうですが、新たなバージョンのリリースやNW、ストレージ関連アップデート、UIのアップデートがあるようです。


<br> 

---

#### 環境

・RHEL 8.6 ppc64le on Power10
　　リソース CPU 1 PU, 2 vCPU、Memory 32GB、Disk 50GB


RHEL 8.6 はまだ管理サーバーのサポートOSであり、唯一のLegacy Install のサポートバージョンです。

レガシー・インストールを確認します。

<br> 

---

#### 導入確認


##### RHEL repository の設定


RHEL の iso ファイルから、Base、AppStream、Supplement リポジトリを準備します。

```
# dnf repolist

repo id                                                repo name
RHEL-BaseOS                                            RHEL86_BaseOS
RHEL-AppStream                                         RHEL86_AppStream
RHEL-supplement                                        RHEL86_Supplement
[root@test-pvc22 dnf]# mkdir /work/powervc/rpm_log
```


#### setup_opsmgr の実行

インストール・モジュールを解凍し、Ansible、Java の導入は行わず そのまま setup_opsmgr.sh を実行します。

```
# export LANG=C
# ./setup_opsmgr.sh
################################################################################
Starting the PowerVC:setup_prepnode 2.2.0 installation on:
2023-11-14T20:56:33-05:00
################################################################################

2023-11-14T20:56:41.59-05:00 [WARNING]:[] 2.1 or later opsmgr will install and set default python to 3.9 at system level
Would you like to proceed?yes　　　　　　　　　    ###< yes を入力
2023-11-14T20:57:17.35-05:00 [INFO]:[VALIDATION] BASE DIRECTORY : /opt/ibm/powervc-opsmgr
2023-11-14T20:57:17.35-05:00 [INFO]:[VALIDATION] INSTALL SCRIPT : /work/powervc-opsmgr-2.2.0/setup_opsmgr.sh
2023-11-14T20:57:17.35-05:00 [INFO]:[VALIDATION] LOG FILE : /opt/ibm/powervc-opsmgr/log/prep_node/prep_node_2023-11-14-2056.log
2023-11-14T20:57:17.36-05:00 [INFO]:[VALIDATION] OPERATING SYSTEM: Red Hat Enterprise Linux.
2023-11-14T20:57:17.36-05:00 [INFO]:[VALIDATION] User ID : root
2023-11-14T20:57:18.24-05:00 [INFO]:[VALIDATION] Java is missing on the VM. Installing Java for displaying Opsmgr License

LICENSE INFORMATION

The Programs listed below are licensed under the following
License Information terms and conditions in addition to the
Program license terms previously agreed to by Client and
IBM. If Client does not have previously agreed to license
terms in effect for the Program, the International Program
License Agreement (i125-3301-15) applies.

Program Name (Program Number):
 IBM PowerVC for Private Cloud 2.2.0 (5765-VC2)

The following standard terms apply to Licensee's use of the
Program.

Press Enter to continue viewing the license agreement, or
enter "1" to accept the agreement, "2" to decline it, "3"
to print it, "4" to read non-IBM terms, or "99" to go back
to the previous screen.
1　　　　　　　　　　　　　　　　　　　　    ### <= License agreement の accept。1 を入力。
2023-11-14T20:57:37.05-05:00 [INFO]:[VALIDATION] License accepted.
2023-11-14T20:57:37.05-05:00 [INFO]:[VALIDATION] Configuring Yum repository for PowerVC-Opsmgr...
2023-11-14T20:57:37.83-05:00 [INFO]:[VALIDATION] Configuring Yum repository for PowerVC-Opsmgr rhel8...
2023-11-14T20:57:47.82-05:00 [INFO]:[VALIDATION] Installing PowerVC Ops. Manager...
2023-11-14T20:57:57.39-05:00 [INFO]:[INSTALL_POWERVC_OPSMGR] POWERVC OPSMGR PACKAGES : sshpass python3-netaddr rsync python3-oslo-i18n python3-crudini python3-powervc-opsmgr
2023-11-14T20:58:25.28-05:00 [INFO]:[INSTALL_POWERVC_OPSMGR] PowerVC Opsmgr packages installed successfully.
2023-11-14T20:58:26.19-05:00 [INFO]:[INSTALL_POWERVC_OPSMGR] net-tools package already present.

################################################################################
PowerVC:setup_prepnode installation completed at 2023-11-14T20:58:26-05:00.
Refer to
/opt/ibm/powervc-opsmgr/log/prep_node/prep_node_2023-11-14-2056.log
for more details.
################################################################################
[root@test-pvc22 powervc-opsmgr-2.2.0]# echo $?
0

[root@test-pvc22 powervc-opsmgr-2.2.0]# which powervc-opsmgr
/usr/bin/powervc-opsmgr
```

-> 無事、powervc-opsmgr コマンドが導入されました。

<br> 

---

#### powervc-opsmgr 実行不具合


powervc-opsmgr コマンドの実行したところ、モジュールエラーで失敗します。


##### No module named 'ptyprocess'


```
[root@pvc22-test powervc-opsmgr-2.2.0]# powervc-opsmgr
Traceback (most recent call last):
  File "/usr/bin/powervc-opsmgr", line 14, in <module>
    from powervc_opsmgr.cmd.opsmgr import main
  File "/usr/lib/python3.9/site-packages/powervc_opsmgr/cmd/opsmgr.py", line 18, in <module>
    from powervc_opsmgr.utils import opsmgr_utils
  File "/usr/lib/python3.9/site-packages/powervc_opsmgr/utils/opsmgr_utils.py", line 10, in <module>
    import ansible_runner
  File "/usr/lib/python3.9/site-packages/ansible_runner/__init__.py", line 3, in <module>
    from .interface import run, run_async # noqa
  File "/usr/lib/python3.9/site-packages/ansible_runner/interface.py", line 24, in <module>
    from ansible_runner.runner_config import RunnerConfig
  File "/usr/lib/python3.9/site-packages/ansible_runner/runner_config.py", line 21, in <module>
    import pexpect
  File "/usr/lib/python3.9/site-packages/pexpect/__init__.py", line 75, in <module>
    from .pty_spawn import spawn, spawnu
  File "/usr/lib/python3.9/site-packages/pexpect/pty_spawn.py", line 10, in <module>
    import ptyprocess
ModuleNotFoundError: No module named 'ptyprocess'
```

* 'ptyprocess' をサーバー内で探すと、PowerVC 同梱モジュールに 新しいバージョン(0.6.0-12) があったため、こちらにアップデートします。


```
[root@pvc22-test packages]# find / -name *ptyprocess*
/usr/lib/python3.6/site-packages/ptyprocess
/usr/lib/python3.6/site-packages/ptyprocess/__pycache__/ptyprocess.cpython-36.opt-1.pyc
/usr/lib/python3.6/site-packages/ptyprocess/__pycache__/ptyprocess.cpython-36.pyc
/usr/lib/python3.6/site-packages/ptyprocess/ptyprocess.py
/usr/lib/python3.6/site-packages/ptyprocess-0.5.2-py3.6.egg-info
/usr/share/licenses/python3-ptyprocess
/usr/share/doc/python3-ptyprocess
/media/rhel86dvd/AppStream/Packages/python3-ptyprocess-0.5.2-4.el8.noarch.rpm
/opt/ibm/powervc-opsmgr/images/powervc-opsmgr/packages/noarch/python3-ptyprocess-0.6.0-12.el9.noarch.rpm
/work/powervc-opsmgr-2.2.0/packages/noarch/python3-ptyprocess-0.6.0-12.el9.noarch.rpm
```


* アップデートの実行

```
[root@pvc22-test noarch]# rpm -Uvh /work/powervc-opsmgr-2.2.0/packages/noarch/python3-ptyprocess-0.6.0-12.el9.noarch.rpm
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:python3-ptyprocess-0.6.0-12.el9  ################################# [ 50%]
Cleaning up / removing...
   2:python3-ptyprocess-0.5.2-4.el8   ################################# [100%]
```


こちらで "No module named 'ptyprocess'" は出力されなくなりました。

---

##### No module named 'psutil'


次に、powervc-opsmgr コマンドを確認すると、今度は psutil が存在しないとのこと。

```
[root@pvc22-test noarch]# powervc-opsmgr -h
Traceback (most recent call last):
  File "/usr/bin/powervc-opsmgr", line 14, in <module>
    from powervc_opsmgr.cmd.opsmgr import main
  File "/usr/lib/python3.9/site-packages/powervc_opsmgr/cmd/opsmgr.py", line 18, in <module>
    from powervc_opsmgr.utils import opsmgr_utils
  File "/usr/lib/python3.9/site-packages/powervc_opsmgr/utils/opsmgr_utils.py", line 10, in <module>
    import ansible_runner
  File "/usr/lib/python3.9/site-packages/ansible_runner/__init__.py", line 3, in <module>
    from .interface import run, run_async # noqa
  File "/usr/lib/python3.9/site-packages/ansible_runner/interface.py", line 25, in <module>
    from ansible_runner.runner import Runner
  File "/usr/lib/python3.9/site-packages/ansible_runner/runner.py", line 16, in <module>
    import psutil
ModuleNotFoundError: No module named 'psutil'
```

* サーバー内で psutil を探すと、同じく PowerVC 提供モジュールが存在しましたのでこちらをアップデート導入します。


```
[root@pvc22-test noarch]# find / -name *psutil*
/usr/lib64/python3.6/site-packages/psutil
/usr/lib64/python3.6/site-packages/psutil/_psutil_linux.cpython-36m-ppc64le-linux-gnu.so
/usr/lib64/python3.6/site-packages/psutil/_psutil_posix.cpython-36m-ppc64le-linux-gnu.so
/usr/lib64/python3.6/site-packages/psutil-5.4.3-py3.6.egg-info
/usr/share/licenses/python3-psutil
/usr/share/doc/python3-psutil
/media/rhel86dvd/AppStream/Packages/python3-psutil-5.4.3-11.el8.ppc64le.rpm
/media/rhel86dvd/AppStream/Packages/python38-psutil-5.6.4-4.module+el8.5.0+12031+10ce4870.ppc64le.rpm
/media/rhel86dvd/AppStream/Packages/python39-psutil-5.8.0-4.module+el8.4.0+9822+20bf1249.ppc64le.rpm
/opt/ibm/powervc-opsmgr/images/powervc-2.2.0/packages/osp/python3/ppc64le/python3-psutil-5.8.0-2.ibm.el8.ppc64le.rpm
/opt/ibm/powervc-opsmgr/images/powervc-opsmgr/packages/ppc64le/python3-psutil-5.8.0-2.ibm.el8.ppc64le.rpm
/work/powervc-opsmgr-2.2.0/packages/ppc64le/python3-psutil-5.8.0-2.ibm.el8.ppc64le.rpm
```

* "/python3-psutil-5.8.0-2.ibm.el8.ppc64le.rpm" を導入


```
[root@pvc22-test noarch]# rpm -Uvh /work/powervc-opsmgr-2.2.0/packages/ppc64le/python3-psutil-5.8.0-2.ibm.el8.ppc64le.rpm
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:python3-psutil-5.8.0-2.ibm.el8   ################################# [ 50%]
Cleaning up / removing...
   2:python3-psutil-5.4.3-11.el8      ################################# [100%]
   PPPP
```

---

##### No module named 'prettytable'

続いて powervc-opsmgr のコマンドを実行すると、'prettytable' がないとのこと。


```
[root@pvc22-test noarch]# powervc-opsmgr -h
ERROR: Module install has error No module named 'prettytable'
```

* サーバー内を探し、PowerVC 同梱モジュールに含まれているrpmを確認します。


```
[root@pvc22-test noarch]# find / -name *prettytable*
/opt/ibm/powervc-opsmgr/images/powervc-2.2.0/packages/osp/python3/noarch/python3-prettytable-0.7.2-20.ibm.el8.noarch.rpm
/opt/ibm/powervc-opsmgr/images/powervc-opsmgr/packages/noarch/python3-prettytable-0.7.2-20.ibm.el8.noarch.rpm
/work/powervc-opsmgr-2.2.0/packages/noarch/python3-prettytable-0.7.2-20.ibm.el8.noarch.rpm
```

* "python3-prettytable-0.7.2-20.ibm.el8.noarch.rpm" を導入

```
[root@pvc22-test noarch]# rpm -Uvh /work/powervc-opsmgr-2.2.0/packages/noarch/python3-prettytable-0.7.2-20.ibm.el8.noarch.rpm
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:python3-prettytable-0.7.2-20.ibm.################################# [ 50%]
Cleaning up / removing...
   2:python3-prettytable-0.7.2-14.el8 ################################# [100%]
```



* 確認


上記で3つのモジュールの手動導入対応で、ようやく powervc-opsmgr の実行が可能になりました。

```
[root@pvc22-test noarch]# powervc-opsmgr -h
usage: powervc-opsmgr [-h] {addnodes,apply-ifix,backup,config,install,inventory,replacenode,restore,resync_node,uninstall,update}

PowerVC Operations Manager CLI

powervc-opsmgr subcommands:
  {addnodes,apply-ifix,backup,config,install,inventory,replacenode,restore,resync_node,uninstall,update}

optional arguments:
  -h, --help            show this help message and exit

List of sub-commands available in powervc-opsmgr:
  addnodes                  Add nodes to existing PowerVC
  apply-ifix                Apply iFix against all/subset of nodes in management node cluster
  backup                    Backs up management plane configuration
  config                    Manage PowerVC Opsmgr configuration settings such as ip's, users etc
  install                   Installs PowerVC management plane
  inventory                 Captures and lists management node inventory details
  replacenode               Replacing a node from PowerVC Cluster.
  restore                   Restores configuration against a PowerVC management plane
  resync_node               Re-Sync of Conf files for management and compute plane
  uninstall                 Uninstall PowerVC management plane
  update                    Updates PowerVC management plane
```

導入を続けます。

----

PowerVC を導入するためのインベントリーを作成します。


以下の設定です。

・クラスター名 "pvc22"
・Configure Firewall : yes
・Legacy Installation : yes 


#### インベントリーの作成

```
[root@pvc22-test noarch]# powervc-opsmgr inventory -c pvc22
+--------------------------------------------------------------------------------+
|                               PowerVC Inventory                                |
+--------------------------------------------------------------------------------+
	Configure Firewall (y/n)            : y
	Legacy Installation (y/n)           : y
+--------------------------------------------------------------------------------+
   INFO:
     Legacy Method option
  	* Only one node will be part of PowerVC.
  	* No cluster will be installed during PowerVC installation.
     Sudo User
  	* Sudo user with same username and password across all nodes is required.
+--------------------------------------------------------------------------------+
   PowerVC Node(s) Information
     Node 1
	Enter IP/Hostname for Node 1        : xxx.xxx.xxx.xxx
	Enter Username for Node 1           : root
	Enter Password for Node 1           :
+--------------------------------------------------------------------------------+



+--------------------------------------------------------------------------------+
|                           PowerVC Inventory - pvc22                            |
+--------------------------------------------------------------------------------+
	Cluster Name              : pvc22
	Cluster ID                : a82c9d4a-ee8b-4aa0-b63d-78d74dd8eb1a
	Install Method            : legacy
	Edition                   : None
	Firewall Config           : True
	Login User                : root
	Virtual IP                : xxx.xxx.xxx.xxx
	Hosts                     : xxx.xxx.xxx.xxx
+--------------------------------------------------------------------------------+
|                    *** End of PowerVC Inventory - pvc22 ***                    |
+--------------------------------------------------------------------------------+
Establishing passwordless connection

PLAY [{{ playbook_task_names.configure_ssh_keys }}] ****************************

TASK [Gathering Facts] *********************************************************
Monday 20 November 2023  04:25:11 -0500 (0:00:00.047)       0:00:00.047 *******
[DEPRECATION WARNING]: Distribution rhel 8.6 on host xxx.xxx.xxx.xxx should use
/usr/libexec/platform-python, but is using /usr/bin/python for backward
compatibility with prior Ansible releases. A future Ansible release will
default to using the discovered platform python for this host. See https://docs
.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for
more information. This feature will be removed in version 2.12. Deprecation
warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
ok: [xxx.xxx.xxx.xxx]

TASK [command] *****************************************************************
Monday 20 November 2023  04:25:13 -0500 (0:00:02.430)       0:00:02.477 *******
changed: [xxx.xxx.xxx.xxx]

TASK [include_vars] ************************************************************
Monday 20 November 2023  04:25:14 -0500 (0:00:00.697)       0:00:03.175 *******
ok: [xxx.xxx.xxx.xxx]

TASK [include_vars] ************************************************************
Monday 20 November 2023  04:25:14 -0500 (0:00:00.016)       0:00:03.191 *******
ok: [xxx.xxx.xxx.xxx]

TASK [{{ pvc_utils_task_names.store_locale_variable }}] ************************
Monday 20 November 2023  04:25:14 -0500 (0:00:00.019)       0:00:03.211 *******
ok: [xxx.xxx.xxx.xxx]

TASK [include_vars] ************************************************************
Monday 20 November 2023  04:25:14 -0500 (0:00:00.018)       0:00:03.229 *******
skipping: [xxx.xxx.xxx.xxx]

TASK [{{ pvc_utils_task_names.error_message_for_utils_nls }}] ******************
Monday 20 November 2023  04:25:14 -0500 (0:00:00.013)       0:00:03.243 *******
skipping: [xxx.xxx.xxx.xxx]

TASK [include_vars] ************************************************************
Monday 20 November 2023  04:25:14 -0500 (0:00:00.013)       0:00:03.256 *******
ok: [xxx.xxx.xxx.xxx]

TASK [include_vars] ************************************************************
Monday 20 November 2023  04:25:14 -0500 (0:00:00.022)       0:00:03.279 *******
ok: [xxx.xxx.xxx.xxx]

TASK [pvc_sshkeys : include_vars] **********************************************
Monday 20 November 2023  04:25:14 -0500 (0:00:00.021)       0:00:03.300 *******
ok: [xxx.xxx.xxx.xxx]

TASK [{{ pvc_sshkeys_task_names.get_home_directory_for_ansible_user }}] ********
Monday 20 November 2023  04:25:14 -0500 (0:00:00.018)       0:00:03.318 *******
ok: [xxx.xxx.xxx.xxx]

TASK [{{ pvc_sshkeys_task_names.set_home_directory_for_ansible_user }}] ********
Monday 20 November 2023  04:25:14 -0500 (0:00:00.295)       0:00:03.614 *******
ok: [xxx.xxx.xxx.xxx]

TASK [pvc_sshkeys : Get the stat for ssh directory] ****************************
Monday 20 November 2023  04:25:14 -0500 (0:00:00.018)       0:00:03.633 *******
ok: [xxx.xxx.xxx.xxx]

TASK [pvc_sshkeys : Delete ssh is file or link] ********************************
Monday 20 November 2023  04:25:15 -0500 (0:00:00.246)       0:00:03.880 *******
skipping: [xxx.xxx.xxx.xxx]

TASK [pvc_sshkeys : Creates ssh directory /root/.ssh] **************************
Monday 20 November 2023  04:25:15 -0500 (0:00:00.016)       0:00:03.896 *******
ok: [xxx.xxx.xxx.xxx]

TASK [pvc_sshkeys : Generate ssh key pair] *************************************
Monday 20 November 2023  04:25:15 -0500 (0:00:00.250)       0:00:04.146 *******
changed: [xxx.xxx.xxx.xxx]

TASK [pvc_sshkeys : Fetch public key] ******************************************
Monday 20 November 2023  04:25:15 -0500 (0:00:00.291)       0:00:04.438 *******
ok: [xxx.xxx.xxx.xxx]

TASK [pvc_sshkeys : Copy the keys to the authorized_keys file] *****************
Monday 20 November 2023  04:25:15 -0500 (0:00:00.235)       0:00:04.673 *******
changed: [xxx.xxx.xxx.xxx] => (item=xxx.xxx.xxx.xxx)

TASK [pvc_sshkeys : Make all Hosts known to each other - update known_hosts files] ***
Monday 20 November 2023  04:25:16 -0500 (0:00:00.353)       0:00:05.026 *******
# xxx.xxx.xxx.xxx:22 SSH-2.0-OpenSSH_8.0
changed: [xxx.xxx.xxx.xxx] => (item=xxx.xxx.xxx.xxx)
# localhost:22 SSH-2.0-OpenSSH_8.0
changed: [xxx.xxx.xxx.xxx] => (item=localhost)
# 127.0.0.1:22 SSH-2.0-OpenSSH_8.0
changed: [xxx.xxx.xxx.xxx] => (item=127.0.0.1)

PLAY RECAP *********************************************************************
xxx.xxx.xxx.xxx             : ok=16   changed=4    unreachable=0    failed=0    skipped=3    rescued=0    ignored=0

Monday 20 November 2023  04:25:16 -0500 (0:00:00.662)       0:00:05.689 *******
===============================================================================
Gathering Facts --------------------------------------------------------- 2.43s
command ----------------------------------------------------------------- 0.70s
pvc_sshkeys : Make all Hosts known to each other - update known_hosts files --- 0.66s
pvc_sshkeys : Copy the keys to the authorized_keys file ----------------- 0.35s
{{ pvc_sshkeys_task_names.get_home_directory_for_ansible_user }} -------- 0.30s
pvc_sshkeys : Generate ssh key pair ------------------------------------- 0.29s
pvc_sshkeys : Creates ssh directory /root/.ssh -------------------------- 0.25s
pvc_sshkeys : Get the stat for ssh directory ---------------------------- 0.25s
pvc_sshkeys : Fetch public key ------------------------------------------ 0.24s
include_vars ------------------------------------------------------------ 0.02s
include_vars ------------------------------------------------------------ 0.02s
include_vars ------------------------------------------------------------ 0.02s
{{ pvc_sshkeys_task_names.set_home_directory_for_ansible_user }} -------- 0.02s
{{ pvc_utils_task_names.store_locale_variable }} ------------------------ 0.02s
pvc_sshkeys : include_vars ---------------------------------------------- 0.02s
pvc_sshkeys : Delete ssh is file or link -------------------------------- 0.02s
include_vars ------------------------------------------------------------ 0.02s
include_vars ------------------------------------------------------------ 0.01s
{{ pvc_utils_task_names.error_message_for_utils_nls }} ------------------ 0.01s
SSH Key exchange successfully completed at, 2023-11-20 04:25:17.,
 Refer to
 /opt/ibm/powervc-opsmgr/ansible/artifacts/powervc-opsmgr_pvc22_ssh_key_xchg_20231120_042510/stdout
 for more details.
Inventory file generated successfully at /opt/ibm/powervc-opsmgr/ansible/inventory/pvc22



+--------------------------------------------------------------------------------+
|                           PowerVC Inventory - pvc22                            |
+--------------------------------------------------------------------------------+
	Cluster Name              : pvc22
	Cluster ID                : a82c9d4a-ee8b-4aa0-b63d-78d74dd8eb1a
	Install Method            : legacy
	Edition                   : None
	Firewall Config           : True
	Login User                : root
	Virtual IP                : xxx.xxx.xxx.xxx
	Hosts                     : xxx.xxx.xxx.xxx
	Inventory Directory       : /opt/ibm/powervc-opsmgr/ansible/inventory/pvc22
+--------------------------------------------------------------------------------+
|                    *** End of PowerVC Inventory - pvc22 ***                    |
+--------------------------------------------------------------------------------+
[root@pvc22-test noarch]#
```



#### インストール実行


PowerVC 2.2 のインストールを実行します。

```


[root@pvc22-test noarch]# powervc-opsmgr install -c pvc22

PLAY [{{ playbook_task_names.precheck }}] **************************************
Monday 20 November 2023  04:25:34 -0500 (0:00:00.071)       0:00:00.071 *******
[DEPRECATION WARNING]: Distribution rhel 8.6 on host xxx.xxx.xxx.xxx should use
/usr/libexec/platform-python, but is using /usr/bin/python for backward
compatibility with prior Ansible releases. A future Ansible release will
default to using the discovered platform python for this host. See https://docs
.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for
more information. This feature will be removed in version 2.12. Deprecation
warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.

TASK [Gathering Facts] *********************************************************
[DEPRECATION WARNING]: Distribution rhel 8.6 on host xxx.xxx.xxx.xxx should use
/usr/libexec/platform-python, but is using /usr/bin/python for backward
compatibility with prior Ansible releases. A future Ansible release will
default to using the discovered platform python for this host. See https://docs
.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for
more information. This feature will be removed in version 2.12. Deprecation
warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
ok: [xxx.xxx.xxx.xxx]
Monday 20 November 2023  04:25:35 -0500 (0:00:01.115)       0:00:01.187 *******

TASK [command] *****************************************************************
changed: [xxx.xxx.xxx.xxx]
Monday 20 November 2023  04:25:35 -0500 (0:00:00.244)       0:00:01.431 *******

TASK [include_vars] ************************************************************
ok: [xxx.xxx.xxx.xxx]
Monday 20 November 2023  04:25:35 -0500 (0:00:00.016)       0:00:01.447 *******

TASK [include_vars] ************************************************************
ok: [xxx.xxx.xxx.xxx]
Monday 20 November 2023  04:25:35 -0500 (0:00:00.019)       0:00:01.467 *******

TASK [{{ pvc_utils_task_names.store_locale_variable }}] ************************
ok: [xxx.xxx.xxx.xxx]
Monday 20 November 2023  04:25:35 -0500 (0:00:00.018)       0:00:01.485 *******
Monday 20 November 2023  04:25:35 -0500 (0:00:00.014)       0:00:01.500 *******
Monday 20 November 2023  04:25:35 -0500 (0:00:00.012)       0:00:01.512 *******

TASK [include_vars] ************************************************************
ok: [xxx.xxx.xxx.xxx]
Monday 20 November 2023  04:25:35 -0500 (0:00:00.023)       0:00:01.535 *******

TASK [include_vars] ************************************************************
ok: [xxx.xxx.xxx.xxx]
Monday 20 November 2023  04:25:35 -0500 (0:00:00.022)       0:00:01.558 *******

TASK [pvc_precheck : include_vars] *********************************************
ok: [xxx.xxx.xxx.xxx]
Monday 20 November 2023  04:25:35 -0500 (0:00:00.019)       0:00:01.578 *******
Monday 20 November 2023  04:25:35 -0500 (0:00:00.015)       0:00:01.593 *******

TASK [pvc_precheck : package facts] ********************************************
ok: [xxx.xxx.xxx.xxx]
Monday 20 November 2023  04:25:37 -0500 (0:00:01.622)       0:00:03.215 *******
Monday 20 November 2023  04:25:37 -0500 (0:00:00.051)       0:00:03.266 *******
[WARNING]: Consider using the yum, dnf or zypper module rather than running
'rpm'.  If you need to use command because yum, dnf or zypper is insufficient
you can add 'warn: false' to this command task or set 'command_warnings=False'
in ansible.cfg to get rid of this message.

TASK [pvc_precheck : Precheck if ansible is powervc provided] ******************
[WARNING]: Consider using the yum, dnf or zypper module rather than running
'rpm'.  If you need to use command because yum, dnf or zypper is insufficient
you can add 'warn: false' to this command task or set 'command_warnings=False'
in ansible.cfg to get rid of this message.
changed: [xxx.xxx.xxx.xxx]
Monday 20 November 2023  04:25:37 -0500 (0:00:00.221)       0:00:03.488 *******
Monday 20 November 2023  04:25:37 -0500 (0:00:00.051)       0:00:03.539 *******
changed: [xxx.xxx.xxx.xxx]

TASK [pvc_precheck : Precheck if distro version] *******************************
changed: [xxx.xxx.xxx.xxx]




~ 途中省略 ~ 





Monday 20 November 2023  04:51:23 -0500 (0:00:00.055)       0:24:45.455 *******

TASK [pvc_main : synchronize state file] ***************************************
ok: [xxx.xxx.xxx.xxx -> xxx.xxx.xxx.xxx] => (item=xxx.xxx.xxx.xxx)
Monday 20 November 2023  04:51:23 -0500 (0:00:00.434)       0:24:45.890 *******

TASK [pvc_main : synchronize inventory] ****************************************
ok: [xxx.xxx.xxx.xxx -> xxx.xxx.xxx.xxx] => (item=xxx.xxx.xxx.xxx)
Monday 20 November 2023  04:51:26 -0500 (0:00:02.905)       0:24:48.796 *******
ok: [xxx.xxx.xxx.xxx] => {
    "msg": "Play completed successfully"
}

TASK [pvc_main : Success message for play] *************************************
ok: [xxx.xxx.xxx.xxx] => {
    "msg": "Play completed successfully"
}
Monday 20 November 2023  04:51:26 -0500 (0:00:00.033)       0:24:48.830 *******
xxx.xxx.xxx.xxx             : ok=1934 changed=839  unreachable=0    failed=0    skipped=2186 rescued=0    ignored=4

PLAY RECAP *********************************************************************
xxx.xxx.xxx.xxx             : ok=1934 changed=839  unreachable=0    failed=0    skipped=2186 rescued=0    ignored=4

Monday 20 November 2023  04:51:26 -0500 (0:00:00.033)       0:24:48.863 *******
===============================================================================
pvc_utils : Install selinux packages ----------------------------------- 44.08s
pvc_bootstrap_keystone : install keystone packages --------------------- 37.72s
pvc_ui : Install UI server and client packages ------------------------- 22.10s
pvc_galera_new : Install mariadb --------------------------------------- 21.27s
pvc_bootstrap_keystone : Create predefined roles ----------------------- 19.20s
pvc_reg_services : openstack create endpoints -------------------------- 18.21s
pvc_db_conn : Create DB credentials and grant permissions -------------- 17.39s
pvc_reverse_proxy : restart proxyserver -------------------------------- 17.36s
pvc_ansible : Unarchive tar images in remote node ---------------------- 16.15s
pvc_ui : restart ui server --------------------------------------------- 15.32s
pvc_galera_new : Wait for 15 seconds to fully stop galera service ------ 15.31s
pvc_main : Start powervc powervc-ui-server ----------------------------- 15.30s
pvc_utils : Install generic packages ----------------------------------- 15.21s
pvc_mongodb : Install MongoDB package ---------------------------------- 12.92s
pvc_rabbitmq : Install rabbitmq ----------------------------------------- 9.97s
pvc_ui : Install nodejs-14 ---------------------------------------------- 9.27s
pvc_firewalld : Open rabbitmq tcp ports on firewall --------------------- 9.18s
pvc_reg_services : openstack create endpoints --------------------------- 6.54s
pvc_reg_services : openstack create endpoints --------------------------- 6.53s
pvc_common_config : Ensure permissions are right for glance at /etc/ ---- 6.45s
IBM PowerVC installation successfully completed at 2023-11-20 04:51:26.
 Refer to
 /opt/ibm/powervc-opsmgr/ansible/artifacts/powervc-opsmgr_pvc22_install_20231120_042636/stdout
 for more details.
Access PowerVC UI at https://xxx.xxx.xxx.xxx
+--------------------------------------------------------------------------------+
|                        *** End of PowerVC Inventory ***                        |
+--------------------------------------------------------------------------------+

```

実行はおよそ 25分程度でした。 2.1.1 の導入時間より早いです。



cluster 関連のエラーが出ていましたが、Legacy install のため実行は ignore されていたようでした。


<br>

* version.properties 確認


```
[root@pvc22-test powervc]# cat /opt/ibm/powervc/version.properties
[2.2.0 Install]
name = IBM PowerVC
version = 2.2.0
build = 20231102-0930
oem = no
install-date = 2023-11-20
cloud_enabled = yes
cluster = pvc22
install_method = legacy
[root@pvc22-test powervc]#
```


---

#### GUI 確認


![スクリーンショット 2023-11-20 19.00.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/8280be40-674a-e499-5adf-b3858726d7e1.png)

ぱっと見は変わりませんが、右端にあった他へのリンクがログイン・ページからなくなっているようです。


![スクリーンショット 2023-11-20 19.01.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/3ef9b5e5-0386-2eb4-f1f4-94ef1fe1da49.png)

2.1.1 と見た目は同じです。


![スクリーンショット 2023-11-20 19.02.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/c0e217c7-71a0-79a0-397d-70c82321b79f.png)


環境チェックでは、対象の選択ができるようになっています。

<br>

---

#### おわりに


モジュールがないというエラーで少し止まりましたが、PowerVC 同梱モジュールで対応できました。

今後、機器を登録して確認できればと思います。


以上です。