インストール

動作環境・システム構成

CAPはAnsibleを使用してインストールを行います。
Ansible Playbookを実行するサーバ(以降、Ansible実行サーバ)、およびCONNEXIVE Application Platformをインストールするサーバ(以降、環境構築先サーバ)の動作環境およびシステム構成については、「利用ガイド(導入編)」の「動作環境」および「システム構成」をご確認ください。

インストール手順

最小構成のインストール

以降は最小構成の場合のインストール手順です。網掛けの記載は実行するコマンドやファイルの内容を示しています。

Ansible実行サーバ上で以下の手順の操作を実施してください。

(注意1)
Ansible実行サーバは、環境構築先サーバのrootユーザへのSSHログインが可能である必要があります。「SSH公開鍵配置手順」を参考にしてください。

(注意2)
環境構築先サーバで以下のコマンドを実行し、下記のCAPインストールに必要なロケールが含まれているかを確認します。下記のロケールが無い場合はインストール実行前に追加してください。
$ locale -a

CAPインストールに必要なロケール

  • ja_JP.utf8
  • en_US.utf8

(注意3)
環境構築先サーバのSELinuxの状態がEnforcingの場合、Playbook実行によりPermissiveに変更されます。 EDM向けにCAPをインストールする場合、環境構築先サーバのSELinuxの状態がEnforcingの場合はCAPをインストールすることができません。Playbook実行前にPermissiveまたはDisabledに設定してからPlaybookを実行する必要があります。

(注意4)
環境構築先サーバにFirewalldがインストールされている場合、Playbook実行によりFirewalldにポート設定が追加されます。
必要に応じて事前にFirewalldのインストールを行ってください。

(注意5)
環境構築先サーバのOSがRHEL8の場合、事前に以下のコマンドを実行してサーバを再起動してからPlaybook実行を行ってください。
$ sudo dnf update

1. connexive_ap_playbook.tar.gzをAnsible実行サーバの任意のディレクトリに配置して展開します。

$ tar -xzvf connexive_ap_playbook.tar.gz

2. 展開されたreleaseディレクトリに移動します。

$ cd release/

3. viなどのエディタを使用して「inventory_all-in-oneファイル」を編集します。

$ vi inventory_all-in-one

[allin1]グループの対象IPアドレスを環境構築先サーバのIPアドレスに書き換えてファイルを上書き保存します。また、テナント名を指定する際は以下のTENANT_NAMEの値を変更してください。
CAP V1やIoTコアサービスと同じパラメータでの構築を行う場合は、iot_core_compatibility_modeの値をtrueに変更してください。

[allin1]
<環境構築先サーバのIPアドレス>

[all:vars]
TENANT_NAME=tenant1
menu_type=allin1
iot_core_compatibility_mode=false
4. DB、管理用Web画面への初期接続パスワードを変更するために以下のファイルを編集します。

$ vi authentication_vars.yml

authentication_vars.yml中の各パスワードを変更します。
CAP(EE)の場合以下のパスワードを変更してください。

# mongo
mongo_password_admin: ********    # MongoDBの管理者パスワード
mongo_password: ********          # MongoDBの一般ユーザのパスワード
mongo_password_tenant: ********   # MongoDBのテナント固有ユーザのパスワード
mongo_password_ui: ********       # EEP管理画面が利用する内部ユーザのパスワード

# EEP
management_password: ********     # EEP管理画面へのログインパスワード

# Nebula
baas_password_admin: ********     # モバイルバックエンド基盤の管理者パスワード
baas_password_developer: ******** # モバイルバックエンド基盤の開発者ユーザのパスワード

CAP(BC)の場合は、上記に加え、以下も変更してください。

# munin
munin:
  password: ********              # Munin 管理画面へのログインパスワード

# rabbitmq
rabbitmq_guest_password: ******** # RabbitMQ 管理画面用のパスワード
rabbitmq_password: ********       # 各コンポーネントからRabbitMQ に接続する際のパスワード

# PostgreSQL
postgres_admin_password: ******** # 管理者ユーザのパスワード
postgres_password: ********       # 一般ユーザのパスワード
4.1. Amazon Web Services (AWS)に構築する場合の追加手順

