Helix Swarm管理者ガイド (2020.1)

ランタイム依存関係

Swarmのインストール、設定、展開を正しく行うには、以下の依存関係が必要になります

  • 対応のオペレーティングシステムプラットフォーム
  • mod_rewritemod_phpx (「x」は、7など、使用しているPHPのバージョン)が指定されたApache webサーバ。 PHPのサポート対象バージョンについては、「PHP」を参照してください。
  • 以下の拡張機能を持つPHPの対応バージョン:

    • iconv
    • JSON
    • Session
    • バージョン2019.1以降のP4PHP
    • php-mbstring (マルチバイト文字列用)
    • php-xml (RSSフィード用)

    • php-redis (Swarmキャッシュ用)

    • CentOS/RHEL: (php-redisのほかに必要):
      • CentOS/RHEL 6: PHP 7.0 redisとPHP 7.0 igbinary (Swarmキャッシュ用)
      • CentOS/RHEL 7: PHP 7.1 redisとPHP 7.1 igbinary (Swarmキャッシュ用)

    また、オプションの拡張機能であるImagickを使用すると、Swarmの機能が大幅に拡張されます(Imagickは、非Webセーフの画像を表示するための機能です)。

  • サポートされているHelix Coreサーバの展開環境と、Swarmをホストしているシステムからこの展開環境に接続する機能。

    注意

    Helixサーバの展開環境」とは、稼働しているp4dサーバ、プロキシサーバ、レプリカサーバ、エッジサーバ、またはコミットサーバのことを指しています。

  • curlまたはwget (Swarmワーカーの操作用)
  • サポートされているバージョンのPerl (Helix Coreサーバトリガとの統合用)
  • セキュリティ強化版Linux (SELinux) (インストールされている場合は、自動的に構成されます)

オプションの依存関係

  • LibreOffice: Officeタイプのドキュメントを表示する場合に必要です。 詳細については、「LibreOffice」を参照してください。
  • zip: コマンドラインアーカイブツール: ファイルとフォルダのzip形式のアーカイブをダウンロードする場合に必要です。 詳細については、「Zip」を参照してください。
  • Helix認証サービス SSO: Helix CoreサーバHelix認証サービス用に設定されている場合に、SSOでSwarmを認証することができます( Helix認証サービスSSOを参照)。
  • Helix SAML認証: Helix SAMLで構成されたHelix Coreサーバを使用して、Swarmの認証を実行することができます。 詳細については、「 Helix SAMLの認証」を参照してください。
  • Sendmail (またはこれと同等のもの): Swarmのメール通知を使用する場合に必要です。 詳細については、「 Swarmのメール通知」を参照してください。

サポートされているオペレーティングシステムプラットフォーム

SwarmにはバイナリバージョンのP4PHP (PHP用のPerforce拡張機能)が付属しているため、以下のオペレーティングシステムでSwarmを使用することができます。

  • glibc 2.11以降が付属しているLinux 2.6以降のIntel (x86_64)
  • Mac OS X 10.6以降(x86_64)

CentOS/RHEL 6の場合の推奨事項: /etc/php.iniファイルの[Pcre]セクションに記述されている以下のパラメータの値を次のように変更してください。 この変更により、非常に長いコメントも表示できるようになります。

  • pcre.backtrack_limit = 1000000
  • pcre.recursion_limit = 10000

自分でP4PHPを作成し、上記以外の実行時の依存関係が満たされている場合は、別のオペレーティングシステムでもSwarmを実行できる場合があります。 P4PHPを入手して作成する方法については、こちらを参照してください。

重要

P4PHPは、スレッド操作をサポートしていません。 ソースからP4PHPをコンパイルする場合は、コンパイル対象バージョンのPHPがスレッド化されていないことを確認してください。

Apache webサーバ

Swarmを使用するには、バージョン2.4以降のApache HTTP Serverが必要になります。

重要

