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

نصب نسخه ۸.۰.۴.۷۰۳۶ روی Docker

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

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

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

  مخزن Docker برای TestRail

پکیج zip داکر TestRail

 

همچنین می‌توانید همه فایل‌ها را از مخزن GitHub داکر TestRail

نیازمندی‌ها

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

شروع سریع با script

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

  1. اجرا کنید quickstart.sh
  2. دو password وارد کنید؛ یکی برای کاربر معمولی 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>

با اجرای query زیر در CQL، 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 محلی بسازید تا متغیرهای مخصوص user یا machine را در آن مشخص کنید. برای اطلاعات بیشتر، به مستندات Docker env files مراجعه کنید. syntax ساده است؛ برای مثال: HTTP_PORT=۸۰۰۰

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

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

Databaseهای از قبل آماده‌شده و فایل 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های نام‌دار و anonymous را حذف می‌کند!

نکات کلی درباره فایل‌های 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 شبکه bridge به هم وصل می‌شوند. ترتیب اجرا مهم است: ابتدا php، سپس webserver و DB باید اجرا شوند.

مهاجرت & ارتقای TestRail

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

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

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

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

docker-compose up
docker-compose down

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

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

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

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

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

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

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

  1. قبل از مهاجرت، مجوزهای کاربر mysql را بررسی کنید. اگر کاربری با ‘@localhost’ ساخته شده باشد (یعنی فقط از localhost اجازه دسترسی داشته باشد)، باید یک کاربر جدید با دسترسی کافی بسازید تا اتصال‌های remote مجاز شوند:

    • با دستور زیر به DB وصل شوید mysql -p و همه userها و hostهایشان را فهرست کنید: SELECT user, host FROM mysql.user; 
    • اگر کاربر TestRail در ستون host مقدار ‘localhost’ یا یک IP مشخص داشته باشد (و مقدار آن ‘%’ نباشد)، باید یک کاربر جدید بسازید: CREATE USER ‘testraildocker’@’%’ IDENTIFIED BY ‘newpassword’; – >GRANT ALL ON testrail.* TO 'testraildocker'@'%';
      (علامت ‘%’ اتصال remote از هر IP را مجاز می‌کند. اگر Docker subnet خود را می‌شناسید، که معمولاً ۱۷۲.۱۶.۲۵۵.۲۵۵ است، برای افزایش امنیت به‌جای ‘%’ از همان 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 از port مشخصی استفاده کنید، یک فایل .env ایجاد کنید (اطلاعات بیشتر در اینجا) و port را از طریق این گزینه مشخص کنید HTTP_PORT=<portNumber>
  6. اجرا کنید docker-compose up -d

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

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

اگر از یک external 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 از port مشخصی استفاده کنید، یک فایل .env ایجاد کنید (اطلاعات بیشتر در اینجا) و port را از طریق HTTP_PORT= مشخص کنید<portNumber>
  5. اجرا کنید docker-compose up -d

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

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

گزینه ۱: سریع و دم‌دستی

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

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

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

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

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

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

مهم

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

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

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

Apache در مقابل nginx و MySQL در مقابل MariaDB

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

تهیه backup

همه containerها stateless هستند، بنابراین می‌توان آن‌ها را بدون مشکل حذف کرد. داده‌های مهم در volumeهای محلی ذخیره می‌شوند؛ به‌صورت پیش‌فرض در _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

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

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

 

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

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

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

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

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

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

آدرس دمو

https://demo.testrail.ir

ایمیل ورود

demo@testrail.ir

رمز عبور

demo_user