رفتن به محتوای اصلی
فهرست مستندات
نصب با Docker

نصب نسخه ۹.۰.۰.۱۰۹۱ در Docker

به‌روزرسانی ۹ دقیقه مطالعه TestRail

فهرست مطالب
  1. پیش‌نیازها
  2. شروع سریع با script
  3. اجرای TestRail با docker-compose
  4. متغیرهای محیطی
  5. پایگاه‌داده‌های از پیش پرشده و فایل config.php در TestRail
  6. استفاده از فایل‌های Compose
  7. استفاده عمومی
  8. گزینه‌های مفید دیگر:
  9. نکات کلی درباره فایل‌های compose
  10. اجرای TestRail داخل containerهای Docker
  11. Migration از نصب موجود TestRail Server به containerها
  12. استفاده از database داخل containerها
  13. استفاده از دیتابیس خارجی
  14. ارتقای TestRail در صورتی که از قبل از container استفاده می‌کنید
  15. گزینه ۱: روش سریع و ساده
  16. گزینه ۲: انجام ارتقا به‌صورت مرحله‌به‌مرحله
  17. موضوعات پیشرفته
  18. Apache در مقایسه با nginx و MySQL در مقایسه با MariaDB
  19. ایجاد backup
  20. متغیرهای محیطی
  21. ساخت imageها به‌صورت دستی

TestRail را می‌توانید از طریق containerهای Docker نصب کنید؛ این روش راه‌اندازی و اجرای TestRail را بسیار ساده‌تر می‌کند. همه dependencyها و فایل‌های مورد نیاز TestRail در این روش آماده است تا زمان نصب به حداقل برسد.

  مخزن Docker مربوط به TestRail

بسته zip مربوط به Docker برای TestRail

 

همچنین می‌توانید همه فایل‌ها را از این مخزن clone کنید: مخزن GitHub Docker مربوط به TestRail

پیش‌نیازها

  • Docker را نصب کنید + Docker Compose (در Linux، استفاده از pip توصیه می‌شود)
  • آشنایی اولیه با Docker (مثلاً بدانید container، image و detached mode چه هستند) → مستندات رسمی زیر را ببینید: مستندات Get Started در Docker
  • اختیاری: اگر از quickstart.sh script استفاده می‌کنید، این موارد را هم نصب کنید: sudo و ip (معمولاً روی بیشتر سیستم‌ها از قبل نصب است)

شروع سریع با script

این مراحل را دنبال کنید:

  1. این دستور را اجرا کنید quickstart.sh
  2. دو رمز عبور وارد کنید: یکی برای کاربر معمولی database و یکی برای root
  3. چند لحظه صبر کنید؛ TestRail دانلود و راه‌اندازی می‌شود

TestRail باید از طریق این URL در دسترس باشد: http://localhost:۸۰۰۰

نصب را از طریق web UI کامل کنید (از مقادیری استفاده کنید که installer در پایان نمایش می‌دهد).

 

در بخشی از فرایند نصب باید یک Cassandra keyspace بسازید. یک shell در container مربوط به Cassandra باز کنید و دستورهای زیر را اجرا کنید:

cqlsh <host> -u <user> -p <password>

باید خروجی زیر را ببینید:

Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.9 | CQL spec 3.4.4 | Native protocol v4]
 Use HELP for help.
 cqlsh>

با اجرای CQL query زیر، keyspace را ایجاد کنید:

CREATE KEYSPACE IF NOT EXISTS tr_keyspace WITH REPLICATION={'class': 'SimpleStrategy', 'replication_factor': 1};

اجرای TestRail با docker-compose

فایل compose با environment variableها پیکربندی می‌شود؛ پیشنهاد می‌شود از فایل .env استفاده کنید. برای اطلاعات بیشتر درباره فایل .env، این مستندات را ببینید: مستندات Docker درباره env fileها. 

  1. ابتدا یک فایل .env بسازید که حداقل متغیرهای اجباری زیر را داشته باشد:
    • DB_USER
    • DB_NAME
    • DB_PWD
    • DB_ROOT_PWD
  2. بعد، این دستور را اجرا کنید docker-compose up (بار اول، چند دقیقه طول می‌کشد).
  3. TestRail باید حالا در دسترس باشد. از این آدرس بازش کنید: http://localhost:۸۰۰۰
  4. وقتی installer TestRail تنظیمات database را می‌پرسد، همان مقادیری را که در فایل .env مشخص کرده‌اید دوباره وارد کنید.
  5. برای حذف این instance، Ctrl+C را فشار دهید و سپس اجرا کنید docker-compose down.

