7.4. インストールと展開

7.4.1. 概要

Ericom Shieldは、環境アーキテクチャと接続要件に応じて、さまざまな方法を使用してインストールできます。

インストール方法 説明 推奨 要件
スクリプトによるオンラインインストール 最新のShieldインフラストラクチャスクリプトとインストールファイルのリアルタイムダウンロード。 最新の安定したShieldバージョンを必要とするインターネット接続のある環境。 Ubuntu Server18.04とインターネット接続
OVA /レジストリを介したオフラインインストール ローカルレジストリからのShieldのインストール。 インターネットに接続できない環境。
Ubuntu Server18.04およびレジストリOVA。
注: レジストリサーバーは、Shieldサーバーにすることもできます。

高可用性の本番環境(推奨)の場合、マスター(クラスタ管理)マシンが3台必要です。

7.4.2. スクリプトによるオンラインインストール

推奨は、クラスタのデプロイと管理に使用する専用のLinuxマシンをセットアップすることです。このマシンは、Rancher Serverマシンと呼ばれます。このマシンには、すべての内部コンポーネント(KubectlやHelmなど)が含まれます。Rancher Serverは、別のマシンでも、マスターマシン(etcdとControl Planeを実行)の1つでもよい。システム内の他のすべてのノードは、デプロイメントタイプによって決まります。

ノードの準備

これらの要件に従って、希望する展開に応じた必要台数のマシンを準備します。Shieldシステム内のすべてのマシンが持っている必要があります。

  • 固定IPアドレス
  • 同じタイムゾーン(システム内の他のマシンと同じ)であること
  • 一意のホスト名

以下の手順でマシンを準備します。

  • DNSとネットワークの設定は、Ubuntuの勧告に従って行ってください(Name Resolutionで検索してください)。
  • すべてのマシンを同期させる必要があります。マシンのNTP(Network Time Protocol)とタイムゾーンを設定する。
sudo timedatectl set-ntp on
sudo systemctl restart systemd-timesyncd
timedatectl set-timezone <Continent>/<City>

マシンの名前をユニークな名前に変更します(クラスタを正しく作成するために必要です)。rootで、実行します。

hostnamectl set-hostname <NewUniqueHostname>

/etc/hosts ファイルで新しいホスト名を更新します。不足している場合は、追加してください。

ShieldシステムにSSLインスペクションを使用するUpstream Proxyが含まれている場合、マシンに一致する証明書をインストールします。usr/local/share/ca-certificate/cert-1.crt に移動して、cert-1.crt というファイルを作成し、実行してください。

sudo update-ca-certificate

マシンを再起動する。

システム内の各マシンについて、この手順を繰り返します。

Rancherサーバーを準備する

注意

Shieldのオンラインリポジトリには、有効なパスワードが必要です。続行する前に、Ericom Shield プロフェッショナルサービスに連絡して、有効なパスワードを入手してください。

LinuxのRancher Serverマシンで、このコマンドをコピーして実行します。

curl -so install-shield.sh https://raw.githubusercontent.com/EricomSoftwareLtd/Shield/master/Kube/scripts/install-shield.sh
chmod +x install-shield.sh
sudo ./install-shield.sh -l -p <PASSWORD>

このコマンドは、Rancherをすべてのラベルで実行し(-l)、最新のShieldリポジトリを使用します。

スクリプトが正常に終了すると、このようなリンク画面が表示されます。

../_images/install_es2111_07.jpg

スクリプトが完全に完了しない場合は、install-shield.sh スクリプトを再度実行してください。

sudo ./install-shield.sh -l -p <PASSWORD>

サーバーノードの準備

複数ノードのシステムを展開する場合、Shieldクラスタに参加する各サーバーノードは、クラスタを作成する前に準備する必要があります。Linux Rancher Serverマシンから実行します。

./shield-prepare-servers [-u <USER>] <ServerIPAddress(s)>

ユーザーは全ノードに存在するユーザで置き換えてください.ServerIPAddress(s)をシステムノードのIPアドレスのリスト(ServerIPAddress(s)を含む)で置き換えます. IPアドレスは、スペース(" ")で区切って複数入力することができます。

