این مقاله روند نصب پایگاه داده NoSQL Cassandra را برای نصبهای TestRail Server روی سرورهای Unix یا Linux که از TestRail ۷.۴ یا نسخههای جدیدتر استفاده میکنند توضیح میدهد.
پیشنیازها #
برای نصب پایگاه داده Cassandra، باید چند جزء موردنیاز را نصب کنید:
مراحل زیر نمونهای برای نصب روی Ubuntu ۲۰.۰۴ است:
۱. نصب JDK ۸ #
Java نسخه ۸ را با دستور زیر نصب کنید:
$ apt-get install openjdk-8-jdk -y
#
اگر روی یک توزیع مبتنی بر RedHat نصب میکنید، نام package این است: java-1.8.0-openjdk
بعد از پایان نصب، نسخه نصبشده Java را با دستور زیر بررسی کنید:
$ java -version
اگر خروجی دستور 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)
۲. نصب درایور C++ #
برای پلتفرمهای Linux مربوط به TestRail به درایور C++ نیاز است، چون درایور Cassandra بدون آن اجرا نمیشود.
توزیع Ubuntu #
package multiarch-support را دانلود کنید:
$ wget http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/multiarch-support_2.27-3ubuntu1.6_amd64.deb
این package را نصب کنید.
$ dpkg -i multiarch-support_2.27-3ubuntu1.2_amd64.deb
حالا درایور C++ را دانلود کنید.
$ wget https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver_2.16.0-1_amd64.deb
برای نصب آن، این دستور را اجرا کنید.
$ dpkg -i cassandra-cpp-driver_2.16.0-1_amd64.deb
توزیع مبتنی بر RedHat #
package multiarch-support را دانلود کنید.
$ wget https://downloads.datastax.com/cpp-driver/centos/7/dependencies/libuv/v1.35.0/libuv-1.35.0-1.el7.x86_64.rpm
این package را نصب کنید.
$ rpm -i libuv-1.35.0-1.el7.x86_64.rpm
حالا درایور C++ را دانلود کنید.
$ wget https://downloads.datastax.com/cpp-driver/centos/7/cassandra/v2.16.0/cassandra-cpp-driver-2.16.0-1.el7.x86_64.rpm
برای نصب آن، این دستور را اجرا کنید.
$ rpm -i cassandra-cpp-driver-2.16.0-1.el7.x86_64.rpm
۳. درایور Cassandra برای TestRail #
درایور Linux را از اینجا دانلود کنید.
میتوانید آن را بهصورت دستی دانلود کنید یا فایل را با Git clone روی سیستم خود دریافت کنید.
$ git clone https://github.com/gurock/CassandraDrivers.git
به دایرکتوری drivers که فایل در آن قرار دارد بروید.
$ cd Drivers.Cassandra/Linux/7.3
با اجرای دستور زیر، محل پوشه extension_dir را پیدا کنید.
$ php -i | grep ^extension_dir
فایل cassandra.so را در پوشه extension_dir کپی کنید.
$ cp cassandra.so /usr/lib64/php/modules/
extension را در php.ini فعال کنید؛ برای این کار خط زیر را به فایل اضافه کنید.
extension=cassandra.so
با اجرای دستور زیر میتوانید بررسی کنید که extension در دسترس است.
$ php -m
در اینجا یک صفحه معمولی phpinfo قرار دارد که همه extensionهای موردنیاز PHP، از جمله cassandra، را فهرست میکند.
نصب Apache Cassandra #
مراحل زیر نمونهای برای نصب روی Ubuntu ۲۲.۰۴ است. اگر روی یک توزیع مبتنی بر RedHat نصب میکنید، از دستورالعملهای DataStax Documentation پیروی کنید.
#
در حال حاضر، Cassandra ۳.۱۱ تنها نسخه Cassandra است که برای نصبهای Server پشتیبانی میشود.
#
پیش از نصب، ممکن است در برخی توزیعهای Linux دایرکتوری /etc/apt/keyrings/ بهصورت پیشفرض وجود نداشته باشد. بررسی کنید این دایرکتوری را دارید یا نه؛ اگر وجود ندارد، آن را با دستور زیر ایجاد کنید: mkdir /etc/apt/keyrings/.
این کار باید repository را فعال کند و امکان نصب Cassandra را فراهم کند.
dependencyهای موردنیاز را با دستور زیر نصب کنید:
$ apt-get install apt-transport-https gnupg2 -y
کلید GPG را با دستور زیر دانلود و اضافه کنید:
$ curl -o /etc/apt/keyrings/apache-cassandra.asc https://downloads.apache.org/cassandra/KEYS
برای بررسی موفقیتآمیز بودن دستور قبلی، از دستور زیر استفاده کنید:
$ cat /etc/apt/keyrings/apache-cassandra.asc
منتظر پاسخ OK بمانید؛ ممکن است چند ثانیه طول بکشد. سپس repository مربوط به Cassandra را با دستور زیر به APT اضافه کنید:
$ sh -c 'echo "deb [signed-by=/etc/apt/keyrings/apache-cassandra.asc] https://debian.cassandra.apache.org 311x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list'
cache مربوط به repository را بهروزرسانی کنید:
$ apt-get update -y
Apache Cassandra را نصب کنید.
$ apt-get install cassandra -y
مطمئن شوید فایل cassandra-lucene-index-plugin-*.jar در دایرکتوری lib مربوط به Cassandra Home نصب شده باشد. (معمولاً مسیر آن /usr/share/cassandra/lib است). این فایل .jar باید شماره نسخه نصب Cassandra شما را داشته باشد.
اگر این فایل را ندارید، میتوانید فایل .jar را از repository رسمی Maven دانلود کنید.
$ 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
فایل را در دایرکتوری lib مربوط به Home کپی کنید.
$ cp cassandra-lucene-index-plugin-3.11.3.0.jar /usr/share/cassandra/lib
فعالسازی Authentication و Authorization در Cassandra
- فایل پیکربندی Cassandra، یعنی cassandra.yaml، را باز کنید.
- AllowAllAuthenticator را با PasswordAuthenticator و AllowAllAuthorizer را با CassandraAuthorizer جایگزین کنید.
Cassandra را restart کنید.
$ service cassandra restart
اکنون برای اولین اتصال به Cassandra آمادهاید. این دستور را وارد کنید:
cqlsh <host> -u <user> -p <password>
باید خروجی زیر را دریافت کنید:
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 keyspace ایجاد کنید. برای ایجاد آن، query زیر را در CQL اجرا کنید:
CREATE KEYSPACE IF NOT EXISTS testrail WITH REPLICATION={'class': 'SimpleStrategy', 'replication_factor': 1};
در این نصب Cassandra، مقدار «cassandra» هم بهعنوان user و هم بهعنوان password استفاده میشود. اگر میخواهید user جدیدی ایجاد کنید، باید فایل cassandra.yaml را در terminal ویرایش کنید:
فایل را با تغییر directiveهای authenticator و authorizer ویرایش کنید. خط «authenticator: AllowAllAuthenticator» را comment کنید و خط زیر را اضافه کنید تا به این شکل باشد:
#authenticator: AllowAllAuthenticator
authenticator: org.apache.cassandra.auth.PasswordAuthenticator
سپس خط «authorizer: AllowAllAuthorizer» را comment کنید و خط زیر را اضافه کنید تا به این شکل باشد:
#authorizer: AllowAllAuthorizer
authorizer: org.apache.cassandra.auth.CassandraAuthorizer
سپس Cassandra را restart کنید.
$ service cassandra restart
با user و password پیشفرض به Cassandra متصل شوید.
$ cqlsh -u cassandra -p cassandra
سپس برای TestRail در Cassandra یک user و password ایجاد کنید.
cassandra@cqlsh> create user 'username' with password 'password';
همه privilegeها را به user مربوط به TestRail بدهید.
cassandra@cqlsh> GRANT ALL ON KEYSPACE testrail to 'testrail';
سپس میتوانید از Cassandra خارج شوید.

