ワーカーを生成する繰り返しタスクをセットアップする
Helixサーバの着信イベントをSwarmで自動的に処理するには、その処理を実行するためのcronジョブを設定する必要があります。cronジョブをSwarmホストマシン上にインストールすることをお勧めします。
curlまたはwgetのインストール
Swarmワーカーを生成する繰り返しタスクを実行するには、Swarmのサーバマシンにcurlまたはwgetをインストールする必要があります。
- curlをインストールする方法については、「curlのインストール」を参照してください。
- wgetをインストールする方法については、「wgetのインストール」を参照してください。
curlのインストール
- curlをhttps://curl.haxx.se/download.htmlからダウンロードします。
- curlをインストールします。
- 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のインストール
- wgetをhttps://ftp.gnu.org/gnu/wget/からダウンロードします。
- wgetをインストールします。
- wgetが正しくインストールされたことを確認します。詳細については、「curlまたはwgetがインストールされているかどうかを確認する」を参照してください。
curlまたはwgetがインストールされているかどうかを確認する
curl
またはwget
をインストールしないと、ワーカーが生成されません。また、Swarmでイベントを処理することもできません。
curlまたはwgetがインストールされているかどうかを確認するには、以下の手順を実行します。
which
コマンドを実行します。-
インストールされている場合は、出力が表示されます。
例えば、curlがインストールされているかどうかを確認するには、以下のコマンドを実行します。
$ which curl
ワーカーを生成するための繰り返しタスクを作成する
SwarmパッケージのインストールとSwarm OVAのインストール:
- helix-swarm、swarm-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スクリプトファイルを指しています。
- /etc/cron.dで、helix-swarmという名前のファイルを作成します(まだ存在しない場合)。
- 以下のコンテンツを含むよう、helix-swarmファイルを編集します。
- helix-swarmファイルを保存します。
# # 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
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のインストール環境の正しいコンテンツが保管されます。
上記のスクリプトファイルに記述されている構成行のwgetとcurlは、変更しないでください。このスクリプトは、wgetを使用するSwarmのインストール環境と、curlを使用するSwarmのインストール環境で実行することができます。最初にwget構成行が実行され、この構成行が失敗した場合は、curl構成行が実行されます。
-
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)、ホスト名、ポート番号を指定します。
swarm-cron-hosts.conf
ファイルを編集用として開き、Swarmの実際のホスト名と、Swarm用に設定されているポートを指定します(サブフォルダまたはカスタムポートを指定することもできます)。以下の構文を使用します。- [http[s]://]: httpがデフォルト値として使用されます。
- <swarm-host>: Swarmのホスト名を指定する必要があります。
- :<port> 80
- 編集したファイルを保存します。
-
これで、Swarmの基本的な構成が完了しました。
重要HelixサーバがHelix認証サービス用に設定されている場合は、すべてのユーザにIDプロバイダ(IdP)を使用した認証を強制するには、パスワードへのフォールバックを無効にします。Helixサーバでパスワードへのフォールバックを無効にするには、以下のコマンドを実行します。
p4 configure set auth.sso.allow.passwd=0
- Swarmのインストール環境をカスタマイズするためのインストール後構成オプションを確認します。詳細については、「インストール後の構成オプション」を参照してください。
[http[s]://]<swarm-host>[:<port>]
値を指定しなかった場合に適用されるデフォルト設定は以下のとおりです。
Swarmワーカーの確認方法と設定方法については、「ワーカー」を参照してください。
繰り返しタスクが無効になっている場合や、何らかの理由で繰り返しタスクが停止した場合は、ワーカーが稼働していないことがSwarmによって検出されると、ログインしているユーザに対して以下のエラーメッセージが表示されます。