SLES15SP3上へのPowerVC v2.1.1オフラインインストール

SLES15 SP3における、PowerVC v2.1.1のオフラインインストール手順をご紹介します

## パッケージの配置、SELinuxとJavaの設定
IBM Powerサーバー上に構築したSLES15SP3区画に、以下のppc64leパッケージをダウンロードしておきます
・selinux-policy-20220428-2.19.noarch.rpm 
・selinux-policy-devel-20220428-2.19.noarch.rpm
・selinux-policy-targeted-20220428-2.19.noarch.rpm
・sshpass-1.10-12.1.ppc64le.rpm
・rsync-3.2.7-144.1.ppc64le.rpm
・net-tools-deprecated-2.10-839.1.ppc64le.rpm 
・python3-simplejson-3.19.1-92.2.ppc64le.rpm
・xinetd-2.3.15.4-231.5.ppc64le.rpm
・mariadb-10.5.17-150300.3.21.1.ppc64le.rpm 
・mariadb-client-10.5.17-150300.3.21.1.ppc64le.rpm 
・mariadb-errormessages-10.5.17-150300.3.21.1.noarch.rpm

これらのパッケージを、以下のように配置します(mariaDB関連のものは後ほど使いますので、ここにはないですが問題ありません)
```
local-repos
├── SELinux-Legacy
│   ├── noarch
│       ├── selinux-policy-20220428-2.19.noarch.rpm
│       ├── selinux-policy-devel-20220428-2.19.noarch.rpm
│       ├── selinux-policy-targeted-20220428-2.19.noarch.rpm
├── network
│   ├── ppc64le
│       ├── rsync-3.2.7-144.1.ppc64le.rpm
│       ├── sshpass-1.10-12.1.ppc64le.rpm
├── network_utilities
    ├── ppc64le
        ├── net-tools-deprecated-2.10-839.1.ppc64le.rpm
        ├── python3-simplejson-3.19.1-92.2.ppc64le.rpm
        ├── xinetd-2.3.15.4-231.5.ppc64le.rpm
```

次に、zypperコマンドを用いて必要なリポジトリをenableします
```
# zypper mr -e  Basesystem-Module_15.3-0  Desktop-Applications-Module_15.3-0  Development-Tools-Module_15.3-0  Legacy-Module_15.3-0  Public-Cloud-Module_15.3-0 SLEHA15-SP3_15.3-0 SLES15-SP3-15.3-0   Server-Applications-Module_15.3-0 Web-Scripting-Module_15.3-0 
```
SELinuxをpermissiveモードに変更するため、まずは必要なパッケージをインストールします
```
# zypper in restorecond policycoreutils setools-console
# zypper in /root/local-repos/SELinux-Legacy/noarch/selinux-policy-*
```
/etc/default/grubに以下を追記します
```
security=selinux selinux=1
```
行った変更を反映します
```
# grub2-mkconfig -o /boot/grub2/grub.cfg
```
再起動し、設定がpermissiveになっていることを確認します
```
# reboot
# getenforce
```
以上でSElinuxの設定は完了です
続いて、Javaのインストールをして、バージョンを確認します
```
# zypper in java-11-openjdk
# java --version
```

## opsmgrのセットアップ
PowerVC_v2.1.1_for_SLES_Power_Linux_LE_042023_LCD8264205.tar.gz を区画上に配置しておきます
ファイルを解凍し、できたディレクトリの中に移動します
```
# tar zxvf PowerVC_v2.1.1_for_SLES_Power_Linux_LE_042023_LCD8264205.tar.gz
# cd powervc-opsmgr-2.1.1
# export LANG=C
```
network/network_utilitiesリポジトリを作成します
```
# vi /etc/zypp/repos.d/network.repo
[network]
name=Networking services and related tools (SLE_15)
enabled=1
module_hotfixes=true
baseurl=file:/root/local-repos/network/ppc64le/
gpgcheck=0

# vi /etc/zypp/repos.d/network_utilities.repo
[network_utilities]
name=Network Utilities (SLE_15_SP3)
enabled=1
module_hotfixes=true
baseurl=file:/root/local-repos/network_utilities/ppc64le/
gpgcheck=0
```
必要なパッケージをインストールします
```
# zypper ref
# zypper lr -u
# zypper in rsync-3.2.7-144.1
# zypper in net-tools-deprecated-2.10-839.1
```
opsmgrのセットアップをします
```
# ./setup_opsmgr.sh
```

