Linuxで自動更新を使用してJavaエージェントをインストール
ユーザによっては、ContrastのJavaエージェントを自動的に最新バージョンに更新したい場合があります。Linuxユーザの場合、一般的なLinuxツールであるcron
やcurl
を使用して、Maven CentralからJavaエージェントの更新をスケジュールできます。
ここでは、Ubuntu 18.04 LinuxホストでJavaエージェントの更新ジョブをスケジュールするよう設定する方法について説明します。
注記
本項で説明する内容のファイルの作成には、お好きなエディタを使用してください。以下の例では、tee
コマンドを使用してファイルを作成します。
ここでの手順に沿って各ステップを実行したい場合は、VagrantやVirtualBoxを使用して、Ubuntu 18.04の仮想マシンを新規に作成することもできます。
vagrant init ubuntu/bionic64
vagrant up
vagrant ssh
Contrastソフトウェア用の共有ディレクトリを作成します。
sudo mkdir -p /opt/contrast
最新のJavaエージェントをインストールするためのスクリプトを/etc/cron.dailyディレクトリに作成します。このディレクトリ内のスクリプトは毎日1回実行され、その結果、ホストで毎日Javaエージェントが最新に更新されます。
tee
を使用してこのスクリプトを作成します。全ての行を入力し終わったら、CTRL+D
を押します。$ sudo tee -a /etc/cron.daily/install-latest-contrast-agent > /dev/null #!/bin/bash -u CONTRAST_DIRECTORY=/opt/contrast CONTRAST_FILE_NAME=contrast-agent.jar CONTRAST_VERSION=$(curl --fail --silent 'https://search.maven.org/solrsearch/select?q=g:com.contrastsecurity+a:contrast-agent' | sed -e 's/[{}]/''/g' | sed s/\"//g | awk -v RS=',' -F: '$1=="latestVersion"{print $2}' | grep -v -e '^$') curl --fail --silent --location "https://repo1.maven.org/maven2/com/contrastsecurity/contrast-agent/${CONTRAST_VERSION}/contrast-agent-${CONTRAST_VERSION}.jar" -o "contrast-agent-${CONTRAST_VERSION}.jar" if [ $? -ne 0 ]; then echo "Failed to download Contrast Java agent" >&2 exit 1 fi mv /tmp/$CONTRAST_FILE_NAME $CONTRAST_DIRECTORY/$CONTRAST_FILE_NAME
新しいスクリプトファイルに実行権限を設定します。
sudo chmod +x /etc/cron.daily/install-latest-contrast-agent
スクリプトをテストするために、スクリプトを実行します。
stat
を使用してファイルが存在することを確認します。$ sudo /etc/cron.daily/install-latest-contrast-agent $ stat /opt/contrast/contrast-agent.jar stat /opt/contrast/contrast-agent.jar File: /opt/contrast/contrast-agent.jar Size: 10568283 Blocks: 20648 IO Block: 4096 regular file Device: 801h/2049d Inode: 256034 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2019-04-11 02:02:01.265775928 +0000 Modify: 2019-04-11 02:24:47.849796936 +0000 Change: 2019-04-11 02:24:47.849796936 +0000 Birth: -
Contrastエージェントには、Contrastサーバと通信するための設定が必要です。エージェントのキー情報はこちらを参照してください。
ContrastエージェントをLinuxホストにインストールしたら、通常は、ホスト上でContrastが有効な各Webアプリケーションが、Contrastサーバへの接続に必要なパラメータなどの基本的な設定値を共有できるように構成します。通常、ContrastはLinuxホスト上のパス/etc/contrast/java/contrast_security.yamlにあるYAMLファイルの設定を探します。
/etc/contrast/javaディレクトリを作成してください。
sudo mkdir -p /etc/contrast/java
tee
コマンドを使用して、設定ファイルを作成します。<contrast_url>
、<your_api_key>
、<agent_user_name>
、<agent_user_service_key>
を、前述のステップでContrastから取得した値に置き換えます。$ sudo tee -a /etc/contrast/java/contrast_security.yaml > /dev/null api: url: <contrast_url> api_key: <your_api_key> user_name: <agent_user_name> service_key: <agent_user_service_key>
全ての行を入力し終わったら、
CTRL+D
を押してください。Contrastがインストールされ、正しく設定されていることを確認するために、診断テストを実行します。診断テストを実行するには、ホストにJavaがインストールされている必要があります。
sudo apt install --yes openjdk-11-jre-headless
最後に、Javaエージェントの診断テストを実行します。エージェントが正しくインストールされ、/etc/contrast/java/contrast_security.yamlの設定パラメータを使用して、Contrastサーバと通信できることを確認します。
$ java -jar /opt/contrast/contrast-agent.jar diagnostic *** Contrast Agent (version 3.6.3-SNAPSHOT) [!] Attempting to connect to the Contrast TeamServer at https://apptwo.contrastsecurity.com/Contrast (No proxy). [!] Attempting to resolve domain: apptwo.contrastsecurity.com Resolved domain apptwo.contrastsecurity.com to IP Address 52.200.215.12 [+] Client successfully resolved the DNS of the Contrast TeamServer. No proxy needed. [!] Issuing HTTP request to Contrast... Executing request... Reading response [200] Response size = 4209 Snippet: <!doctype html> <!--[if gt IE 8]><!--> <html class="no-js" i [+] Client can connect directly to the Contrast TeamServer. No proxy needed.