例)

./shield-prepare-servers -u ericom xx.xx.xx.xx yy.yy.yy.yy

Shieldのアップグレード(スプリットモード以外)

既存の非分割モードデプロイメントをアップグレードするには、以下を実行します。

  • home/ericom/ericomshield/config-backup/dailyからShield設定ファイル(Json)をバックアップする。

  • sudo ./stop.sh (Ubuntu 20で実行する場合 - sudo -E を使用) (これはすべての "sudo" コマンドに適用されるコメントです)

  • curl -s -o install-shield.sh https://raw. githubusercontent. com/EricomSoftwareLtd/Shield/master/Kube/scripts/install-shield.sh

    (オフラインでのアップグレードには、古い install-shield.sh スクリプト、またはレジストリマシンで利用できるスクリプトを使用します。)

  • sudo chmod +x install-shield.sh

  • sudo ./install-shield.sh -v <VERSION NUMMER> (例: Rel-22.08.934)

    Ubuntu 20.04 に新規インストールする場合、以下のコマンドを使用します。

    sudo -E ./install-shield.sh -l -p Ericom98765$ -v Rel-22.08.934

  • アップグレードが完了したら、すべてのサービスが開始されるまで数分待ちます。

注意

Shield を新しいバージョンにアップグレードする場合、Shield ノード上で shield-prepare-servers スクリプトを実行しないでください。このスクリプトは、クラスタに追加した新しいノードでのみ実行する必要があります。

注意

インストール後、ファイルプレビューに既知の問題があり、問題が発生した場合、関連するポッド(es-file-preview)を再起動する必要があります。

../_images/install_es2208_01.jpg

Shieldを展開する

Shieldの展開(続き)の手順を実行します。

7.4.3. OVA /レジストリを介したオフラインインストール

Shield OVA / Registryは、サーバーにShieldをインストールするため、およびインターネット接続がない場合に必要なすべてのサービスのコレクションです。

注意

Shield OVA / Registryは、準備された他のUbuntuサーバーにShieldをインストールするために使用することも、Shieldサーバー自体として使用することもできます。

準備されたUbuntuサーバーにShieldをインストールする場合、Shieldレジストリ自体(レジストリVMと呼ばれる)専用の単一のマシンが必要です。この特定のマシンの要件は次のとおりです。

  • 最小:1コア / 2GBメモリ
  • おすすめされた:2コア / 4GBメモリ

Shieldシステムを計画するときは、クラスターの展開と管理に使用される専用のLinuxマシンをセットアップすることをお勧めします。このマシンは、RancherServerマシンと呼ばれます。このマシンには、すべての内部コンポーネント(Kubectl&Helmなど)が含まれます。ランチャーサーバーは、別のマシンにすることも、マスターマシンの1つ(etcdとコントロールプレーンを実行する)に置くこともできます。システム内の他のすべてのノードは、デプロイメントタイプによって決定されます。

このウィジェットには以下のデータが含まれます:

  • システムの一部となるすべてのノードを準備します
  • ShieldレジストリVMを作成します
  • ランチャーサーバーを作成する
  • 他のノードをクラスターに追加します。

ノードの準備

Shieldシステムのすべてのマシンには、次のものが必要です。

  • 固定IPアドレス
  • 一意のホスト名
  • 同じタイムゾーン(システム内の他のマシンと同じ)

次の手順に従って、マシンを準備します。

ericom / ericomshieldを使用してログインします。マシンのIPを一意で静的になるように構成します。

/etc/systemd/network に移動し、20-wired.networkファイルを編集します。 DHCP = ipv4の行を変更して、特定のIPアドレス/サブネットを参照します。次に例を示します。

[マッチ]
名前= en *

[通信網]
アドレス= 10.1.10.12 / 24
ゲートウェイ= 10.1.10.1
DNS = 10.1.10.1
#オプション、倍数を使用できます
#DNS = 10.1.10.2
IPForward = ipv4

注意

DHCPサーバーが環境に存在する場合は、予約済み(静的)IPをレジストリVMにリースするように構成します。最初の起動時にレジストリVMに指定されたIPアドレスによってノードのMACアドレスを判別できるはずです。