متغیرهای محیطی

پیشنهاد می‌شود برای تعریف متغیرهای مخصوص کاربر یا سیستم، یک فایل .env محلی بسازید (برای اطلاعات بیشتر، به مستندات Docker درباره env fileها مراجعه کنید). syntax ساده است؛ مثلا: HTTP_PORT=۸۰۰۰

متغیرهای محیطی را می‌توانید با همین syntax مستقیما در shell هم تنظیم کنید و سپس از docker-compose استفاده کنید.

  • DB_PORT
  • HTTP_PORT
  • HTTPS_PORT
  • DB_URL (مثلا http://internal.yourcompany.com/۵.۷.sql)

پایگاه‌داده‌های از پیش پرشده و فایل config.php در TestRail

از طریق DB_URL variable هم می‌توانید یک SQL dump ارائه کنید تا container آن را دانلود کند و TestRail از قبل پیکربندی شده باشد. برای اینکه درست کار کند، config.php باید ارائه شود. کافی است آن را در _config کپی کنید. مطمئن شوید که مقادیر موجود در config.php با تنظیمات database مربوط به user و password که در compose file برای db مشخص شده‌اند، مطابقت داشته باشند.

استفاده از فایل‌های Compose

استفاده عمومی

docker-compose up
docker-compose down

آرگومان up container را راه‌اندازی می‌کند؛ در حالی که down همه چیز را متوقف می‌کند. مرجع docker-compose CLI را می‌توانید اینجا ببینید.

گزینه‌های مفید دیگر:

گزینه توضیح
-v (حذف named volumeها)  این گزینه برای حذف volumeهای موقت پس از shutdown مهم است و استفاده از آن توصیه می‌شود. اگر نمی‌خواهید volumeها پاک شوند، از این parameter استفاده نکنید. با این حال، توجه داشته باشید که ممکن است همچنان پیامدهای ناخواسته‌ای ایجاد کند.
-f (فایل) برای مشخص کردن یک compose file متفاوت استفاده می‌شود (به‌صورت پیش‌فرض docker-compose.yml استفاده می‌شود)
-p (project) اگر قرار است چند instance از TestRail اجرا شود، این مورد لازم است. در غیر این صورت، docker-compose با containerای که از قبل در حال اجراست تعامل می‌کند.

نام پوشه‌ای که docker-compose از داخل آن اجرا می‌شود (در اینجا «internal-docker») به‌عنوان نام project استفاده می‌شود و به ابتدای نام همه containerهای ایجادشده اضافه می‌شود.

توصیه:  از docker-compose down -v استفاده کنید، چون volumeهای نام‌دار و ناشناس را حذف می‌کند!

نکات کلی درباره فایل‌های compose

  • همه فایل‌های compose به volumeهای اضافی زیر وابسته هستند:
  • testrail_root شامل فایل‌های نصب است و روی این مسیر mount می‌شود: /var/www/testrail
  • testrail_opt شامل فایل‌های آپلودشده و موارد مشابه است و روی این مسیر mount می‌شود: /opt/testrail
  • testrail_db شامل database است و روی این مسیر mount می‌شود: /var/lib/mysql.
  • testrail_config شامل فایل config.php است که TestRail را پیکربندی می‌کند و روی این مسیر mount می‌شود: /var/www/testrail/config

Containerها از طریق یک testrail شبکه bridged به هم متصل می‌شوند. ترتیب start شدن مهم است: ابتدا php، سپس webserver و DB.

Migration & Upgrade کردن TestRail

اجرای TestRail داخل containerهای Docker

لطفاً Readme موجود در repo گیت‌هاب را ببینید.

TestRail از docker-compose برای اجرای serviceهای لازم و اتصال containerها به یکدیگر استفاده می‌کند.

برای start و stop کردن TestRail، این دو command کافی است. آن‌ها را در پوشه root repo اجرا کنید:

docker-compose up
docker-compose down

برای start کردن containerها در detached mode، فقط پارامتر ‎-d را اضافه کنید: docker-compose up -d

فایل‌های docker-compose چند متغیر دارند که مقدار پیش‌فرض از قبل برایشان تعیین شده است. برای تنظیم مقدارهای دلخواه برای این متغیرها، یا یک فایل .env بسازید (همان‌طور که در مستندات فایل‌های env در Docker توضیح داده شده است؛ این فایل یک فایل متنی ساده با syntax به شکل VAR=VALUE است).

همچنین می‌توانید env variableها را از طریق command line و با دستورهایی مثل export وارد کنید. HTTP_PORT=8008 && docker-compose up -d.

سایت linuxhint.com نمای خوبی از روش استفاده از env variableها در bash ارائه می‌دهد.

Migration از نصب موجود TestRail Server به containerها

استفاده از database داخل containerها

اگر یک DB اختصاصی فقط برای TestRail اجرا کرده‌اید، منطقی است که DB را هم داخل یک container اجرا کنید. برای upgrade این مراحل را دنبال کنید:

  1. قبل از migration، privilegeهای user در mysql را بررسی کنید. اگر user با ‎’@localhost’ ساخته شده باشد (یعنی دسترسی فقط به «from localhost only» محدود شده باشد)، باید یک user جدید با دسترسی کافی برای connectionهای remote بسازید:

    • با این دستور به DB دسترسی پیدا کنید: mysql -p و همه userها و hostها را فهرست کنید: SELECT user, host FROM mysql.user; 
    • اگر user مربوط به TestRail در ستون host مقدار «localhost» یا یک IP مشخص داشته باشد (و مقدار آن «%» نباشد)، باید یک user جدید ساخته شود: CREATE USER ‘testraildocker’@’%’ IDENTIFIED BY ‘newpassword’; >GRANT ALL ON testrail.* TO 'testraildocker'@'%';
      (علامت «%» اجازه connection از راه دور را از هر IP می‌دهد. اگر subnet مربوط به docker خود را می‌دانید، که معمولاً ۱۷۲.۱۶.۲۵۵.۲۵۵ است، برای سخت‌تر کردن امنیت به‌جای «%» از همان subnet داخلی docker استفاده کنید.)
  2. کل محتوای /var/lib/mysql را به این مسیر کپی کنید: _mysql پوشه و config.php فایل را به _config کپی کنید.
  3. اگر می‌خواهید attachments، reports، logs و audit logs را نگه دارید، پوشه‌های logs, audit, reports, attachments را در پوشه _opt ایجاد کنید و محتوا را از محل قبلی به پوشه‌های تازه ایجادشده کپی کنید.
  4. فایل config.php را ویرایش کنید و مقدار «DB_HOSTNAME» را به db:3306. همچنین مقدار LOG_PATH و AUDIT_PATH را به این موارد تغییر دهید:

    define('LOG_PATH', '/opt/testrail/logs/');
    define('AUDIT_PATH', '/opt/testrail/audit/');
  5. اگر می‌خواهید برای دسترسی به TestRail از پورت مشخصی استفاده کنید، یک فایل .env ایجاد کنید (اطلاعات بیشتر در اینجا) و پورت را با استفاده از HTTP_PORT=<portNumber>
  6. دستور زیر را اجرا کنید: docker-compose up -d

همچنین مسیرهای مربوط به attachments و reports را در بخش TestRail > Administration > Site Settings به موارد زیر تغییر دهید: /opt/testrail/attachments و /opt/testrail/reports

استفاده از دیتابیس خارجی

اگر از یک database server خارجی استفاده می‌کنید، DB server را بدون تغییر بگذارید و این مراحل را دنبال کنید:

  1. فایل config.php را به _config کپی کنید.
  2. اگر می‌خواهید attachments، reports، logs و audit logs را نگه دارید، پوشه‌های logs ، audit ، reports ، و attachments را در پوشه _opt folder ایجاد کنید و محتوا را از محل قبلی به پوشه‌های تازه ایجادشده کپی کنید.
  3. مقادیر LOG_PATH و AUDIT_PATH را در فایل config.php به این موارد تغییر دهید:

    define('LOG_PATH', '/opt/testrail/logs/');
    define('AUDIT_PATH', '/opt/testrail/audit/');
  4. اگر می‌خواهید برای دسترسی به TestRail از پورت مشخصی استفاده کنید، یک فایل .env ایجاد کنید (اطلاعات بیشتر در اینجا) و پورت را با HTTP_PORT= مشخص کنید.<portNumber>
  5. دستور زیر را اجرا کنید: docker-compose up -d

همچنین مسیرهای مربوط به attachments و گزارش‌ها در مسیر TestRail>Administration>Site Settings به: /opt/testrail/attachments و /opt/testrail/reports

ارتقای TestRail در صورتی که از قبل از container استفاده می‌کنید

گزینه ۱: روش سریع و ساده

کافی است از upgrade script استفاده کنید: upgradeTestRail.sh
اگر همان configuration پیش‌فرضی را نگه داشته باشید که quickstart script ایجاد کرده است، این script نسخه TestRail را ارتقا می‌دهد. سپس باید مراحل زیر را دنبال کنید:

  1. Apache Docker container را با اجرای دستور زیر پیدا کنید docker ps
  2. کپی کنید CONTAINER ID برای testrail/apacheimage
  3. اجرا کنید docker exec -it <container_id> برای ورود به Docker container، bash را اجرا کنید
  4. به مسیر زیر بروید /var/www/testrail دایرکتوری
  5. اجرا کنید php run.php update

اگر برای DB files و موارد مشابه از مسیرهای سفارشی استفاده می‌کنید، از گزینه ۲ در ادامه استفاده کنید.

گزینه ۲: انجام ارتقا به‌صورت مرحله‌به‌مرحله

برای ارتقای TestRail از یک نسخه قدیمی‌تر به نسخه جدیدتر، مثلاً از ۶.۰.۰ به ۶.۰.۱، مراحل زیر را انجام دهید:

  1. containerها را متوقف کنید: docker-compose down -v
  2. اختیاری: اگر نسخه مشخصی از TestRail را مثلاً در یک .env فایل تعیین کرده‌اید، نسخه‌ای را که می‌خواهید به آن ارتقا دهید تنظیم کنید.
  3. imageها را دریافت کنید: docker-compose pull
  4. توصیه می‌شود: backup ایجاد کنید؛ توضیحات پایین را ببینید
  5. TestRail را راه‌اندازی کنید docker-compose up -d
  6. Apache Docker container را با اجرای دستور زیر پیدا کنید docker ps
  7. کپی کنید CONTAINER ID برای testrail/apache image
  8. اجرا کنید docker exec -it <container_id> برای ورود به Docker container، bash را اجرا کنید
  9. به مسیر زیر بروید /var/www/testrail دایرکتوری
  10. اجرا کنید php run.php update

مهم

از پوشه‌های حاوی database و پوشه‌ای که logs، reports، attachments و audits را نگه می‌دارد backup بگیرید. به‌صورت پیش‌فرض، این پوشه‌ها _mysql و _opt در دایرکتوری local هستند. همچنین یک کپی از config.php فایل‌های موجود در _config تهیه کنید.

برای انجام یک upgrade «ایمن» هم می‌توانید این سه پوشه را در یک مسیر جدید کپی کنید و سپس دستور docker-compose را اجرا کنید.

موضوعات پیشرفته

Apache در مقایسه با nginx و MySQL در مقایسه با MariaDB

TestRail در حال حاضر به‌صورت رسمی از Apache + MySQL پشتیبانی می‌کند. می‌توانید nginx و MariaDB را هم امتحان کنید، اما توجه داشته باشید که این ترکیب به‌صورت رسمی پشتیبانی نمی‌شود. اگر هنگام استفاده از این دو سیستم با مشکلی روبه‌رو شدید، به ما اطلاع دهید تا بتوانیم امکان پشتیبانی از nginx/MariaDB را در آینده بررسی کنیم.

ایجاد backup

همه containerها stateless هستند، بنابراین می‌توانید آن‌ها را با خیال راحت حذف کنید. داده‌های مهم در volumeهای local ذخیره می‌شوند؛ به‌صورت پیش‌فرض در _config ، _mysql ، و _opt قرار دارند. کافی است از این پوشه‌ها backup بگیرید.

متغیرهای محیطی

  • TESTRAIL_VERSION
  • OPT_PATH
  • CONFIG_PATH
  • MYSQL_PATH
  • HTTP_PORT
  • DB_PORT
  • DB_URL
  • DB_USER
  • DB_PWD
  • DB_NAME
  • DB_ROOT_PWD
  • TR_DEFAULT_TASK_EXECUTION

ساخت imageها به‌صورت دستی

همچنین می‌توانید Docker imageها را خودتان بسازید. همه Dockerfileها در این پوشه قرار دارند. دستورالعمل‌های build در subfolderهای مربوطه آمده است.

 

این راهنما به کارتان آمد؟

ایستگاه بعدی شما

TestRail را همین حالا در محیط دمو ببینید.

محیط تست آماده

دسترسی به دمو TestRail

قبل از ورود، مشخصات زیر را در صفحه ورود محیط دمو وارد کنید.

آدرس دمو

https://demo.testrail.ir

ایمیل ورود

demo@testrail.ir

رمز عبور

demo_user