AWS上に構築する場合、以下のファイルを編集します。
$ vi group_vars/all.yml

global_cloud_nameという変数の値を"AWS"に書き換えてファイルを上書き保存します。

---
# Define global variables
# select cloud name. AWS or NECCI or None
global_cloud_name: AWS
4.2. NEC Cloud IaaS (NECCI)に構築する場合の追加手順

NECCI上の環境はDNSサーバによる名前解決が設定されていないため、環境構築先サーバの以下のファイルを編集します。
$ sudo vi /etc/resolv.conf

設定するDNSサーバのアドレスはNECCIのドキュメントを参照してください。
また、以下のファイルを編集します。
$ vi group_vars/all.yml

global_cloud_nameという変数の値を"NECCI"に書き換えてファイルを上書き保存します。

---
# Define global variables
# select cloud name. AWS or NECCI or None
global_cloud_name: NECCI
5. 環境構築先サーバのNIC名に応じて設定ファイルを編集します。

環境構築先サーバで使用するNICの名称が以下の表のデフォルト値と異なる場合、利用環境(AWS/NECCI/オンプレミス)の設定ファイルを編集してglobal_local_ipglobal_external_ipのデフォルト値の文字列を使用するNICの名称に変更してください。

利用環境 デフォルト値 設定ファイル
AWS eth0 0000_aws_cloud_vars.yml
NECCI ens192 0000_necci_cloud_vars.yml
オンプレミス default 0000_general_purpose_vars.yml

例えば環境構築先サーバがAWS上のサーバであり、ネットワークの名称が「ifcfg-eth0」ではなく「ifcfg-ens2」の場合、0000_aws_cloud_vars.ymlの内容を以下のように変更します。(eth0ens2に変更)

変更前

global_local_ip: "{{ ansible_eth0.ipv4.address }}"
global_external_ip: "{{ ansible_eth0.ipv4.address }}"

変更後

global_local_ip: "{{ ansible_ens2.ipv4.address }}"
global_external_ip: "{{ ansible_ens2.ipv4.address }}"
6. CAPで動作するアプリケーションのメモリ使用量を変更する場合、以下のファイルを編集します。

各アプリケーションのメモリ使用量を設定したい場合、以下のファイルを編集します。(デフォルト値は全て"512m")
$ vi group_vars/all.yml

# メモリ使用量設定
tomcat_8060_min_heap: "512m"
tomcat_8060_max_heap: "512m"
tomcat_8080_min_heap: "512m"
tomcat_8080_max_heap: "512m"
tomcat_8410_min_heap: "512m"
tomcat_8410_max_heap: "512m"
tomcat_8420_min_heap: "512m"
tomcat_8420_max_heap: "512m"
tomcat_8430_min_heap: "512m"
tomcat_8430_max_heap: "512m"
eep_iot_event_hub_min_heap: "512m"
eep_iot_event_hub_max_heap: "512m"
eep_mqtt_event_broker_min_heap: "512m"
eep_mqtt_event_broker_max_heap: "512m"
ice_message_router_min_heap: "512m"
ice_message_router_max_heap: "512m"
7. EDM向けにCAPをインストールする場合、以下の手順を実施します。
7.1. 環境構築先サーバのIPアドレスとポートを指定するために、以下のファイルを編集します。

$ vi group_vars/cap_edm.yml

backendapi_external_host: "localhost" # 環境構築先サーバのIPアドレス
backendapi_external_port: 80          # 環境構築先サーバのポート
7.2. 認証方式を指定するために、以下のファイルを編集します。

認証方式としてユーザ/パスワード認証またはクライアント証明書認証を使用する場合、以下のファイルを編集して認証方式を指定します。
$ vi group_vars/cap_edm.yml

group_vars/cap_edm.ymlのauthentication_typeの値を認証方式に応じて以下のように変更してください。authentication_typeのデフォルト値は"none"(認証無し)となっています。

  • ユーザ/パスワード認証を使用する場合、以下のようにauthentication_typeの値を"password"に変更してください。
