このセクションでは、Unix/Linux サーバーにインストールされた TestRail Server 7.4 以降に Cassandra NoSQL データベースをインストールする方法を説明します。
前提条件
Cassandra データベースをインストールするには、いくつかの必須コンポーネントをインストールする必要があります。
-
-
- Open JDK 8
- C++ driver
- Cassandra driver for TestRail
-
1.JDK 8 のインストール
次のコマンドを使用して Java バージョン 8 をインストールします。
$ sudo apt-get install openjdk-8-jdk -y
インストールが完了したら、次のコマンドを使用してインストールされた Java のバージョンを確認します。
$ java -version
次のように出力されれば、JDK は正常にインストールされています。
Openjdk version “1.8.0_312” OpenJDK Runtime Environment (build 1.8.0_312-8u312-b07-0ubuntu1~20.04-b07) OpenJDK 64-bit Server VM (build 25.312-b07, mixed mode)
2.C++ ドライバーのインストール
Cassandra ドライバーが動作するには C++ ドライバーが必要であるため、Linux TestRail プラットフォームでは C++ ドライバーが必要です。
libssl1.1 パッケージのインストール (ubuntu22.04 のみ)
ubuntu22.04 ではlissl3系がデフォルトで入っていますが、cpp-driver のインストールに libssl1.1.1 系を必要とするため libssl1.1 をインストールします。
libssl1.1 パッケージをダウンロードします。
$ wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.22_amd64.deb
パッケージをインストールします。
$ sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.19_amd64.deb
openssl.confを書き換えます。
$ sudo sed -i '/_sect\b/s/^/# /' /etc/ssl/openssl.cnf
multiarch-support パッケージのインストール
multiarch-support パッケージをダウンロードします:
$ wget http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/multiarch-support_2.27-3ubuntu1.6_amd64.deb
パッケージをインストールします。
$ sudo dpkg -i multiarch-support_2.27-3ubuntu1.6_amd64.deb
C++ ドライバーのインストール
C++ ドライバーをインストールします。
$ wget https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver_2.16.0-1_amd64.deb
次のコマンドを実行してインストールします。
$ sudo dpkg -i cassandra-cpp-driver_2.16.0-1_amd64.deb
3.Cassandra driver for TestRail
こちらから Linux 用ドライバーをダウンロードします。
次のコマンドを実行して ‘extension_dir フォルダーの場所を確認できます。
$ php -i | grep ^extension_dir
cassandra.so ファイルを extension_dir フォルダーにコピーします。
$ sudo cp cassandra.so /usr/lib/php/20210902/
md5sum などの MD5 ツールを使用して、ファイルの MD5 チェックサムが次のとおりであることを検証します。
a151c2a7146d56c16236baa8cc1e9134
次のような結果が返されるはずです。
$ /usr/lib/php/20210902# md5sum cassandra.so a151c2a7146d56c16236baa8cc1e9134 cassandra.so
php.ini ファイルに次の行を追加して拡張機能を有効化します。
extension=cassandra
次のコマンドを実行して拡張が利用可能であることを確認できます。
$ php -m
cassandra を含むすべての必須 PHP 拡張機能をリストした典型的な phpinfo ページはこちらです。
cassandra が正常にロードされない場合、拡張機能ディレクトリで次のコマンドを実行してドライバーの依存関係がすべて利用できるかどうかを確認するか、’cassandra.so’ ファイルのフル パスを使用します。
ldd cassandra.so
次は正常な出力の例です。
linux-vdso.so.1 (0x00007ffe7fdf8000) libcassandra.so.2 => /lib/x86_64-linux-gnu/libcassandra.so.2 (0x00007f037a800000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f037ad2e000) libuv.so.1 => /lib/x86_64-linux-gnu/libuv.so.1 (0x00007f037acfc000) libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f037a77e000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f037a556000) libssl.so.1.1 => /lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007f037a200000) libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f0379c00000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f037acde000) libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f03799d6000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f037acbe000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f037acb9000) /lib64/ld-linux-x86-64.so.2 (0x00007f037ae9a000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f037acb2000)
C++ Driver がない場合、エラーが出力されます。例:
linux-vdso.so.1 (0x00007ffcc7ffd000) libcassandra.so.2 => not found libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f0574a3e000) libuv.so.1 => /lib/x86_64-linux-gnu/libuv.so.1 (0x00007f0574a0c000) libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f057498a000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0574762000) /lib64/ld-linux-x86-64.so.2 (0x00007f0574ba9000)
Apache Cassandra のインストール
以下の手順は、Ubuntu 22.04 での例です。
現在、Server インスタンスでサポートされている Cassandra のバージョンは 3.11 だけです。
次のコマンドを使用して必須の依存パッケージをインストールします。
$ sudo apt-get install apt-transport-https gnupg2 -y
次のコマンドを使用して GPC キーをダウンロードし、追加します。
$ curl -fsSL https://www.apache.org/dist/cassandra/KEYS | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/cassandra.gpg > /dev/null
OK というレスポンスを待機します。(数秒かかる場合があります。) 次のコマンドを使用して APT に Cassandra リポジトリを追加します。
$ echo "deb https://debian.cassandra.apache.org 311x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
リポジトリ キャッシュを更新します。
$ sudo apt-get update -y
Apache Cassandra をインストールします。
$ sudo apt-get install cassandra -y
Cassandra Home の lib ディレクトリ (通常は /usr/share/cassandra/lib) に cassandra-lucene-index-plugin-*.jar がインストールされていることを確認します。.jar ファイルは Cassandra と同じバージョン番号であるはずです。
インストールされていない場合、公式 maven リポジトリから .jar ファイルをダウンロードできます。
$ wget https://repo1.maven.org/maven2/com/stratio/cassandra/cassandra-lucene-index-plugin/3.11.3.0/cassandra-lucene-index-plugin-3.11.3.0.jar
ファイルを Cassandra Home の lib ディレクトリにコピーします。
$ sudo cp cassandra-lucene-index-plugin-3.11.3.0.jar /usr/share/cassandra/lib
Cassandra を再起動します。
$ sudo systemctl restart cassandra
これで Cassandra データベースへの初回の接続を行う準備ができました。次のように入力します:
$ cqlsh
または、上記のコマンドが動作しない場合、次のように入力します。
$ cqlsh -u cassandra -p cassandra
次のように出力されるはずです。
Connected to Test Cluster at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3.11.11 | CQL spec 3.4.4 | Native protocol v4] Use HELP for help. cqlsh>
TestRail をインストールするには、Cassandra キースペースを作成する必要があります。次の CQL クエリーを実行してキースペースを作成します。
CREATE KEYSPACE IF NOT EXISTS testrail WITH REPLICATION={'class': 'SimpleStrategy', 'replication_factor': 1};
この Cassandra は ユーザー名として ‘cassandra’ 、パスワードとして ‘cassandra’を使用します。新規ユーザーを作成するには、cassandra.yaml ファイルを編集します。
ファイルを編集して authenticator および authorizer ディレクティブを変更します。authenticator: AllowAllAuthenticator 行をコメント化し、次のように行を追加します。
#authenticator: AllowAllAuthenticator authenticator: org.apache.cassandra.auth.PasswordAuthenticator
authorizer: AllowAllAuthorizer 行をコメント化し、次のように行を追加します。
#authorizer: AllowAllAuthorizer authorizer: org.apache.cassandra.auth.CassandraAuthorizer
Cassandra を再起動します。
$ sudo systemctl restart cassandra
デフォルトのユーザー名とパスワードを使用して Cassandra に接続します。
$ cqlsh -u cassandra -p cassandra
Cassandra TestRail ユーザーおよびパスワードを作成します。
cassandra@cqlsh> create user 'username' with password 'password';
TestRail ユーザーに作成済みの TestRail 用キースペースへの権限を与えます。
cassandra@cqlsh> GRANT ALL ON KEYSPACE testrail to 'testrail';
Cassandra を終了します。