CentOS/RHELのみ:

  • CentOS: centos-release-sclリポジトリを使用して、PHP 7.xとApache 2.4をインストールすることができます。詳細については、https://wiki.centos.org/AdditionalResources/Repositories/SCLを参照してください。 SCLリポジトリを使用しない場合でも、別のリポジトリを使用できます。

  • RHEL: rhel-server-rhscl-x-eus-rpmsリポジトリを有効にすると、PHP 7、Apache 2.4、ほとんどの必須PHP拡張機能にSwarmからアクセスできるようになります(リポジトリ名の「x」は、RHELのバージョン番号(6や7など)です)。 php7x-php-pecl-redis拡張機能、php7x-php-pecl-igbinary拡張機能、imagick拡張機能は、このRedHatリポジトリでは使用できません。別の場所で使用する必要があります。

  • Apache 2.4をSCLパッケージまたはRHSCLパッケージからインストールすると、Apacheの設定ファイルは、通常のインストール場所の/etcではなく/opt/rh/httpd24/root/etcにインストールされます。 つまり、通常のservicesystemctlapachectlコマンドを実行すると、正しくないサーバをコントロールすることになります。 Swarmが使用するApacheのバージョンを制御するには、以下のいずれかの操作を実行します。

    • CentOS/RHEL 6でSystem Vスクリプトを使用する場合: service httpd24-httpd restart
    • CentOS/RHEL 7でsystemdスクリプトを使用する場合: systemctl restart httpd24-httpd

    apachectlコマンドは引き続き存在しますが、/opt/rh/httpd24環境で実行する必要があります。 そのため、上記のいずれかのコマンドを代わりに使用することをお勧めします。

  • Apacheサーバの起動時にApache HTTPサーバのLinuxテストページが表示されないようにするには、/opt/rh/httpd24/root/etc/httpd/conf.d/ディレクトリのwelcome.confファイルの内容をコメント化します。

Swarmではまた、以下に示すApacheモジュールも必要になります。

  • PHPと相互に通信を行うためのmod_php (通常、PHPとともにインストールされます)
  • x」は、7など、使用しているPHPのバージョンです。 PHPのサポート対象バージョンについては、「PHP」を参照してください。

  • URL書き換えエンジンのmod_rewrite

    http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html

重要

サポートされているのはprefork MPMマルチプロセッシングモジュールの略称。Apache WebサーバのコンポーネントであるMPMは、ネットワークポートへのバインディング、要求の受信、要求を処理するための送信操作を実行します。のみです。 ワーカーやイベントのMPMを使用することはできません。P4PHPではスレッド操作がサポートされていないため、これらのMPMを使用すると問題が発生する可能性があります。

プリフォークMPMの詳細については、以下のリンクを参照してください。https://httpd.apache.org/docs/2.4/mod/prefork.html

PHP

SwarmではPHP 7.0、7.1、または7.2が必須です。

重要
  • P4PHPはスレッド操作をサポートしていないため、PHPはスレッド化されていない状態になっている必要があります。
  • CentOS: centos-release-sclリポジトリを使用して、PHP 7.xとApache 2.4をインストールすることができます。詳細については、https://wiki.centos.org/AdditionalResources/Repositories/SCLを参照してください。 SCLリポジトリを使用しない場合でも、別のリポジトリを使用できます。

  • RHEL: rhel-server-rhscl-x-eus-rpmsリポジトリを有効にすると、PHP 7、Apache 2.4、ほとんどの必須PHP拡張機能にSwarmからアクセスできるようになります(リポジトリ名の「x」は、RHELのバージョン番号(6や7など)です)。 php7x-php-pecl-redis拡張機能、php7x-php-pecl-igbinary拡張機能、imagick拡張機能は、このRedHatリポジトリでは使用できません。別の場所で使用する必要があります。

必須PHP拡張機能

Swarmを使用するには、以下に示すPHP拡張機能が必要になります。

ヒント

