systemdを使用すると、Linuxマシン上でmabl Link Agentをシステムサービスとして実行でき、ブート時に起動し、停止した場合は再起動されるようになります。
推奨: install.shでインストールする
Link Agentをsystemdサービスとして実行する場合は、LinuxおよびmacOSインストーラーを使用する方法をお勧めします。インストーラーは、サービスアカウントと設定ファイルとともにサービスを作成し、ホストのソケットバッファーの上限をチューニングするかどうかを尋ねます。展開したtar.bz2またはzipアーカイブから、sudo ./install.shを実行します。
この記事の以降の部分では、systemdサービスを自分で作成する方法について説明します。これらの手動の手順は、インストーラーでは設定できない高度にカスタマイズされたインストールが必要な場合にのみ実行してください。その場合でも、インストーラーがホスト用に書き込むサービス定義から始めてください。./install.sh --print-unitを実行すると、何もインストールせずにその定義が表示されます。
開始する前に
- "Link Agent" のAPIキーとトンネル名。Link Agentのセットアップを参照してください。
- Java 11以降。Link Agentの要件を参照してください。
ステップ1: Link Agentのインストール
-
ワークスペース > ネットワークからtar.bz2またはzipアーカイブをダウンロードし、ホストにコピーします。
-
/opt/mablなど、Link Agentを実行するディレクトリにアーカイブを展開します。sudo mkdir -p /opt/mabl sudo tar xjf link-agent.tbz2 -C /opt/mabl -
トンネル名とAPIキーを記述したLink Agent設定ファイルを、
/opt/mabl/link-agent/config/config.yamlなどの場所に作成します。
Link Agent専用のアカウント (mablなど) を作成し、インストールディレクトリの所有者にすることをお勧めします。Link Agentはインストールディレクトリにログを保存し、実行中のバージョンの隣にアップデートをインストールするため、サービスアカウントにはインストールディレクトリへの書き込み権限が必要です。
sudo useradd --system --no-create-home mabl
sudo chown -R mabl: /opt/mabl/link-agent
sudo chmod 600 /opt/mabl/link-agent/config/config.yaml
ステップ2: サービスファイルの作成
次の内容を/etc/systemd/system/mabl-link-agent.serviceとして保存し、ホストに合わせてパス、User、JAVA_HOMEを更新します。
[Unit]
Description=mabl Link Agent
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=mabl
WorkingDirectory=/opt/mabl/link-agent
Environment="LINK_AGENT_SERVICE_MANAGED=1"
Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk"
ExecStart=/opt/mabl/link-agent/bin/link-agent --config /opt/mabl/link-agent/config/config.yaml
Restart=on-failure
RestartSec=10
TimeoutStopSec=90
KillMode=mixed
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
これらの設定のうち、いくつかはサービスとしてのLink Agentの動作に関係します。
-
LINK_AGENT_SERVICE_MANAGED=1とRestart=on-failureにより、エージェントがアップデートをインストールした後にsystemdがエージェントを再起動できます。エージェントは、再起動を要求するためにエラーコードで終了します。APIキーが無効になったとmablが報告した場合など、エージェントが意図的に正常終了した場合、systemdは同じ拒否を繰り返さないよう、エージェントを停止したままにします。 -
JAVA_HOMEは、サービスが使用するJavaを指定します。サービスは、インストールに使用したシェルの環境を引き継がないためです。 -
TimeoutStopSec=90とKillMode=mixedにより、サービスの停止時に、systemdがエージェントのトンネルプロセスを停止する前に、処理中の接続が完了するまでの時間をエージェントに与えます。 -
LimitNOFILE=65535は、オープンファイル数の上限を引き上げます。負荷の高いトンネルでは、テストのリクエストごとに1つの接続を使用するためです。
ステップ3: Link Agentの起動
新しいサービスを読み込み、有効にして起動します。
sudo systemctl daemon-reload
sudo systemctl enable --now mabl-link-agent
エージェントが起動したことを確認するには、サービスのステータスと出力を確認します。
systemctl status mabl-link-agent
journalctl -u mabl-link-agent -r
Link Agent自身のログは、インストールディレクトリのlogs/agent.logです。
ステップ4: Link Agentの接続の確認
mablアプリのワークスペース > ネットワークに移動し、エージェントが [接続済み] と表示されることを確認します。Link Agentのセットアップを参照してください。
次のステップ
Link Agentがインストールされて実行されたら、mabl Link経由で実行するようにテストを設定します。