## インベントリの作成、PreCheckの準備
```
# powervc-opsmgr inventory -c <任意のインベントリ名>
```
このコマンドを実行すると、インベントリの設定に必要な項目について、対話形式で聞かれます
導入する環境に合わせて答えてください
今回、この記事では以下の設定での手順をご紹介します
```
  PowerVC Install options                                                        
	Install Private cloud edition(y/n)  : y
	Configure Firewall (y/n)            : n
	Legacy Installation (y/n)           : n


   PowerVC Nodes                                                                  
	Enter the number of nodes           : 1   
 ```
 
:::note info
”Enter IP/Hostname for Node 1” で入力するhostnameは、FQDNで入力してください
:::
次のコマンドで、上記インベントリ設定が正しく設定されている確認します
```
# powervc-opsmgr inventory -l
```
設定が確認できたら、Public-Cloud module precheckの無効化を行います
以下のファイルのバックアップを取ったあと、44/45行目を以下のようにコメントアウトします
```
# cp -v  /opt/ibm/powervc-opsmgr/ansible/core/roles/pvc_precheck/tasks/check_prereqs_all.yml  /opt/ibm/powervc-opsmgr/ansible/core/roles/pvc_precheck/tasks/check_prereqs_all.yml.bak

# vi /opt/ibm/powervc-opsmgr/ansible/core/roles/pvc_precheck/tasks/check_prereqs_all.yml   
<前略>
 #- import_tasks: check_public_cloud_disabled.yml
 # when: (ansible_distribution|lower in ['sles','sles_sap']) and (ansible_facts['distribution_version'] == '15.3')
<後略>
```

## Precheckからインストールまで
Precheckを実行します
```
# powervc-opsmgr install -c <設定したインベントリ名> -p
```
precheckが通ったら、インストールを実行しますが、初回のインストールでは失敗します
＊失敗原因については確認中ですが、この手順で実施する必要があります
```
# powervc-opsmgr install -c <設定したインベントリ名>
```
インストールが失敗したのち、PowerVCローカルリポジトリが存在することを確認して、MariaDB関連パッケージのインストールをします
```
# zypper lr
# zypper in mariadb-10.5.17-150300.3.21.1.ppc64le.rpm mariadb-client-10.5.17-150300.3.21.1.ppc64le.rpm mariadb-errormessages-10.5.17-150300.3.21.1.noarch.rpm
View the notifications now? [y/n] (n): n
# zypper in mariadb mariadb-galera mariadb-tools libmariadbd-devel libmariadbd19 mariadb-client galera-4 galera-4-wsrep-provider python3-PyMySQ
```
mariadb-galeraがインストールできていることを確認します
```
# zypper search -s mariadb-galera 
```
もう一度インストールを行います
```
# powervc-opsmgr install -c <設定したインベントリ名>
…
Inventory sync is successful
Access PowerVC UI at https://xxxx
```
以上のような表示が出たらインストール完了です

## インストール後の確認と設定
インストールが正しくされたことを確認します
```
# powervc-opsmgr install -c <設定したインベントリ名> --validate-install
```
インストール完了出力に記載のURLからPowerVC GUI画面に入り、環境チェッカーを実行します
graphviz、krb5などのパッケージバージョンのエラーが出た場合は、以下のように該当のバージョンを書き換えます

upper_constrains.txt内、174行目、407行目をパッケージの導入バージョンに書き換えます

```
# cp -v /opt/ibm/powervc/ttv-validation/conf/upper_constrains.txt /opt/ibm/powervc/ttv-validation/conf/upper_constrains.txt.bak
# vi  /opt/ibm/powervc/ttv-validation/conf/upper_constrains.txt
    > graphviz===2.40.1
    > krb5===1.16.3
```
再度GUIの画面に入り、環境チェッカーを実行します


SLESへのPowerVCの導入のご紹介は以上となります

## 参考資料
Installing IBM Power Virtualization Center from media:
https://www.ibm.com/docs/en/powervc/2.1.1?topic=center-installing-power-virtualization-from-media