すべてのマシンを同期する必要があります。マシンのNTP(ネットワークタイムプロトコル)とタイムゾーンを構成します。

sudo timedatectl set-ntp on
sudo systemctl restart systemd-timesyncd
timedatectl set-timezone <Continent> / <City>

マシンの名前を一意の名前に変更します(クラスターを正しく作成するために必要です)。ルートとして、次を実行します。

hostnamectl set-hostname <NewUniqueHostname>

/etc/hosts ファイルの新しいホスト名を更新します。欠落している場合は追加します。

ShieldシステムにSSL検査を使用するアップストリームプロキシが含まれる場合は、一致する証明書をマシンにインストールする必要があります。これを行うには、/usr/local/share/ca-certificate/cert-1.crt の下にファイル cert-1.crt を作成し、次のコマンドを実行します。

sudoupdate-ca-certificate

マシンを再起動します

システム内のマシンごとにこれらの手順を繰り返します。

必要に応じて、OSのサイズを増やします(VMwareのサイズと一致するように)。以下を実行します:

growpart /dev/sda1
resize2fs /dev/sda1

ShieldレジストリVMを準備します

Shield Registryをダウンロードし、VMを起動します。

https://shield-ova.s3.amazonaws.com/shield-kube-Rel-21.07.780.1.ova

ダウンロードしたファイルには、バージョン名が含まれています。それを保管してください。

さらに、このVMのIPアドレス(RegistryIPAddressと呼ばれる)を保持します。インストールプロセス中に両方の詳細が必要になります。

注意

レジストリVMは常に稼働している必要があります。Dockerオフラインレジストリはポート5000でアクセスできます

サーバーノードを準備する

注意

OVA /レジストリサーバーをShieldサーバー自体として使用する場合は、この手順をスキップできます。

Shieldクラスターに参加する各サーバーノードは、クラスターを作成する前に準備する必要があります。レジストリVMにログインして、以下を実行します。

./shield-prepare-servers -u <USER> --offline-mode --offline-registry <RegistryIPAddress:5000> <ServerIPAddress(s)>

USERを、すべてのノードに一致するユーザーに置き換えます。ServerIPAddress(s)を、システム内のすべてのノードのIPアドレスのリストに置き換えます。 スペース( 「」)で区切って、複数のIPアドレスを入力できます。

  • 例:
./shield-prepare-servers -u ericom --offline-mode --offline-registry vv.vv.vv.vv:5000 xx.xx.xx.xx yy.yy.yy.yy zz.zz.zz.zz

ランチャーサーバーを準備する

システム内のノードの1つにログインします。このノードはRancherサーバーになります。

レジストリVMから次のファイルを取得します(RegistryIPAddressを実際のIPに置き換えてください。ポート85が使用されていることに注意してください):

curl -s -o install-shield.sh http://<RegistryIPAddress>:85/ericomshield/install-shield.sh
chmod x install-shield.sh
sudo ./install-shield.sh -l -p <PASSWORD> -v <version-name> --registry <RegistryIPAddress:5000>

バージョン名の形式は次のとおりです。Rel-yy.mm.xxx(例:Rel-21.01.734)。 Shield Registryファイル(以前にダウンロードされたファイル)に記載されているバージョン名を使用します。

Shield を展開する

Shieldの展開(続き)の手順を実行します。

7.4.4. Shieldの展開(続き)

サーバーノードをクラスターマスターに接続する

Rancherを https://RancherServerIPAddress:8443 (Rancher ServerのIPアドレスを使用)開きます。

デフォルトのパスワードadminとericomshieldでログインします。

注意

スクリプトインストールを使用する場合、スクリプトが完了してから5~10分待ってからRancherのURLに移動してください。

クラスタに移動し、[編集]を選択します

../_images/install_es2111_01.jpg

ページの一番下までスクロールし、必要なチェックボックスをマークして(計画された展開に従って)、一番下のコマンドをコピーします(右側の[クリップボードにコピー]オプションを使用)。

../_images/install_es2111_02.jpg

