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

نصب روی Docker: مهاجرت و ارتقای TestRail

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

فهرست مطالب
  1. اجرای TestRail داخل کانتینرهای Docker
  2. مهاجرت از یک نصب فعلی TestRail Server به کانتینرها
  3. استفاده از database داخل کانتینرها
  4. استفاده از database خارجی
  5. ارتقای TestRail وقتی از قبل از container استفاده می‌کنید
  6. گزینه ۱: سریع و ساده
  7. گزینه ۲: انجام upgrade به‌صورت مرحله‌به‌مرحله
  8. موضوعات پیشرفته
  9. Apache در مقایسه با nginx و MySQL در مقایسه با MariaDB
  10. تهیه backup
  11. متغیرهای محیطی
  12. ساخت imageها به‌صورت دستی

اجرای TestRail داخل کانتینرهای Docker

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

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

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

docker-compose up
docker-compose down

برای راه‌اندازی کانتینرها در detached mode، کافی است پارامتر ‎-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 به کانتینرها

استفاده از database داخل کانتینرها

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

  1. قبل از مهاجرت، privilegeهای user در mysql را بررسی کنید. اگر user با ‎’@localhost’ ساخته شده باشد، یعنی دسترسی فقط از localhost مجاز است؛ در این حالت باید یک 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'@'%';
      علامت «%» اجازه می‌دهد از هر IP ارتباط remote برقرار شود. اگر docker subnet خود را می‌دانید، که معمولاً ۱۷۲.۱۶.۲۵۵.۲۵۵ است، برای سخت‌تر کردن تنظیمات امنیتی به‌جای «%» از همان subnet داخلی Docker استفاده کنید.
  2. کل محتوای /var/lib/mysql را در _mysql پوشه کپی کنید و config.php فایل را در _config کپی کنید.
  3. اگر می‌خواهید attachmentها، reportها، logها و audit logها را نگه دارید، پوشه‌های 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

تمام شد؛ کار شما انجام شد!

 

همچنین مسیرهای مربوط به attachmentها و reportها زیر TestRail > Administration > Site Settings به: /opt/testrail/attachments و /opt/testrail/reports

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

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

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

    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 و reports را در بخش TestRail>Administration>Site Settings به این موارد تغییر دهید: /opt/testrail/attachments و /opt/testrail/reports

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

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

کافی است از upgrade script استفاده کنید: upgradeTestRail.sh
اگر با configuration پیش‌فرض ساخته‌شده توسط quickstart script کار کرده باشید، این کار TestRail را ارتقا می‌دهد. اگر برای DB files و موارد مشابه از locationهای سفارشی استفاده می‌کنید، از گزینه ۲ در ادامه استفاده کنید.

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

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

  1. کانتینرها را متوقف کنید: docker-compose down -v
  2. (اختیاری) اگر نسخه مشخصی از TestRail را مثلا در یک .env فایل تعیین کرده‌اید، نسخه‌ای را که می‌خواهید به آن upgrade کنید تنظیم کنید.
  3. imageها را pull کنید: docker-compose pull
  4. توصیه می‌شود: backup تهیه کنید (بخش زیر را ببینید)
  5. TestRail را راه‌اندازی کنید docker-compose up -d

  مهم

از پوشه‌هایی که شامل database هستند و همچنین از پوشه‌ای که logها، reportها، attachmentها و auditها را نگه می‌دارد backup تهیه کنید. به‌طور پیش‌فرض، این پوشه‌ها عبارت‌اند از _mysql و _opt در directory محلی. همچنین یک کپی از 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

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

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

 

اگر از نسخه ۷.۰ به ۷.۴ یا بالاتر upgrade می‌کنید، باید migration script را طبق مستندات این بخش اجرا کنید: ارتقای TestRail. ترتیب پیشنهادی برای ارتقای TestRail به این صورت است:

  1. Cassandra را نصب و پیکربندی کنید

  2. TestRail را نصب کنید یا ارتقا دهید

  3. migration script مخصوص انتقال از نسخه ۷.۰ یا قدیمی‌تر به نسخه ۷.۴ یا جدیدتر را اجرا کنید

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

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

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

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

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

آدرس دمو

https://demo.testrail.ir

ایمیل ورود

demo@testrail.ir

رمز عبور

demo_user