インストール¶
動作環境・システム構成¶
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_ip
とglobal_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の内容を以下のように変更します。(eth0
をens2
に変更)
変更前
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_ip
とglobal_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の内容を以下のように変更します。(eth0
をens2
に変更)
変更前
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:8060
と mbs-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:8430
と ice-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
以上で標準構成の拡張は完了です。