コピーしたコマンドを各サーバーノードで実行し(SSH経由)、クラスターに参加させます。コピーしたコマンドが、参加するノード(Master/Worker)と一致していることを確認してください。クラスタメニューの[ノード]をクリックして、ノードの参加に従います。

../_images/install_es2111_08.jpg

クラスターが更新を開始します。

../_images/install_es2111_09.jpg

プロセスが終了するまで待ちます。ノードがクラスターに参加すると、ページの下部に緑色のメッセージが表示されます。クラスタが完了するまで、ノードごとにこのプロセスを繰り返します。

  • ノードラベルの設定

計画されている展開に従って、各マシンのノードラベルを設定します。

ランチャーで、[ノード]を選択し、編集するノードごとに、右側のメニューから[編集]オプションを選択します。

../_images/install_es2111_03.jpg

[ノードの編集]ダイアログで、[ラベルと注釈]セクションを展開し、目的のラベルをノードに追加します。ラベルごとに、値acceptを設定します。可能なラベルは次のとおりです。

../_images/install_es2111_04.jpg

ラベルは、手動で1つずつ追加することも、次のラベルの1つ以上の行にコピー/貼り付けを使用して追加することもできます。

shield-role/management=accept
shield-role/proxy=accept
shield-role/elk=accept
shield-role/farm-services=accept
shield-role/remote-browsers=accept

保存を押します。更新されたラベルがノードの詳細に表示されます。

../_images/install_es2111_05.jpg

この時点で、Rancherに組み込まれているクラスター監視ツールであるPrometheusとGrafanaを有効にすることをお勧めします。

監視ツールを有効にするには、[クラスター] | [クラスター]に移動します。ツール|モニタリング:

../_images/install_es2111_06.jpg

下にスクロールして有効にします。

注意

クラスタ監視ツールはいくつかのリソースを消費します。クラスタレベルで十分なリソースがある場合は、これらのツールを強くお勧めします。ただし、Shieldシステムの機能には必須ではありません。

システムを再起動して、追加されたノードと定義されたラベルを適用します

sudo ./stop.sh
sudo ./start.sh

これで、新しいクラスターの準備が整いました。

システムステータスの確認

ランチャーで、[ワークロード]でシステムが稼働しているかどうかを確認します。詳細については、クイックガイド|Shieldステータスの確認方法セクションをご覧ください。

7.4.5. スプリットモード

Shieldは、一部のコンポーネントをLANに、他のコンポーネントをDMZに配置するSplit Modeで展開されることがあります。

これが選択された場合、2つのクラスタが作成され、その場所(DMZ/LAN)ごとに定義されます。

../_images/install_es2208_02.jpg

管理クラスタ(クラスタ A)は LAN にあり、管理コンポーネントとプロキシコンポーネントが含まれます。ファームクラスタ(クラスタB)はDMZにあり、ELKとブラウザファームが含まれています。

この場合、2つのクラスタ間を接続し、一方のクラスタのコンポーネントをもう一方のクラスタに認識させ、通信することで、Shieldを正しく機能させるための設定が必要です。

管理者用コンフィギュレーション

Admin | Settings | Dynamic Nodes に移動し、Dynamic Nodes Farm の URL を更新して、30443 ポートを使用してファームを指すようにします。例:ericom-farm.mydomain.local:30443

Admin | Settings | Advanced に移動し、Websocket URL を ericom-farm.mydomain.local を指すように更新します。

異なるコンポーネントを設定する

クラスタA(ドメイン)の設定変更

注意

以下の説明には、YAMLファイルのいくつかの変更が含まれています。正しいインデントを維持する必要があり、スペースのみを使用することに注意してください。タブの使用はYAMLではサポートされておらず、エラーの原因となります。

Cluster Aが稼働しているマシンに行き、以下のyamlファイルを更新します。

custom-management.yaml と custom-proxy.yaml を編集します(ファイル内の説明に従ってください)。

Split-Mode: uncomment these lines and replace the IP (dashes separated) of the server running the Browser Farm
#   farmAddress: |
#     - name: FARMURL
#       value: https://ericom-farm.mydomain.local:30443
#     - name: FARMENABLED
#       value: 'true'