authentication_type: "password"
  • クライアント証明書認証を使用する場合、以下のようにauthentication_typeの値を"certificate"に変更してください。
authentication_type: "certificate"

クライアント証明書認証を使用する場合、group_vars/cap_edm.yml で設定している以下の証明書ファイルをroles/MW/010313_nginx_install/filesディレクトリに配置してください。

  • server.crt (サーバ証明書)
  • server.key (秘密鍵)
  • client_ca.crt (CA証明書)
8. 以下のコマンドでPlaybookを実行します。

CAP(EE)としてインストールする場合、以下のコマンドでPlaybookを実行してください。
$ ansible-playbook -i inventory_all-in-one CAP_EE_allin1.yml

CAP(BC)としてインストールする場合、以下のコマンドでPlaybookを実行してください。
$ ansible-playbook -i inventory_all-in-one CAP_BC_allin1.yml

EDM向けにCAPをインストールする場合、以下のコマンドでPlaybookを実行してください。
$ ansible-playbook -i inventory_all-in-one CAP_EDM_allin1.yml

9. Playbookの実行終了後に表示されるPLAY RECAPを確認します。

すべての環境構築先サーバの実行結果が「failed=0」となっていれば、CONNEXIVE Application Platformのインストールは完了です。

(注意)
failed=0となっていない場合はPlaybookの実行に失敗しているため、Playbookの実行ログ(install.log)を確認して失敗の原因を調べて解決し、後述の「アンインストール」を参照してCONNEXIVE Application Platformを一度アンインストールし、Playbookを再実行します。

標準構成のインストール

以降は標準構成の場合のインストール手順です。網掛けの記載は実行するコマンドやファイルの内容を示しています。

Ansible実行サーバ上で以下の手順の操作を実施してください。

(注意1)
Ansible実行サーバは、環境構築先サーバのrootユーザへのSSHログインが可能である必要があります。「SSH公開鍵配置手順」を参考にしてください。

(注意2)
環境構築先サーバで以下のコマンドを実行し、下記のCAPインストールに必要なロケールが含まれているかを確認します。下記のロケールが無い場合はインストール実行前に追加してください。
$ locale -a

CAPインストールに必要なロケール

  • ja_JP.utf8
  • en_US.utf8

(注意3)
環境構築先サーバのSELinuxの状態がEnforcingの場合、Playbook実行によりPermissiveに変更されます。 EDM向けにCAPをインストールする場合、環境構築先サーバのSELinuxの状態がEnforcingの場合はCAPをインストールすることができません。Playbook実行前にPermissiveまたはDisabledに設定してからPlaybookを実行する必要があります。

(注意4)
環境構築先サーバにFirewalldがインストールされている場合、Playbook実行によりFirewalldにポート設定が追加されます。
必要に応じて事前にFirewalldのインストールを行ってください。

(注意5)
環境構築先サーバのOSがRHEL8の場合、事前に以下のコマンドを実行してサーバを再起動してからPlaybook実行を行ってください。
$ sudo dnf update

1. connexive_ap_playbook.tar.gzをAnsible実行サーバの任意のディレクトリに配置して展開します。

$ tar -xzvf connexive_ap_playbook.tar.gz

2. 展開されたreleaseディレクトリに移動します。

$ cd release/

3. viなどのエディタを使用して「inventory_model-S」ファイルを編集します。

$ vi inventory_model-S

[IFServer]グループ、[APServer]グループ、[DBServer]グループの対象IPアドレスをそれぞれ環境構築先IFサーバ、環境構築先APサーバ、環境構築先DBサーバのIPアドレスに書き換えてファイルを上書き保存します。
また、テナント名を指定する際は以下のTENANT_NAMEの値を変更してください。CAP V1やIoTコアサービスと同じパラメータでの構築を行う場合は、iot_core_compatibility_modeの値をtrueに変更してください。

[IFServer]
<環境構築先IFサーバのIPアドレス>

[APServer]
<環境構築先APサーバのIPアドレス>

[DBServer]
<環境構築先DBサーバのIPアドレス>

[all:vars]
TENANT_NAME=tenant1
menu_type=model-S
iot_core_compatibility_mode=false
4. DB、管理用Web画面への初期接続パスワードを変更するために以下のファイルを編集します。