Swarmをパッケージからインストールする場合、これらのPHP拡張機能はすべて、すべてのプラットフォームで、依存関係として自動的にプルされます。

  • iconv (文字エンコーディングコンバータ)
    https://secure.php.net/iconv

    これはほとんどのPHPディストリビューションでデフォルトで有効になっています

  • JSON (JavaScript Object Notation)
    https://secure.php.net/json

    これは通常、ほとんどのPHPディストリビューションではデフォルトで有効になっていますが、最近のディストリビューションではオプションになっています

  • Session (セッション処理)

    これはほとんどのPHPディストリビューションでデフォルトで有効になっています

  • P4PHPのバージョン2019.1以降(Perforce PHP拡張機能)

    P4PHPの最新バージョンは、Swarmパッケージ、OVA、およびtarballのインストールに含まれます。

    注意

    Swarm パッケージ、OVA、tarballのインストール: SwarmがサポートするPHP 7の各バージョンには、それぞれ2つのパッケージのP4PHPが提供されています。 これらはp4-bin/bin.linux26x86_64ディレクトリにあります。

    • perforce-php7x.soはSSL 1.0.2を使用するシステムに対応しています。
    • perforce-php7x-ssl1.1.1.soはSSL 1.1.1(Ubuntu 18.04のデフォルト)を使用するシステムに対応しています。

    x」は、PHP 7のバージョンです。

    perforce.iniファイルがP4PHPの正しいバージョンを指しておらず、SSLが有効になったHelixサーバに接続している場合、以下のような動作になります。

    • Swarm Webページが読み込まれず、Connection Resetエラーが表示される。
    • Apacheのエラーログにundefined symbol: SSLeayというメッセージが記録される場合がある。

    Swarmをアップグレードする場合:

    • SwarmのパッケージまたはOVAの場合: P4PHPの最新バージョンは自動的にインストールされます。
    • Swarm tarballのインストール: 新しいSwarm tarball内で、P4PHPのバージョンを使用するようにSwarmを設定する必要があります。 Swarm tarballのアップグレードの手順の詳細については、「Swarm tarballのインストール環境のアップグレード」を参照してください。
  • php-xml (XML操作のためのDOM API。これがインストールされていない場合、Swarm RSSフィードは機能しません)

    多くのオペレーティングシステムではPHPに含まれています。 Swarmをパッケージ以外の方法でインストールする場合、CentOS/RHEL上では手動でインストールする必要があります

  • php-mbstring (マルチバイト文字列。これがインストールされていない場合、Swarm RSSフィードは機能しません)

    多くのオペレーティングシステムではPHPに含まれています。 Swarmをパッケージ以外の方法でインストールする場合、CentOS/RHEL上では手動でインストールする必要があります

  • php-redis (Redis用のPHP拡張機能。これがインストールされていない場合、Swarmキャッシュは機能しません)

    多くのオペレーティングシステムではPHPに含まれています。 Swarmをパッケージ以外の方法でインストールする場合、CentOS/RHEL上では手動でインストールする必要があります

  • CentOS: (php-redisのほかに必要):
    • CentOS 6: パッケージからSwarmをインストールしない場合は、以下に示す拡張機能を手動でインストールする必要があります。

      • sclo-php70-php-pecl-redis (Redis用のPHP拡張機能。これがインストールされていない場合、Swarmキャッシュは機能しません)
      • sclo-php70-php-pecl-igbinary (Redis用の置換PHPシリアライザ。これがインストールされていない場合、Swarmキャッシュは機能しません)
    • CentOS 7: パッケージからSwarmをインストールしない場合は、以下に示す拡張機能を手動でインストールする必要があります。

      • sclo-php71-php-pecl-redis (Redis用のPHP拡張機能。これがインストールされていない場合、Swarmキャッシュは機能しません)
      • sclo-php71-php-pecl-igbinary (Redis用の置換PHPシリアライザ。これがインストールされていない場合、Swarmキャッシュは機能しません)
  • RHEL: (php-redisのほかに必要):
    • RHEL 6: パッケージからSwarmをインストールしない場合は、以下に示す拡張機能を手動でインストールする必要があります。

      • php70-php-pecl-redis (Redis用のPHP拡張機能。これがインストールされていない場合、Swarmキャッシュは機能しません)
      • php70-php-pecl-igbinary (Redis用の置換PHPシリアライザ。これがインストールされていない場合、Swarmキャッシュは機能しません)
    • RHEL 7: パッケージからSwarmをインストールしない場合は、以下に示す拡張機能を手動でインストールする必要があります。

      • php71-php-pecl-redis (Redis用のPHP拡張機能。これがインストールされていない場合、Swarmキャッシュは機能しません)
      • php71-php-pecl-igbinary (Redis用の置換PHPシリアライザ。これがインストールされていない場合、Swarmキャッシュは機能しません)

推奨されるPHP拡張機能