# When ELK is running on a different system (e.g. Split Mode), uncomment this
# line and replace the IP (enter the IP of the server running ELK)
#  elasticHost: "ericom-farm.mydomain.local:9200"# Split-Mode: uncomment these lines and replace the IP (dashes separated) of the server running the Browser Farm
#   farmAddress: |
#     - name: FARMURL
#       value: https://ericom-farm.mydomain.local:30443
#     - name: FARMENABLED
#       value: 'true'

# When ELK is running on a different system (e.g. Split Mode), uncomment this
# line and replace the IP (enter the IP of the server running ELK)
#  elasticHost: "ericom-farm.mydomain.local:9200"Detected apache

注意

ericom-farm.mydomain.local は、使用する特定のサーバー、または複数のサーバーを使用する場合は VIP を指す必要があります。

custom-common.yamlを編集し、ファイル内の指示に従って、Managementの関連ファイルをアンコメントします。

For Split Mode only on Management Uncomment these lines:
#  Replace the IP (enter the IP of the server running ELK)
#  logstash:
#    elasticHost: "ericom-farm.mydomain.local:9200"
#    logstashHost: ""
#    logstashPort: "30500"#  For Split Mode only on Management Uncomment these lines:
#  Replace the IP (enter the IP of the server running ELK)
#  logstash:
#    elasticHost: "ericom-farm.mydomain.local:9200"
#    logstashHost: ""
#    logstashPort: "30500"Detected apache

さらに、IPをCluster BのIPアドレス(DMZ内)に更新します。

クラスタB(DMZ)の設定変更

注意

以下の説明には、YAMLファイルのいくつかの変更が含まれています。正しいインデントを維持する必要があり、スペースのみを使用することに注意してください。タブの使用はYAMLではサポートされておらず、エラーの原因となります。

Cluster Bが動作しているマシンに移動し、custom-farm.yamlを編集します。ファイル内の指示に従って、以下の行をアンコメントします。

Split-Mode: uncomment these lines:
#  proxyless:
#    sslip:
#      enabled: true
#  extProxyIngress: true
#  extProxyIngressPort: 30128# Split-Mode: uncomment these lines:
#  proxyless:
#    sslip:
#      enabled: true
#  extProxyIngress: true
#  extProxyIngressPort: 30128Detected shell

custom-common.yamlを編集し、ファイル内の指示に従って、Farmの該当行をアンコメントします。

For Split Mode only on FARM - Uncomment these lines:
#  logstash:
#    consulvar: |
#      - name: CONSUL_HOST
#        valueFrom:
#          fieldRef:
#            fieldPath: status.hostIP
#      - name: CONSUL_PORT
#        value: '8500'
#  filebeat:
#    consulvar: |
#      - name: CONSUL_HOST
#        valueFrom:
#          fieldRef:
#            fieldPath: status.hostIP
#      - name: CONSUL_PORT
#        value: '8500'#  For Split Mode only on FARM - Uncomment these lines:
#  logstash:
#    consulvar: |
#      - name: CONSUL_HOST
#        valueFrom:
#          fieldRef:
#            fieldPath: status.hostIP
#      - name: CONSUL_PORT
#        value: '8500'
#  filebeat:
#    consulvar: |
#      - name: CONSUL_HOST
#        valueFrom:
#          fieldRef:
#            fieldPath: status.hostIP
#      - name: CONSUL_PORT
#        value: '8500'Detected shell

custom-values-elk.yamlファイルを編集し、コメントを外します。

On split mode Uncomment and change to the appropriate port
#    consulvar: |
#      - name: CONSUL_HOST
#        valueFrom:
#          fieldRef:
#            fieldPath: status.hostIP
#      - name: CONSUL_PORT
#        value: '8500'

#  logstash:
#    cloudProvider: "local"
#    service:
#      type: NodePort
#      ports:
#         - name: beats
#           protocol: TCP
#           nodePort: 30500
#           port: 5000
#    consulvar: |
#      - name: CONSUL_HOST
#        valueFrom:
#          fieldRef:
#            fieldPath: status.hostIP
#      - name: CONSUL_PORT
#        value: '8500'# On split mode Uncomment and change to the appropriate port
#    consulvar: |
#      - name: CONSUL_HOST
#        valueFrom:
#          fieldRef:
#            fieldPath: status.hostIP
#      - name: CONSUL_PORT
#        value: '8500'