$ vi authentication_vars.yml

authentication_vars.yml中の各パスワードを変更します。
CAP(EE)の場合以下を変更してください。

#mongo
mongo_password_admin: ********    # MongoDB の管理者パスワード
mongo_password: ********          # MongoDB の一般ユーザのパスワード
mongo_password_tenant: ********   # MongoDB のテナント固有ユーザのパスワード
mongo_password_ui: ********       # EEP 管理画面が利用する内部ユーザのパスワード

# EEP
management_password: ********     # EEP 管理画面へのログインパスワード

# Nebula
baas_password_admin: ********     # モバイルバックエンド基盤の管理者パスワード
baas_password_developer: ******** # モバイルバックエンド基盤の開発者ユーザのパスワード

CAP(BC)の場合は、上記に加え、以下も変更してください。

# munin
munin:
  password: ********              # Munin 管理画面へのログインパスワード

# rabbitmq
rabbitmq_guest_password: ******** # RabbitMQ 管理画面用のパスワード
rabbitmq_password: ********       # 各コンポーネントからRabbitMQ に接続する際のパスワード

# PostgreSQL
postgres_admin_password: ******** # 管理者ユーザのパスワード
postgres_password: ********       # 一般ユーザのパスワード
4.1. Amazon Web Services (AWS)に構築する場合の追加手順

AWS上に構築する場合、以下のファイルを編集します。
$ vi group_vars/all.yml

global_cloud_nameという変数の値を"AWS"に書き換えてファイルを上書き保存します。

---
# Define global variables
# select cloud name. AWS or NECCI or None
global_cloud_name: AWS
4.2. NEC Cloud IaaS (NECCI)に構築する場合の追加手順

NECCI上の環境はDNSサーバによる名前解決が設定されていないため、環境構築先サーバの以下のファイルを編集します。
$ sudo vi /etc/resolv.conf

設定するDNSサーバのアドレスはNECCIのドキュメントを参照してください。
また、以下のファイルを編集します。
$ vi group_vars/all.yml

global_cloud_nameという変数の値を"NECCI"に書き換えてファイルを上書き保存します。

---
# Define global variables
# select cloud name. AWS or NECCI or None
global_cloud_name: NECCI
5. 環境構築先サーバのNIC名に応じて設定ファイルを編集します。

環境構築先サーバで使用するNICの名称が以下の表のデフォルト値と異なる場合、利用環境(AWS/NECCI/オンプレミス)の設定ファイルを編集してglobal_local_ipglobal_external_ipのデフォルト値の文字列を使用するNICの名称に変更してください。

利用環境 デフォルト値 設定ファイル
AWS eth0 0000_aws_cloud_vars.yml
NECCI ens192 0000_necci_cloud_vars.yml
オンプレミス default 0000_general_purpose_vars.yml

例えば環境構築先サーバがAWS上のサーバであり、ネットワークの名称が「ifcfg-eth0」ではなく「ifcfg-ens2」の場合、0000_aws_cloud_vars.ymlの内容を以下のように変更します。(eth0ens2に変更)

変更前

global_local_ip: "{{ ansible_eth0.ipv4.address }}"
global_external_ip: "{{ ansible_eth0.ipv4.address }}"

変更後

global_local_ip: "{{ ansible_ens2.ipv4.address }}"
global_external_ip: "{{ ansible_ens2.ipv4.address }}"
6. CAPで動作するアプリケーションのメモリ使用量を変更する場合、以下のファイルを編集します。

各アプリケーションのメモリ使用量を設定したい場合、以下のファイルを編集します。(デフォルト値は全て"512m")
$ vi group_vars/all.yml

