در ادامه روند نصب پایگاه داده 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.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 را از اینجا دانلود کنید.
مطمئن شوید فایل در دایرکتوری extension مربوط به PHP قرار دارد. محل پوشه ‘extension_dir’ را میتوانید با دستور زیر پیدا کنید.
$ php -i | grep ^extension_dir
فایل cassandra.so را در پوشه extension_dir کپی کنید.
$ cp cassandra.so /usr/lib/php/20210902/
با ابزاری مثل md5sum بررسی کنید که checksum MD5 این فایل مقدار زیر باشد:
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++ نصب نشده باشد، خروجی نادرست میگیرید؛ برای مثال:
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 Documentation را دنبال کنید.
#
در حال حاضر، برای نصبهای TestRail Server فقط Cassandra ۳.۱۱ پشتیبانی میشود.
#
پیش از نصب، ممکن است در بعضی توزیعهای Linux مسیر /etc/apt/keyrings/ بهصورت پیشفرض وجود نداشته باشد. بررسی کنید این دایرکتوری را دارید یا نه؛ اگر وجود نداشت، آن را با دستور زیر بسازید: mkdir /etc/apt/keyrings/.
با این کار repository فعال میشود و میتوانید Cassandra را نصب کنید.
وابستگیهای موردنیاز را با دستور زیر نصب کنید:
$ 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 #
- فایل configuration مربوط به Cassandra، یعنی cassandra.yaml، را باز کنید.
- AllowAllAuthenticator را با PasswordAuthenticator و AllowAllAuthorizer را با CassandraAuthorizer جایگزین کنید.
Cassandra را راهاندازی مجدد کنید.
$ service cassandra restart
حالا آمادهاید برای اولین بار به Cassandra وصل شوید. دستور زیر را وارد کنید:
cqlsh <host> -u <user> -p <password>
یا اگر دستور قبلی برای شما کار نکرد، این دستور را وارد کنید:
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 لازم است یک keyspace در Cassandra بسازید. با اجرای query زیر در CQL آن را ایجاد کنید:
CREATE KEYSPACE IF NOT EXISTS testrail WITH REPLICATION={'class': 'SimpleStrategy', 'replication_factor': 1};
در این نصب Cassandra، نام کاربری و رمز عبور هر دو ‘cassandra’ هستند. اگر میخواهید کاربر جدید بسازید، باید فایل cassandra.yaml را در ترمینال ویرایش کنید:
فایل را ویرایش کنید و 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 را راهاندازی مجدد کنید.
$ service cassandra restart
با نام کاربری و رمز عبور پیشفرض به Cassandra وصل شوید.
$ cqlsh -u cassandra -p cassandra
بعد، برای TestRail در Cassandra یک کاربر و رمز عبور بسازید.
cassandra@cqlsh> create user 'username' with password 'password';
همه دسترسیها را به کاربر TestRail بدهید.
cassandra@cqlsh> GRANT ALL ON KEYSPACE testrail to 'testrail';
بعد از آن میتوانید از Cassandra خارج شوید.

