در ادامه، مراحل نصب پایگاه داده 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 #
بسته multiarch-support را دانلود کنید:
$ wget http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/multiarch-support_2.27-3ubuntu1.6_amd64.deb
بسته را نصب کنید.
$ 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 #
بسته 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
بسته را نصب کنید.
$ 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 را از این لینک دانلود کنید.
مطمئن شوید فایل در دایرکتوری extensionهای PHP قرار دارد. با اجرای دستور زیر میتوانید محل پوشه extension_dir را پیدا کنید.
$ php -i | grep ^extension_dir
فایل cassandra.so را در پوشه extension_dir کپی کنید.
$ cp cassandra.so /usr/lib/php/20210902/
با یک ابزار MD5 مثل md5sum بررسی کنید که checksum فایل برابر مقدار زیر باشد:
a151c2a7146d56c16236baa8cc1e9134
خروجی باید شبیه این باشد:
$ /usr/lib/php/20210902# md5sum cassandra.so
a151c2a7146d56c16236baa8cc1e9134 cassandra.so
extension را در php.ini فعال کنید؛ برای این کار، خط زیر را به فایل اضافه کنید.
extension=cassandra
با اجرای دستور زیر میتوانید مطمئن شوید extension در دسترس است.
$ php -m
این هم یک نمونه صفحه phpinfo است که همه extensionهای موردنیاز PHP، از جمله 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
فایل را در دایرکتوری lib مربوط به Cassandra 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 باید یک keyspace در Cassandra ایجاد کنید. با اجرای query زیر در CQL آن را ایجاد کنید:
CREATE KEYSPACE IF NOT EXISTS testrail WITH REPLICATION={'class': 'SimpleStrategy', 'replication_factor': 1};
در این نصب Cassandra، نام کاربری و رمز عبور هر دو cassandra هستند. اگر میخواهید 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
با نام کاربری و رمز عبور پیشفرض به Cassandra متصل شوید.
$ cqlsh -u cassandra -p cassandra
سپس برای TestRail در Cassandra یک user و password ایجاد کنید.
cassandra@cqlsh> create user 'username' with password 'password';
همه مجوزهای دسترسی را به user مربوط به TestRail اعطا کنید.
cassandra@cqlsh> GRANT ALL ON KEYSPACE testrail to 'testrail';
سپس میتوانید از Cassandra خارج شوید.