# メモリ使用量設定
tomcat_8060_min_heap: "512m"
tomcat_8060_max_heap: "512m"
tomcat_8080_min_heap: "512m"
tomcat_8080_max_heap: "512m"
tomcat_8410_min_heap: "512m"
tomcat_8410_max_heap: "512m"
tomcat_8420_min_heap: "512m"
tomcat_8420_max_heap: "512m"
tomcat_8430_min_heap: "512m"
tomcat_8430_max_heap: "512m"
eep_iot_event_hub_min_heap: "512m"
eep_iot_event_hub_max_heap: "512m"
eep_mqtt_event_broker_min_heap: "512m"
eep_mqtt_event_broker_max_heap: "512m"
ice_message_router_min_heap: "512m"
ice_message_router_max_heap: "512m"
7. EDM向けにCAPをインストールする場合、以下の手順を実施します。
7.1. 環境構築先IFサーバのIPアドレスとポートを指定するために、以下のファイルを編集します。

$ vi group_vars/cap_edm.yml

backendapi_external_host: "localhost" # 環境構築先IFサーバのIPアドレス
backendapi_external_port: 80          # 環境構築先IFサーバのポート
7.2. 認証方式を指定するために、以下のファイルを編集します。

認証方式としてユーザ/パスワード認証またはクライアント証明書認証を使用する場合、以下のファイルを編集して認証方式を指定します。
$ vi group_vars/cap_edm.yml

group_vars/cap_edm.ymlのauthentication_typeの値を認証方式に応じて以下のように変更してください。authentication_typeのデフォルト値は"none"(認証無し)となっています。

  • ユーザ/パスワード認証を使用する場合、以下のようにauthentication_typeの値を"password"に変更してください。
authentication_type: "password"
  • クライアント証明書認証を使用する場合、以下のようにauthentication_typeの値を"certificate"に変更してください。
authentication_type: "certificate"

クライアント証明書認証を使用する場合、group_vars/cap_edm.yml で設定している以下の証明書ファイルをroles/MW/010313_nginx_install/filesディレクトリに配置してください。

  • server.crt (サーバ証明書)
  • server.key (秘密鍵)
  • client_ca.crt (CA証明書)
8. 以下のコマンドでPlaybookを実行します。

CAP(EE)としてインストールする場合、以下のコマンドでPlaybookを実行してください。
$ ansible-playbook -i inventory_model-S CAP_EE_model-S.yml

CAP(BC)としてインストールする場合、以下のコマンドでPlaybookを実行してください。
$ ansible-playbook -i inventory_model-S CAP_BC_model-S.yml

EDM向けにCAPをインストールする場合、以下のコマンドでPlaybookを実行してください。
$ ansible-playbook -i inventory_model-S CAP_EDM_model-S.yml

9. Playbookの実行終了後に表示されるPLAY RECAPを確認します。

すべての環境構築先サーバの実行結果が「failed=0」となっていれば、CONNEXIVE Application Platformのインストールは完了です。

(注意)
failed=0となっていない場合はPlaybookの実行に失敗しているため、Playbookの実行ログ(install.log)を確認して失敗の原因を調べて解決し、後述の「アンインストール手順」を参照してCONNEXIVE Application Platformを一度アンインストールし、Playbookを再実行します。

標準構成の拡張手順

以降は、上記「標準構成のインストール」でCONNEXIVE Application Platformの環境を構築した後、APサーバを2台追加する手順です。網掛けの記載は実行するコマンドを示しています。

Ansible実行サーバ上で以下の手順の操作を実施してください。

(注意)
Ansible実行サーバは、環境構築先サーバのrootユーザ、またはsudoコマンドが許可されたユーザへのSSHログインが可能である必要があります。

1. 上記「標準構成のインストール」の手順1の操作で展開されたreleaseディレクトリに移動します。

$ cd release/

2. viなどのエディタを使用して「inventory_model-S」ファイルを編集します。

$ vi inventory_model-S

[APServer]グループに追加の環境構築先APサーバ2台のIPアドレスを追記してファイルを上書き保存します。このとき、「標準構成のインストール」で構築したIFサーバ、APサーバ、DBサーバのIPアドレスは削除せずに残しておきます。

[IFServer]
<環境構築先IF サーバのIP アドレス(構築済み)>

[APServer]
<環境構築先AP サーバのIP アドレス(構築済み)>
<環境構築先AP サーバのIP アドレス>
<環境構築先AP サーバのIP アドレス>

[DBServer]
<環境構築先サーバDB のIP アドレス(構築済み)>