#  logstash:
#    cloudProvider: "local"
#    service:
#      type: NodePort
#      ports:
#         - name: beats
#           protocol: TCP
#           nodePort: 30500
#           port: 5000
#    consulvar: |
#      - name: CONSUL_HOST
#        valueFrom:
#          fieldRef:
#            fieldPath: status.hostIP
#      - name: CONSUL_PORT
#        value: '8500'Detected shell

Portsの表から、Yes/Exclusiveと表示されているポートがすべて開かれていることを確認します。

Shieldのアップグレード(スプリットモード)

既存の非分割モードデプロイメントをアップグレードするには、以下を実行します。

注意

ステップ 3 と 10 は、ファームノードでのみ実行されます。

  1. home/ericom/ericomshield/config-backup/dailyからシールド設定ファイル(Json)をバックアップ。
  2. sudo ./stop.sh -n <必要なら関連する名前空間も> Ubuntu 20で実行している場合 - sudo -Eを使用 (これはすべての "sudo" コマンドに適用されるコメントです)。
  3. custom-farm.yaml (ericomshield ディレクトリ)を編集用に開き、avOnFarm: true という行を追加。この行のインデントが重要です。
  4. custom-values-elk.yamlの名前を変更し、バックアップ用とする。
  5. curl -s -o install-shield.sh https://raw.githubusercontent.com/EricomSoftwareLtd/Shield/master/Kube/scripts/install-shield.sh (オフラインでのアップグレードには、古い install-shield.sh スクリプトか、レジストリマシンで利用できるスクリプトを使用します)
  6. sudo chmod +x install-shield.sh
  7. sudo ./install-shield.sh -v <VERSION NUMMER> (例: Rel-22.08.934) Ubuntu 20.04 に新規インストールする場合、以下のコマンドを使用します。

オフラインモードの場合は以下を実行します。

  1. sudo rm /etc/iptables/rules.v4 を実行。
  2. OVAレジストリのマシンからinstall-shield.shをコピー。
  3. curl -so install-shield.sh http://<RegistryIPAddress>:85/ericomshield/install-shield.sh
  4. パーミッションの変更: chmod +x install-shield.sh
  5. sudo ./install-shield.sh -v <バージョン名> n <必要に応じて関連する名前空間を含む> –registry <RegistryIPAddress>:5000

例えば、sudo ./install-shield.sh -v Rel-22.08.934 -n shield-farm -n shield-elk –registry 10.0.1.102:5000 です。

以下のように設定を続けます。

  1. custom-values-elk.yaml を編集用に開き、分割モードの設定をアンコメントします。ファイル内に手動で変更した箇所があれば、手順4で行ったバックアップからコピーする
  2. sudo cp custom-farm.yaml custom-farm.yaml.orig
  3. custom-farm.yaml を開いて編集し、minio を true に設定します。
../_images/install_es2208_03.jpg
  1. sudo ./start.sh -n shield-elk shield-farm -f

    Ubuntu 20の場合 - sudo -Eを使用します。

  2. アップグレードが完了したら、すべてのサービスが開始されるまで数分待ちます。

注意

インストール後、ファイルプレビューに既知の問題があり、問題が発生した場合、関連するポッド(es-file-preview)を再起動する必要があります。


注意

スプリットモードで「CDR in Allow」を使用しないでください。この展開タイプではサポートされていません。


注意

Shield を新しいバージョンにアップグレードする場合、Shield ノード上で shield-prepare-servers スクリプトを実行しないでください。このスクリプトは、クラスタに追加した新しいノードでのみ実行する必要があります。


注意

Rancher では、インストール/アップグレード/再起動後に cdr-dispatcher と cdr-controller のポッドを再起動する必要があります。


注意

オフラインデプロイメントでは、アップグレード後に Shield-elk-management に既知の問題が発生します - 問題が発生した場合は、関連するポッドを再起動する必要があります。