ワーカーを生成する繰り返しタスクをセットアップする

Helixサーバの着信イベントをSwarmで自動的に処理するには、その処理を実行するためのcronジョブを設定する必要があります。cronジョブをSwarmホストマシン上にインストールすることをお勧めします。

curlまたはwgetのインストール

Swarmワーカーを生成する繰り返しタスクを実行するには、Swarmのサーバマシンにcurlまたはwgetをインストールする必要があります。

curlのインストール

  1. curlhttps://curl.haxx.se/download.htmlからダウンロードします。
  2. curlをインストールします。
  3. curlが正しくインストールされたことを確認します。詳細については、「curlまたはwgetがインストールされているかどうかを確認する」を参照してください。
警告

curl が正常に実行できない場合は、トリガの実行がブロックされるか、失敗する可能性があります。トリガを設定する前に、curlを実行できることを検証します。次を実行します。

$ curl -h

出力は次のような行から始まります。

Usage: curl [options...] <url>
Options: (H) means HTTP/HTTPS only, (F) means FTP only
     --anyauth       Pick "any" authentication method (H)
 -a, --append        Append to target file when uploading (F/SFTP)
     --cacert FILE   CA certificate to verify peer against (SSL)
     --capath DIR    CA directory to verify peer against (SSL)
...[truncated for brevity]...

実際にネットワーク上のコンテンツをフェッチする、より高度なテストを実施するには、次のコマンドを実行してください。

$ curl https://www.perforce.com/

HTML形式のような出力が表示されます。

wgetのインストール

  1. wgethttps://ftp.gnu.org/gnu/wget/からダウンロードします。
  2. wgetをインストールします。
  3. wgetが正しくインストールされたことを確認します。詳細については、「curlまたはwgetがインストールされているかどうかを確認する」を参照してください。

curlまたはwgetがインストールされているかどうかを確認する

警告

curlまたはwgetをインストールしないと、ワーカーが生成されません。また、Swarmでイベントを処理することもできません。

curlまたはwgetがインストールされているかどうかを確認するには、以下の手順を実行します。

  1. whichコマンドを実行します。
  2. 例えば、curlがインストールされているかどうかを確認するには、以下のコマンドを実行します。

    $ which curl
  3. インストールされている場合は、出力が表示されます。

ワーカーを生成するための繰り返しタスクを作成する

注意

SwarmパッケージのインストールSwarm OVAのインストール:

  • helix-swarmswarm-cron-hosts.conf、およびswarm-cron.shのファイルが、Swarmの正しいURLを含む正しいコンテンツを使用して自動的に作成されます。これらのファイルを編集する必要はありません。
  • 既存のWebサイトのサブフォルダ内でSwarmを実行する場合や、カスタムポートを使用してSwarmを実行する場合は、swarm-cron-host.confファイルを編集する必要があります。サブフォルダ内でSwarmを実行するように設定する方法と、カスタムポートを使用してSwarmを実行する方法については、「既存のWebサイトのサブフォルダでSwarmを実行する」と「カスタムポート上でSwarmの仮想ホストを実行する」を参照してください。

helix-swarmのcronファイル

helix-swarmファイルは、/etc/cron.dに配置され、swarm-cron.shスクリプトファイルを指しています。

  1. /etc/cron.dで、helix-swarmという名前のファイルを作成します(まだ存在しない場合)。
  2. 以下のコンテンツを含むよう、helix-swarmファイルを編集します。
  3. #
    # Cron job to start Swarm workers every minute
    #
    * * * * * nobody [ -x /opt/perforce/swarm/p4-bin/scripts/swarm-cron.sh ] && /opt/perforce/swarm/p4-bin/scripts/swarm-cron.sh

  4. helix-swarmファイルを保存します。

sswarm-cron.shスクリプト

/opt/perforce/swarm/p4-bin/scriptsフォルダ内のswarm-cron.shファイルにより、ワーカーが1分間隔で起動します。

構成行「DEFAULT_CONFIG_FILE=」の値はデフォルトで「/opt/perforce/etc/swarm-cron-hosts.conf」に設定されています。swarm-cron.shスクリプトは、swarm-cron-hosts.confファイルからSwarmのホスト名を取得します。

swarm-cron.shスクリプトファイルに記述されているwgetまたはcurlを使用して、Swarmのインストール環境の正しいコンテンツが保管されます。

ヒント

上記のスクリプトファイルに記述されている構成行のwgetcurlは、変更しないでください。このスクリプトは、wgetを使用するSwarmのインストール環境と、curlを使用するSwarmのインストール環境で実行することができます。最初にwget構成行が実行され、この構成行が失敗した場合は、curl構成行が実行されます。

  • HTTPとHTTPS用のwgetの校正行:

    wget --quiet --no-check-certificate --output-document /dev/null --timeout 5 "${SWARM_HOST}/queue/worker"
  • HTTPとHTTPS用のcurlの構成行:

    curl --silent --insecure --output /dev/null --max-time 5 "${SWARM_HOST}/queue/worker"

上記のwget構成行とcurl構成行では、「--timeout 5」または「--max-time 5」が指定されています。この「5」は、cronタスクがSwarmホストからの応答を待機する秒数です。cronタスクがSwarmホスト(Swarm OVAなど)にインストールされている場合は、この値を1秒にまで減らすことができます(--timeout 1--max-time 1などのように指定します)。

注意

証明書の検証テストを実行すると、警告が表示されることなくイベントの処理が失敗することがありますが、HTTPSを使用するようにSwarmが設定されていて、自己署名の証明書がインストールされている場合は、cronジョブにより、証明書の検証テストが回避されます。証明書の検証テストを回避するためのコマンドは、wget構成行とcurl構成行内にデフォルトで記述されています。

  • wget構成行: --no-check-certificate
  • curl構成行: --insecure

Swarmに対するHTTP接続が設定されている場合は、証明書の検証テストを回避するためのコマンドが無視されます。

swarm-cron-hosts.conf構成ファイル

/opt/perforce/etcフォルダ内のswarm-cron-hosts.confファイルにより、Swarmのcronジョブの接続タイプ(HTTPまたはHTTPS)、ホスト名、ポート番号を指定します。

  1. swarm-cron-hosts.confファイルを編集用として開き、Swarmの実際のホスト名と、Swarm用に設定されているポートを指定します(サブフォルダまたはカスタムポートを指定することもできます)。以下の構文を使用します。
  2. [http[s]://]<swarm-host>[:<port>]

    値を指定しなかった場合に適用されるデフォルト設定は以下のとおりです。

    • [http[s]://]: httpがデフォルト値として使用されます。
    • <swarm-host>: Swarmのホスト名を指定する必要があります。
    • :<port> 80
  3. 編集したファイルを保存します。
  4. ヒント

    Swarmワーカーの確認方法と設定方法については、「ワーカー」を参照してください。

    注意

    繰り返しタスクが無効になっている場合や、何らかの理由で繰り返しタスクが停止した場合は、ワーカーが稼働していないことがSwarmによって検出されると、ログインしているユーザに対して以下のエラーメッセージが表示されます。

  5. これで、Swarmの基本的な構成が完了しました。

    重要

    HelixサーバHelix認証サービス用に設定されている場合は、すべてのユーザにIDプロバイダ(IdP)を使用した認証を強制するには、パスワードへのフォールバックを無効にします。Helixサーバでパスワードへのフォールバックを無効にするには、以下のコマンドを実行します。

    p4 configure set auth.sso.allow.passwd=0

  6. Swarmのインストール環境をカスタマイズするためのインストール後構成オプションを確認します。詳細については、「インストール後の構成オプション」を参照してください。