[all:vars]
TENANT_NAME=tenant1
menu_type=model-S
iot_core_compatibility_mode=false
3. 以下のコマンドでPlaybookを実行します。

CAP(EE)としてインストールする場合、以下のコマンドでPlaybookを実行してください。
$ ansible-playbook -i inventory_model-S CAP_EE_model-S.yml

CAP(BC)としてインストールする場合、以下のコマンドでPlaybookを実行してください。
$ ansible-playbook -i inventory_model-S CAP_BC_model-S.yml

4. Playbookの実行終了後に表示されるPLAY RECAPを確認します。

すべての環境構築先サーバの実行結果が「failed=0」となっていることを確認し、手順5に進んでください。

(注意)
failed=0となっていない場合はPlaybookの実行に失敗しているため、Playbookの実行ログ(install.log)を確認して失敗の原因を調べて解決し、後述の「アンインストール手順」を参照してCONNEXIVE Application Platformを一度アンインストールし、Playbookを再実行します。

5. すべてのAPサーバの下記サービスを停止してください。
# systemctl stop tomcat_8410
# systemctl stop eep-mqtt-event-broker
# systemctl stop eep-iot-event-hub

すべてのAPサーバのサービスの停止後、下記コマンドでサービスを再度起動します。

# systemctl start eep-iot-event-hub
# systemctl start eep-mqtt-event-broker
# systemctl start tomcat_8410
6. APサーバのうちいずれか1台で以下のコマンドを実行します。

$ /opt/nec/pf/eep/hub/bin/admin.sh add-baseline -n <ノードID> -t <テナント名>

なお、上記コマンドの<テナント名>および<ノードID>は、以下の値を使用してください。

  • <テナント名>:
    CONNEXIVE Application Platformのテナント名。既定では"tenant1"。 ansible実行時に用いられるinventoryファイル内、TENANT_NAME=<テナント名>の箇所で指定。

  • <ノードID>:
    コマンド /opt/nec/pf/eep/hub/bin/admin.sh list-nodes -t <テナント名> の実行結果に表示され、
    かつコマンド /opt/nec/pf/eep/hub/bin/admin.sh list-baseline -t <テナント名> の実行結果に含まれないノードのID

例として以下の結果の場合、8db7daf3-6a83-40e5-bf21-64c949849769 と dc492c1b-f81b-4353-bf73-6d542c346c51を<ノードID>に指定したadd-baselineを2回実行します。

# /opt/nec/pf/eep/hub/bin/admin.sh list-nodes -t tenant1
2d697b7b-7e8f-4e13-82a5-310d16c75fa5
8db7daf3-6a83-40e5-bf21-64c949849769
dc492c1b-f81b-4353-bf73-6d542c346c51

# /opt/nec/pf/eep/hub/bin/admin.sh list-baseline -t tenant1
2d697b7b-7e8f-4e13-82a5-310d16c75fa5

# /opt/nec/pf/eep/hub/bin/admin.sh add-baseline -t tenant1 -n 8db7daf3-6a83-40e5-bf21-64c949849769
# /opt/nec/pf/eep/hub/bin/admin.sh add-baseline -t tenant1 -n dc492c1b-f81b-4353-bf73-6d542c346c51
7. IFサーバ上で以下の操作を実施します。
7.1. viなどのエディタを使用して「/etc/nginx/conf.d/upstreams/apigw.conf」ファイルを編集します。

以下の通り mbs-api-2:8060mbs-api-3:8060 を追記してファイル上書き保存します。

upstream apigw {
    server mbs-api-1:8060;
    server mbs-api-2:8060;
    server mbs-api-3:8060;
}
7.2. viなどのエディタを使用して「/etc/nginx/conf.d/upstreams/backendapi.conf」ファイルを編集します。

以下の通り ice-backend-2:8430ice-backend-3:8430 を追記してファイル上書き保存します。

upstream backendapi_v1 {
    server ice-backend-1:8430;
    server ice-backend-2:8430;
    server ice-backend-3:8430;
}
7.3. nginxを再起動します。

$ systemctl restart nginx

以上で標準構成の拡張は完了です。