در ادامه، مراحل نصب پایگاه داده Cassandra NoSQL برای نصبهای TestRail Server روی سرورهای Unix یا Linux را میبینید که از TestRail ۷.۴ یا نسخههای جدیدتر استفاده میکنند.
پیشنیازها #
برای نصب پایگاه داده Cassandra، باید چند component موردنیاز را نصب کنید:
مراحل زیر نمونهای از نصب روی Ubuntu ۲۰.۰۴ است:
۱. نصب JDK ۸ #
Java نسخه ۸ را با دستور زیر نصب کنید:
$ apt-get install openjdk-8-jdk -y
#
اگر نصب را روی یک distribution مبتنی بر 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.6_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 را از اینجا.
مطمئن شوید فایل در directory مربوط به PHP extensions قرار دارد. با وارد کردن دستور زیر میتوانید محل پوشه extension_dir را پیدا کنید.
$ php -i | grep ^extension_dir
فایل cassandra.so را در پوشه extension_dir کپی کنید.
$ cp cassandra.so /usr/lib/php/20210902/
با استفاده از یک ابزار MD5 مثل md5sum، بررسی کنید که checksum MD5 این فایل برابر مقدار زیر باشد:
a151c2a7146d56c16236baa8cc1e9134
باید خروجیای شبیه این برگرداند:
$ /usr/lib/php/20210902# md5sum cassandra.so
a151c2a7146d56c16236baa8cc1e9134 cassandra.so
با اضافه کردن خط زیر به فایل php.ini، extension را در آن فعال کنید.
extension=cassandra
با اجرای دستور زیر میتوانید مطمئن شوید که extension در دسترس است.
$ php -m
در اینجا یک صفحه معمولی phpinfo وجود دارد که همه PHP extensionهای موردنیاز، از جمله cassandra، را فهرست میکند.
اگر cassandra بهدرستی load نمیشود، میتوانید با اجرای دستور زیر بررسی کنید که همه dependencyهای موردنیاز درایور در دسترس هستند. از دایرکتوری extension استفاده کنید، یا مسیر کامل فایل ‘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 ۲۲.۰۴ است. اگر روی توزیعی مبتنی بر RedHat نصب میکنید، طبق دستورالعملهای مستندات DataStax.
#
در حال حاضر، 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
فایل را در دایرکتوری Home lib کپی کنید.
$ 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 یک keyspace بسازید:
CREATE KEYSPACE IF NOT EXISTS testrail WITH REPLICATION={'class': 'SimpleStrategy', 'replication_factor': 1};
در این نصب Cassandra، مقدار user برابر «cassandra» و مقدار password نیز برابر «cassandra» است. اگر میخواهید کاربر جدیدی ایجاد کنید، باید فایل 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 یک user و password در Cassandra ایجاد کنید.
cassandra@cqlsh> create user 'username' with password 'password';
همه privilegeها را به user مربوط به TestRail بدهید.
cassandra@cqlsh> GRANT ALL ON KEYSPACE testrail to 'testrail';
بعد از آن میتوانید از Cassandra خارج شوید.

