IBM CloudでMQを構築し、runmqscするまで

# IBM Cloud でMQを構築する

## 前提
- operatorは導入済み
- 基本的にはマニュアルベースですすめる
- なるべく画面操作で実行

## 補足
- QMGRのカスタマイズに関しては追記にて記述


## 準備
1.  ID に割り当てられている使用権キーを取得(灰色部分にキーが表示される)
    -  利用許可が与えられているソフトウェアに関連付けられた IBM ID とパスワードを使用して [MyIBM Container Software Library](https://myibm.ibm.com/products-services/containerlibrary) にログイン
    - 「使用権キー (Entitlement keys)」セクションで「キーのコピー (Copy key)」を選択して、使用権キーをクリップボードにコピー。
![image1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/6f96012e-31b6-0fa1-ed29-444756d5fca7.png)

2. キュー・マネージャーをデプロイするプロジェクトに、使用権キーを含むシークレットを作成します。
    - ナビゲーション・ペインで、「ワークロード (Workloads)」 > 「シークレット (Secret)」をクリックします。


![workload.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/85055a1b-a6a4-7c7e-a629-189a1ba63b9e.png)

-  「シークレット (Secrets)」ページが表示されます。
    - 「プロジェクト (Project)」ドロップダウンで、IBM MQ をインストールするプロジェクトを選択します。

![p.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/6672f762-a078-8635-26ae-b6be752633a7.png)

- 「作成」ボタンをクリックし、「イメージ・プル・シークレット (Image Pull Secret)」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/ac0efde3-bc7e-be3e-0bed-bbe6773469e4.png)



 - 「名前」フィールドに、ibm-entitlement-key を入力します。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/aa132988-6e4d-f63a-4735-104895187862.png)


- 「レジストリー・サーバー・アドレス (Registry Server Address)」フィールドに、cp.icr.io と入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/6ba9b566-edb0-42c3-5dd2-acbedfd89f73.png)

- 「ユーザー名 (Username)」フィールドに、cp と入力します。
- 「パスワード」 フィールドに、前の手順でコピーした使用権キーを入力します。
- 「E メール (Email)」フィールドに、使用権を持っているソフトウェアに関連付けられた IBM ID を入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/0c2c7360-d118-0afd-e99f-5c5cc4b6e4e8.png)


## 作成

- OpenShift Web コンソールで、ナビゲーション・ペインの「オペレーター (Operators)」 > 「インストール済みのオペレーター (Installed Operators)」をクリック
- 「IBM MQ」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/00285e9d-6db6-4b6c-94b8-09e5e37a467f.png)
- 「キュー・マネージャー (Queue Manager)」タブをクリック
- 「QueueManager の作成 (Create QueueManager)」ボタンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/c79fee57-f31b-1066-d921-7329a89a408b.png)
- 名前を指定(qmgr名ではない)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/77246cce-0265-78a0-bf69-ba189a30e495.png)

- ライセンスの選定
    -  developmentで使えるものを[ここ](https://www.ibm.com/docs/en/ibm-mq/9.2?topic=mqibmcomv1beta1-licensing-reference)から探す 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/2ea39865-4a44-a130-3a1d-9f8b51c125f9.png)

- QMGR名を指定
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/4aef5cfd-7901-d558-3e13-e796b04c3968.png)
- 作成を押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/bb87235e-af1b-a060-7c31-1cd4d863080a.png)
- pendingになるので完了するまで待つ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/2d3c6d01-a97c-10c1-8b8b-f28a31ac8b10.png)
- Runningになれば構築までは完了
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/109fd090-00b7-47a3-0cca-89d841dee240.png)


## QMGRの操作
1. oc login 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/c1e4ef05-3693-94e4-57e0-da577ce96b52.png)
  - ここのユーザー名を押し、ログインコマンドのコピーへ遷移
  - トークンを表示して、Log in with this tokenのコマンドをコピー
  - ターミナルからコマンドを発行
2. pod名取得

```
❯ oc get pods --selector app.kubernetes.io/name=ibm-mq,app.kubernetes.io/instance=satoqmgr
NAME                READY   STATUS    RESTARTS   AGE
satoqmgr-ibm-mq-0   1/1     Running   0          115m
```

3.runmqsc 

```
❯ oc exec -i satoqmgr-ibm-mq-0 -- runmqsc
5724-H72 (C) Copyright IBM Corp. 1994, 2021.
Starting MQSC for queue manager QM01.
dis ql(*)
       :
     1 : dis ql(*)
AMQ8409I: Display Queue details.
   QUEUE(AMQ.616673AD23199701)             TYPE(QLOCAL)
.
.
.

def ql(TESTQ)
     3 : def ql(TESTQ)
AMQ8006I: IBM MQ queue created.

``` 
- ここまでできればある程度のことはできるはず 


## 参考マニュアル
[OpenShift Web コンソールを使用したキュー・マネージャーのデプロイ](https://www.ibm.com/docs/ja/ibm-mq/9.2?topic=cluster-deploying-queue-manager-using-openshift-web-console)
[OpenShift Web コンソールを使用した IBM MQ 用の OpenShift プロジェクトの準備](https://www.ibm.com/docs/ja/ibm-mq/9.2?topic=pyopm-preparing-your-openshift-project-mq-using-openshift-web-console)

---
## 追記

### QMGRの作成時カスタマイズについて　
- MQSC ファイルと INI ファイルは、キュー・マネージャーのデプロイ時に提供することで、QMGRをカスタムできる
- MQSC と INI のデータは、1 つ以上の Kubernetes ConfigMap とシークレットで定義する必要がある
- キュー・マネージャーをデプロイする名前空間 (プロジェクト) 内に作成する




#### シークレット作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/5ce613fd-79e5-4611-39d0-7d12aee409c2.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/a2fbda7b-44c5-41e3-be31-24d18279b509.png)

- yamlを入力し作成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/51ba8117-9a52-4a2c-66ef-b4fd1531afde.png)

#### QMGR作成

- ここで先程のシークレットを選択



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/f995cd7b-4871-078e-dbaf-74ebac933b6d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/07db111d-d7f0-6479-5df8-1f86969b7655.png)

#### 確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2134532/a5488879-7f47-fdbb-460b-de86460f6b26.png)




## 参考マニュアル

[例: MQSC ファイルと INI ファイルの提供
](https://www.ibm.com/docs/ja/ibm-mq/9.2?topic=manager-example-supplying-mqsc-ini-files)