以下に示すPHP拡張機能を使用すると、Swarmの機能が大幅に拡張されます。

ソースからPHPをビルドする(非推奨)

ソースからPHPをビルドする場合、以下の依存モジュールが必要になります。

  • openssl
  • mcrypt
  • zlib
  • gettext
  • curl
  • apxs (Apacheの拡張ツール)

PHPビルドにこれらのモジュールを含める方法について詳しくは、ソースPHPドキュメンテーションを参照してください。 通常、依存関係のロード元を定義する--with-xxxxオプションが存在します。

apxszlibopensslの例を以下に示します。

./configure --with-apxs2=<path_to_apxs> --with-zlib=<path_to_zlib_library> --with-openssl

Helix Coreサーバの要件

Swarmは、Helixサーバ (標準メンテナンスバージョン)のすべてのサポート対象バージョンで機能します。 このリリースのSwarmでサポートされているバージョンは、以下のとおりです。

  • 2018.2
  • 2019.1 (以下の注意事項を確認してください)
  • 注意

    Helixサーバ 2019.1には、ワークスペース内でストリーム仕様を編集するためのストリームのプライベート編集機能が導入されています。 Swarmのサポートレベルは、インストールされているHelixサーバ 2019.1のバージョンによって異なります。

    • バージョン1832527以前のHelixサーバ 2019.1の場合: ストリームのプライベート編集機能を使用して編集されたストリーム仕様が含まれているチェンジリストでのレビューをリクエストした場合、そのストリーム仕様はレビュー内に表示されません。 チェンジリスト内の他のファイルについては、レビュー内で正しく表示されます。
    • 1832527よりも新しいバージョンのHelixサーバ 2019.1の場合: ストリームのプライベート編集機能を使用して、ワークスペース内でストリーム仕様を編集することができます。編集後のストリーム仕様は、レビュー内に表示されます。

  • 2019.2
  • 2020.1
  • 注意

    バージョン2020.1以降のHelixサーバでは、Swarmストリーム仕様ファイルの編集と表示を行うための権限が変更されました。 SwarmユーザがSwarmでストリーム仕様ファイルの表示や編集を行うには、ディポ全体(//...)に対するadmin 権限が必要です。

https://www.perforce.com/downloads/helix-core-p4dからHelixサーバをダウンロードしてください。

重要

Swarmでは、P4AUTHを使用するように設定されているHelixサーバはサポートされていません。詳しくは、『Helix Coreサーバ管理者ガイド』の「集中認証サーバ(P4AUTH)」を参照してください。

SwarmHelixサーバ自動ユーザの要件

Helixサーバに対してSwarmを実行するには、admin権限以上の権限を持つSwarm用の自動ユーザをHelix Coreサーバで設定する必要があります。 このユーザは、既存のユーザでも、Swarmをサポートするために新しく作成されたユーザでもかまいません。

重要

HelixサーバMulti-Factor Authentication (MFA)用に構成されている場合、Swarmを実行するユーザアカウントでMFAを使用しないでください。

Helix Coreサーバの詳しい設定方法については、『Helix Coreサーバ管理者ガイド』の「サーバのインストールとアップブレード」を参照してください。

SwarmHelixサーバのインストールに関する考慮事項

SwarmHelixサーバをインストールする場合は、以下の点を考慮する必要があります。

  • 小規模なシステムの場合、同じマシン上でSwarmHelixサーバを稼働させることができます。
  • 大規模なシステムの場合は、個別のマシンでSwarmHelixサーバを使用することをお勧めします。 その場合、ネットワーク性能を最大限に高めるため、マシン同士を近くに配置することをお勧めします。
  • Helixサーバにインストールされたトリガは、Swarmとの通信を行います。 SwarmHelixサーバとのネットワークで大きな遅延が発生する場合、トリガのパフォーマンスが低下する可能性があります。

  • SwarmHelixサーバが稼働するマシンで、同じオペレーティングシステムを使用する必要はありません。 例えば、HelixサーバをWindowsサーバで使用し、SwarmをCentOSサーバで使用することができます。
  • 注意

    SwarmをWindowsマシンにインストールすることはできません。

トリガの依存関係

Swarmのインストールを完了するには、SwarmトリガをHelixサーバにインストールする必要があります。

Swarmトリガを使用するには、perl 5.08+が必要になります(以下のURLからダウンロードできます):
https://www.perl.org/get.html

Swarmは、Windowsプラットフォーム上のStrawberry Perlに対してテストされています。 以下に示すように、Perlの最小インストール要件に含まれていない必須のPerlモジュールが2つあります。

  • Swarmサーバを呼び出すには、HTTP::Tinyモジュールが必要になります。 このモジュールが存在しない場合、トリガは、コマンドラインCurlプログラムを使用します。 これは、Windows上のStrawberry Perlの標準モジュールです。CentOS 7、Ubuntu 16.04、Ubuntu 18.04に付属しているバージョンのPerlで、このモジュールをパッケージとして使用することができます。

  • SSLを使用するようにSwarmサーバが設定されていて、HTTP::Tinyモジュールが存在する場合は、IO::Socket::SSLモジュールが必要になります。 これは、Strawberry Perlに付属する標準モジュールで、Linuxで使用することができます。

    警告

    CentOS 6などでHTTP::Tiny モジュールを使用できない場合は、トリガでcurlを使用する必要があります。 トリガを機能させるには、このモジュールをインストールする必要があります。 このモジュールがCentOS 6にインストールされていない場合は、yum パッケージでyum install curlコマンドを使用して、このモジュールをインストールしてください。

Swarmトリガを使用する場合は、以下のPerlモジュールもインストールする必要があります。

  • Windows:
    • ブラウザとサーバ間でデータを交換するには、JSONが必要になります。JSONは、Strawberry Perlにデフォルトで組み込まれています。
  • Ubuntu:
    • ブラウザとサーバ間でデータを交換するには、JSONをインストールする必要があります。
    • JSON形式のデータを操作するには、libjson-perlをインストールする必要があります。
  • CentOS/RHEL:
    • ブラウザとサーバ間でデータを交換するには、JSONをインストールする必要があります。
    • JSON形式のデータを操作するには、perl-JSONをインストールする必要があります。

SwarmパッケージをP4Dと同じマシンにインストールする

P4Dと同じマシンにSwarmをパッケージからインストールする場合、トリガを使用するには、以下のPerlモジュールをインストールする必要があります。

  • Ubuntu:
    • perl 5.08以降
    • SSLを使用するようにSwarmサーバが設定されている場合は、libio-socket-ssl-perlが必要になります。
    • JSON形式のデータを操作するには、libjson-perlをインストールする必要があります。
  • CentOS/RHEL:
    • perl 5.08以降
    • SSLを使用するようにSwarmサーバが設定されている場合は、perl-IO-Socket-SSLが必要になります。
    • JSON形式のデータを操作するには、perl-JSONをインストールする必要があります。

ワーカーの依存関係

Swarmは、一時的なワーカーを使用して、Swarmキューを処理します。新しいワーカーは、繰り返しタスクによって定期的に生成されます。

新しいワーカーが定期的に生成されるように、次のいずれかをインストールします。

Swarmのワーカーの詳細については、「ワーカーを生成する繰り返しタスクをセットアップする」を参照してください。

Redisサーバ

Swarmでは、Redisを使用してキャッシュを管理する必要があります。 Swarmは、Helixサーバのデータをキャッシュすることにより、Swarmで実行される一般的な検索処理のパフォーマンスを改善し、Helixサーバに対する負荷を軽減します。

Redisは、Swarmパッケージに含まれています。また、OVAとTarballにも付属しています。

  • SwarmのパッケージまたはOVAの場合: Redisは自動的にSwarmマシンにインストールされ、Redisを使用するようにSwarmが自動的に設定されます。
  • Swarm Tarballの場合: Redisのインストール手順については、「Redisのインストールと設定」セクションを参照してください。

オプション:

自分専用のRedisサーバを使用する場合は、Redisサーバ接続用の構成可能変数をSwarmで編集する必要があります。 Redisサーバ接続の設定方法については、「自分専用のRedisサーバを使用する」を参照してください。

サポートされているWebブラウザ

Swarmを使用できるブラウザは以下のとおりです。

  • 安定している最新バージョンのApple Safari
  • 安定している最新バージョンのGoogle Chrome
  • 安定している最新バージョンのMozilla Firefox
  • 安定している最新バージョンのMicrosoft Edge
  • 安定している最新バージョンのMicrosoft Internet Explorer

古いビルド、開発およびベータ版のビルドを含む上記以外のブラウザでも動作する可能性がありますが、正式にはサポートされていません。

注意
  • Swarmを使用するには、WebブラウザでJavaScriptとクッキーを有効にする必要があります。
  • Swarmでは、モバイルWebブラウザはサポートされていません。

オプションの依存関係

LibreOffice

SwarmサーバにLibreOfficeがインストールされている場合は、SwarmでOfficeタイプのドキュメントをプレビュー表示することができます。 LibreOfficeをインストールする必要はありませんが、LibreOfficeがインストールされている場合は、Swarmによって自動的に検出されます。

LibreOfficeの詳細については、LibreOfficeを参照してください。

Zip

Swarmサーバにzipコマンドラインツールがインストールされている場合は、ZIP形式のアーカイブファイルとフォルダをダウンロードすることができます。

Zipツールのインストール方法と設定方法については、Zip形式のアーカイブファイルを参照してください。

Helix認証サービスSSO

HelixサーバHelix認証サービスを使用してSwarmでSSOをサポートするには、バージョン2019.1以降のHelixサーバが必要です。

Helix認証サービスを使用して認証処理を実行するようにSwarmを設定する方法については、シングルサインオンPHP構成を参照してください。

Helix SAMLの認証

Helixサーバを使用するHelix SAML認証をSwarmがサポートするには、Helixサーバのバージョン2018.2以降が必要です。

重要
  • Helix認証サービスは、Perforceの優先SSOソリューションです(Helix認証サービスを参照)。
  • SwarmHelix SAMLを使用する場合:
    • Helixサーババージョン2018.2以降が必要です。
    • Helix SAML用のHelixサーバトリガを作成します。 Helix SAML用のHelixサーバトリガの開発手順については、『Helix Coreサーバ管理者ガイド』の「トリガを起動して外部認証を使用する」を参照してください。
    • sso_enabled構成可能変数を使用して、SwarmHelix SAMLを有効にします。詳細については、「Swarmの構成」を参照してください。
    • Swarm管理者ユーザがチケットベースの認証を使用するように設定する方法については、「Swarmの構成」を参照してください。
    • Helix SAML用にSwarmを設定します。 Helix SAML用のSwarmの設定手順については、「Helix SAML」を参照してください。

Swarmのメール通知

Swarmのメール通知を使用するには、Sendmail (またはこれと同等のもの)が必要になります。 デフォルト設定の場合、php.iniファイル内の設定は、インストールするSendMaiに依存します。 Swarm用にメールを設定する方法については、「電子メール設定」を参照してください。

セキュリティ強化版Linux (SELinux)

Swarmでは、CentOS 7上でSELinuxを使用することができます。 SELinuxは、Linuxディストリビューションのセキュリティを強化する高度なアクセス制御メカニズムです。

SELinuxは、以下の示す3つのモードのいずれかで動作します。

  • enforcing: このモードの場合、定義されているセキュリティポリシーと一致しない操作がブロックされ、ログに記録されます。 これが、CentOS 7上のSELinuxのデフォルトモードです。
  • permissive: このモードの場合、定義されているセキュリティポリシーと一致しない操作がログに記録されますが、ブロックされることはありません。
  • disabled: このモードの場合、SELinuxがオフになり、操作がブロックされることもログに記録されることもありません。

詳細については、「CentOS 7上のSELinuxの構成」を参照してください。

以下のようなSwarm構成エラーが表示された場合、Swarmに対してSELinuxが正しく構成されていません。 その場合は、CentOS 7上のSELinuxが正しく構成されているかどうかを確認してください。

インストールプロセスの選択

ランタイム依存関係に問題がないことを確認したら、いくつかの方法でSwarmをインストールすることができます。

ヒント

パッケージを使用してSwarmのインストールと構成を行うに記載されている方法でSwarmをインストールすると、Swarmのすべての依存関係がインストールされるため、これが最も簡単なSwarmのインストール方法です。

以下に示すいずれかのインストールプロセスを選択してください。