מבוא

OTOBO היא מערכת בקשות כרטיסים בקוד פתוח עם תכונות רבות לניהול שיחות טלפון ודוא“ל של לקוחות. היא מופצת תחת רישיון GNU General Public License (GPL) ונבדקה על פלטפורמות לינוקס שונות.

אודות מדריך זה

מדריך זה מיועד לשימוש על ידי מנהלי מערכות. הפרקים מתארים את ההתקנה והעדכון של תוכנת OTOBO.

אין ממשק משתמש גרפי להתקנה ועדכון. מנהלי המערכת צריכים לבצע את השלבים המתוארים בפרקים הבאים.

כל פקודות הקונסולה נראות כך: שם משתמש&gt; פקודה לביצוע. שם המשתמש מציין את חשבון המשתמש של מערכת ההפעלה, שיש להשתמש בו כדי לבצע את הפקודה. אם פקודה מתחילה ב-root&gt;, עליך לבצע את הפקודה כמשתמש עם הרשאות root. אם פקודה מתחילה ב-otobo&gt;, עליך לבצע את הפקודה כמשתמש שנוצר עבור OTOBO.

אזהרה

אל תבחר ב-username&gt; כאשר אתה מעתיק את הפקודה ומדביק אותה ב-shell. אחרת תקבל שגיאה.

אנו מניחים ש-OTOBO יותקן בספרייה /opt/otobo. אם ברצונך להתקין את OTOBO במיקום אחר, עליך לשנות את הנתיב בפקודות או ליצור קישור סמלי לספרייה זו.

root> ln -s /path/to/otobo /opt/otobo

דרישות חומרה ותוכנה

ניתן להתקין את יישום האינטרנט OTOBO על לינוקס ועל מערכות אחרות המבוססות על יוניקס, כגון OpenBSD או FreeBSD. הפעלת OTOBO על Microsoft Windows אינה נתמכת.

יישום האינטרנט משתמש במאגר מידע יחסי כבקנד. לכן, כדי להפעיל את OTOBO, תצטרך להפעיל לפחות שרת אינטרנט ושרת מאגר מידע. שרת האינטרנט ושרת מאגר המידע יכולים להיות מותקנים על אותו מארח או על מארחים שונים.

לחלופין, OTOBO יכול לפעול גם תחת Docker. כאשר הוא פועל תחת Docker, השרת האינטרנטי ושרת מסד הנתונים כבר כלולים בהתקנה. תמיכה בפריסה עם Kubernetes נמצאת בפיתוח.

יישום האינטרנט OTOBO דורש Perl יחד עם מודולים נוספים של Perl מ-CPAN. ניתן להתקין את המודולים באמצעות מנהל חבילות Perl או באמצעות מנהל החבילות של מערכת ההפעלה שלך (rpm, yast, apt-get). קיימת פקודה בקונסולה לבדיקת תלות המודולים:

otobo> /opt/otobo/bin/otobo.CheckModules.pl --inst

אם חסרים חבילות מסוימות, ניתן לקבל פקודת התקנה עבור מערכת ההפעלה שלך על ידי הפעלת הסקריפט עם האפשרות --list.

otobo> /opt/otobo/bin/otobo.CheckModules.pl --list | more

הפקודות המפורטות צריכות להבוצע עם הרשאות root.

תוצאת סקריפט בדיקת המודולים מציגה את החבילות המותקנות ואת מספרי הגרסאות. מודולים חסרים מסומנים בהערה.

Required packages:
  o Archive::Tar.....................ok (v2.32)
  o Archive::Zip.....................ok (v1.67)
  o Const::Fast......................ok (v0.014)
  o Date::Format.....................ok (v2.24)
  o DateTime.........................ok (v1.51)
    o DateTime::TimeZone.............ok (v2.38)
  o Convert::BinHex..................ok (v1.125)
  o DBI..............................ok (v1.643)
  o Digest::SHA......................ok (v6.02)
  o File::chmod......................ok (v0.42)
  o List::AllUtils...................ok (v0.15)
  o LWP::UserAgent...................ok (v6.26)
  o Moo..............................ok (v2.003006)
  o namespace::autoclean.............ok (v0.29)
  o Net::DNS.........................ok (v1.22)
  o Net::SMTP::SSL...................ok (v1.04)
  o Path::Class......................ok (v0.37)
  o Sub::Exporter....................ok (v0.987)
  o Template::Toolkit................ok (undef)
  o Template::Stash::XS..............ok (undef)
  o Text::CSV........................ok (v1.95)
  o Text::Trim.......................ok (v1.04)
  o Time::HiRes......................ok (v1.9760)
  o Try::Tiny........................ok (v0.30)
  o URI..............................ok (v1.71)
  o XML::LibXML......................ok (v2.0207)
  o YAML::XS.........................ok (v0.81)
  o Unicode::Collate.................ok (v1.27)
  o CGI::PSGI........................ok (v0.15)
  o DBIx::Connector..................ok (v0.56)
  o Path::Class......................ok (v0.37)
  o Plack............................ok (v1.0047)
  o Plack::Middleware::ForceEnv......ok (v0.02)
  o Plack::Middleware::Header........ok (v0.04)
  o Plack::Middleware::Refresh.......ok (undef)
  o Plack::Middleware::ReverseProxy..ok (v0.16)
  o Plack::Middleware::Rewrite.......ok (v2.101)
  o SOAP::Transport::HTTP::Plack.....ok (v0.03)

Recommended features for setups using apache:
  o ModPerl::Util....................ok (v2.000011)

Database support (installing one is required):
  o DBD::mysql.......................ok (v4.050)

Various features for additional functionality:
  o Encode::HanExtra.................ok (v0.23)
  o Net::LDAP........................ok (v0.66)
  o Crypt::Eksblowfish::Bcrypt.......ok (v0.009)
  o XML::LibXSLT.....................ok (v1.99)
  o XML::Parser......................ok (v2.46)

Features enabling communication with a mail-server:
  o Net::SMTP........................ok (v3.11)
  o Mail::IMAPClient.................ok (v3.42)
  o Authen::SASL.....................ok (v2.16)
  o Authen::NTLM.....................ok (v1.09)
  o IO::Socket::SSL..................ok (v2.067)

Optional features which can increase performance:
  o JSON::XS.........................ok (v4.02)
  o Text::CSV_XS.....................ok (v1.41)

Required packages if you want to use PSGI/Plack (experimental and advanced):
  o Gazelle..........................ok (v0.49)
  o Linux::Inotify2..................ok (v2.2)
  o Plack::App::File.................ok (undef)

דרישות חומרה

דרישות החומרה תלויות במידה רבה בשימוש ב-OTOBO. OTOBO יכול לשמש לעיבוד כמה כרטיסים בחודש או לעיבוד מאות כרטיסים ביום. דרישות האחסון תלויות גם במספר הכרטיסים ובגודל הקבצים המצורפים.

אנו ממליצים להשתמש במכונה למטרות בדיקה עם לפחות:

מעבד קטן

4 GB זיכרון RAM

10 GB אחסון

אנו ממליצים להשתמש במכונה למטרות ייצור עם לפחות:

Xeon 3 GHz או מעבד דומה

8 GB RAM (מומלץ 16 GB)

40 GB אחסון

הערה

דרישות החומרה תלויות בשימוש ב-OTOBO. אנא פנה ליועץ OTOBO שלך לפני פריסת חומרה כלשהי.

דרישות תוכנה

פרל

Perl 5.24.0 ומעלה

חבילות Perl המפורטות על ידי פקודת הקונסולה /opt/otobo/bin/otobo.CheckModules.pl --list

שרת אינטרנט

שרת HTTP Apache גרסה 2.4

מאגרי מידע

MySQL 8.4 or higher

MariaDB 10.11 or higher

PostgreSQL 13 or higher

Oracle 19c or higher

אופציונלי

Elasticsearch 7.x (פונקציית חיפוש מהיר לתצוגה מקדימה חיה)

Redis (אחסון במטמון מהיר)

nginx או כל שרת אינטרנט אחר שניתן להשתמש בו כפרוקסי הפוך (תמיכה ב-SSL וחלוקת עומס)

דפדפני אינטרנט

אפל ספארי

גוגל כרום

Microsoft Edge

מוזילה פיירפוקס

כל דפדפן אינטרנט מודרני אחר התומך ב-JavaScript

התקנת OTOBO

This chapter describes the installation and basic configuration of the central OTOBO framework. Currently, the recommended installation method is using Docker and Docker Compose. However, it is also possible to install OTOBO manually on a standard Linux server directly. Please refer to any subsection for your preferred installation method.

תוכן

OTOBO Installation Docker

דרישות

התקנה

1. שכפל את מאגר otobo-docker

2. צור קובץ .env ראשוני

3. קבע את הסיסמה עבור משתמש מנהל מסד הנתונים

4. הגדר נפח עם תצורת SSL עבור proxy האינטרנט nginx (אופציונלי)

5. הפעל את קונטיינרי Docker באמצעות Docker Compose

6. התקן והפעל את OTOBO

מידע טכני נוסף

רשימת מכולות Docker

סקירה כללית על אמצעי האחסון של Docker

משתני סביבה של Docker

נושאים מתקדמים

תצורה מותאמת אישית של proxy האינטרנט nginx

כניסה יחידה באמצעות תמיכה ב-Kerberos ב-Nginx

בחירת יציאות לא סטנדרטיות

דלג על הפעלת שירותים ספציפיים

הכן התקנה לא מקוונת

התאמה אישית של OTOBO Docker Compose

התאמה אישית של תמונת OTOBO Docker

בניית תמונות מקומיות

התקנה אוטומטית

רשימת פקודות שימושיות

משאבים

OTOBO Installation on Ubuntu

שלב 1: פתח את האריזה והתקן את OTOBO

שלב 2: התקן תוכניות נוספות ומודולי Perl

שלב 3: צור את המשתמש OTOBO

שלב 4: הפעל את קובץ התצורה המוגדר כברירת מחדל

Step 5: Configure systemd services for OTOBO

Step 6: Configure the Nginx Web Server

Configure Nginx without SSL support

Configure Nginx with SSL support

שלב 6: הגדר הרשאות קבצים

שלב 7: הגדרת מסד הנתונים

שלב 8: הגדרת Elasticsearch

התקנת Elasticsearch בהפצת לינוקס אחרת

התקנת מודול Elasticsearch

תצורת Elasticsearch

שלב 9: תצורת מערכת בסיסית

שלב 10: כניסה ראשונה

שלב 11: הפעל את הדמון OTOBO

שלב 13: הגדרת השלמת אוטומטית של Bash (אופציונלי)

שלב 14: מידע נוסף

OTOBO Installation on RHEL

הכנה: השבת את SELinux כאשר הוא מותקן ומופעל.

שלב 1: פתח את האריזה והתקן את OTOBO

Step 2: Create the OTOBO User

Step 3: Install Additional Programs and Perl Modules

Option A: Install packages from CPAN

Option B: Deploy prebuilt packages

שלב 4: הפעל את קובץ התצורה המוגדר כברירת מחדל

Step 5: Configure systemd services for OTOBO

Step 6: Configure the Nginx Web Server

Configure Nginx without SSL support

Configure Nginx with SSL support

Step 7: Set File Permissions

Step 8: Setup the Database

Step 9: Setup Elasticsearch

התקנת מודול Elasticsearch

תצורת Elasticsearch

Step 10: Basic System Configuration

Step 11: First Login

Step 12: Start the OTOBO Daemon

שלב 13: הגדרת השלמת אוטומטית של Bash (אופציונלי)

שלב 14: מידע נוסף

OTOBO Installation Docker

באמצעות פריסת OTOBO המותאמת ל-Docker, תוכלו להפעיל את המהדורה האישית שלכם של OTOBO תוך דקות ספורות. כל התלות של OTOBO כבר כלולות באוסף תמונות ה-Docker המסופק.

שירות db: MariaDB מוגדר כמאגר הנתונים המוגדר כברירת מחדל.

שירות elastic: Elasticsearch מוגדר עבור חיפוש מתקדם ב-OTOBO.

שירות redis: Redis מופעל לצורך אחסון במטמון מהיר.

שירות אינטרנט: Gazelle משמש כשרת אינטרנט Perl מהיר.

שירות nginx: Nginx משמש כפרוקסי הפוך אופציונלי לתמיכה ב-HTTPS.

אנו סבורים כי תצורה זו מהווה את הסביבה המושלמת להתקנת OTOBO.

דרישות

הגרסאות המינימליות של התוכנות הנדרשות, אשר נבדקו, מפורטות כאן:

Docker 19.03.13

Docker Compose 1.25.0

Git 2.17.1

הערה

עבור Ubuntu 24.04 LTS מומלץ להשתמש ב-Compose V2.

root> apt update
root> apt install docker.io docker-compose-v2

Compose V2 מיושם כתוסף לפקודה docker. ניתן להשתמש בכינוי כדי לשמור על תאימות עם הפקודה docker-compose המוכרת מ-Compose V1.

root> alias docker-compose='docker compose'

Git, Docker, and Docker Compose can be installed with the standard system tools. Here is an example for installation on Ubuntu 20.04 Focal Fossa:

root> apt install git docker.io docker-compose curl
root> systemctl enable docker

אנא עיין בתיעוד Git ו-Docker לקבלת הוראות להגדרה נוספת.

התקנה

ההוראות הבאות מניחות כי כל הדרישות מתקיימות, וכי יש ברשותך סביבת Docker תקינה. אנו מניחים כאן כי המשתמש docker_admin משמש לתקשורת עם Docker. מנהל Docker יכול להיות המשתמש root של מארח Docker או משתמש ייעודי בעל ההרשאות הנדרשות.

1. שכפל את מאגר otobo-docker

תמונות ה-Docker יובאו בסופו של דבר מהמאגר https://hub.docker.com. אך ישנם כמה קבצי הגדרה ופקודה שצריך לשכפל מהמאגר otobo-docker ב-Github. הקפד לציין את התג המתאים לגרסת התיקון הנוכחית של OTOBO. לדוגמה, כאשר OTOBO 11.0.2 היא הגרסה הנוכחית, אנא השתמש בתג rel-11_0_2.

הערה

מיקום המאגר המשוכפל אינו משנה. בהוראות אלה בחרנו ב- /opt/otobo-docker כתיקיית העבודה.

docker_admin> cd /opt
docker_admin> git clone https://github.com/RotherOSS/otobo-docker.git --branch <TAG>
docker_admin> cd otobo-docker    # change into the git sandbox
docker_admin> ls                 # just a sanity check, for example the file README.md should exist

2. צור קובץ .env ראשוני

קובץ התצורה של Docker Compose .env הוא הממשק העיקרי לניהול ההתקנה של OTOBO. יש ליצור קובץ זה תחילה ולאחר מכן להתאימו בעצמכם. כדי לפשט את המשימה, ישנם מספר קבצי דוגמה שניתן להשתמש בהם כנקודת התחלה. איזה קובץ דוגמה מתאים ביותר תלוי במקרה השימוש שלך. ברוב המקרים, ההחלטה היא בין .docker_compose_env_http ו-.docker_compose_env_https, תלוי אם יש צורך בתמיכה ב-TLS או לא. הקבצים האחרים מיועדים למקרי שימוש מיוחדים יותר.

.docker_compose_env_http

אפליקציית האינטרנט OTOBO מספקת HTTP.

.docker_compose_env_https

אפליקציית האינטרנט OTOBO מספקת HTTPS על ידי הפעלת Nginx כשרת אינטרנט פרוקסי הפוך.

.docker_compose_env_https_custom_nginx

כמו .docker_compose_env_https, אך עם תמיכה בתצורת Nginx מותאמת אישית.

.docker_compose_env_https_kerberos

כמו .docker_compose_env_https, אך עם הגדרת דוגמה לכניסה יחידה. שימו לב שתמיכת Kerberos עדיין ניסיונית.

.docker_compose_env_http_selenium ו-.docker_compose_env_https_selenium

אלה משמשים רק לפיתוח כאשר בדיקות Selenium מופעלות.

הערה

השתמש ב-ls -a כדי להציג את קבצי הדוגמה המוסתרים.

כברירת מחדל, OTOBO פועל ביציאות הסטנדרטיות. יציאה 443 עבור HTTPS ויציאה 80 עבור HTTP. כאשר HTTPS מופעל, יישום האינטרנט OTOBO עדיין פועל עם HTTP. תמיכה ב-HTTPS מושגת באמצעות פרוקסי הפוך נוסף, המיושם כשירות nginx.

בפקודות הבאות אנו מניחים ש-HTTPS אמור להיות נתמך.

docker_admin> cd /opt/otobo-docker
docker_admin> cp -p .docker_compose_env_https .env # or .docker_compose_env_http for HTTP

3. קבע את הסיסמה עבור משתמש מנהל מסד הנתונים

שנה את ההגדרה הבאה בקובץ .env שלך:

OTOBO_DB_ROOT_PASSWORD=&lt;הסיסמה_הסודית_שלך&gt;

ניתן לבחור באופן חופשי את הסיסמה למשתמש מנהל מסד הנתונים. משתמש מנהל מסד הנתונים נדרש כדי ליצור את משתמש מסד הנתונים otobo ואת סכימת מסד הנתונים otobo. OTOBO ישתמש בפועל במשתמש מסד הנתונים הייעודי otobo.

4. הגדר נפח עם תצורת SSL עבור proxy האינטרנט nginx (אופציונלי)

ניתן לדלג על שלב זה כאשר OTOBO אמור להיות זמין רק באמצעות HTTP.

nginx זקוק לתעודת SSL ומפתח פרטי לצורך הצפנה.

הערה

לצורך בדיקות ופיתוח ניתן להשתמש בתעודה חתומה עצמית. עם זאת, לשימוש פרודוקטיבי יש לעבוד עם תעודות רשומות רגילות.

ראו לדוגמה https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-nginx-in-ubuntu על אופן יצירת אישורים חתומים עצמית.

הערה

כדי לציין שרשרת CA עם תעודה ב-nginx, יש להעתיק את קובץ שרשרת ה-CA עם התעודה בפועל לקובץ.

האישור והמפתח הפרטי מאוחסנים בנפח, כך ש-nginx יוכל להשתמש בהם בהמשך. בכל מקרה, יש ליצור את הנפח באופן ידני, ועלינו להעתיק את האישור והמפתח לנפח:

docker_admin> docker volume create otobo_nginx_ssl
docker_admin> otobo_nginx_ssl_mp=$(docker volume inspect --format '{{ .Mountpoint }}' otobo_nginx_ssl)
docker_admin> echo $otobo_nginx_ssl_mp  # just a sanity check
docker_admin> cp /PathToYourSSLCert/ssl-cert.crt /PathToYourSSLCert/ssl-key.key $otobo_nginx_ssl_mp

יש להגדיר את שמות הקבצים שהועתקו בקובץ .env החדש שיצרנו. לדוגמה:

OTOBO_NGINX_SSL_CERTIFICATE=/etc/nginx/ssl/ssl-cert.crt ו-OTOBO_NGINX_SSL_CERTIFICATE_KEY=/etc/nginx/ssl/ssl-key.key

אנא התאימו רק את שמות הקבצים, שכן הנתיב /etc/nginx/ssl/ קבוע בתמונת Docker.

5. הפעל את קונטיינרי Docker באמצעות Docker Compose

כעת אנו מפעילים את קונטיינרי Docker באמצעות docker-compose. כברירת מחדל, תמונות Docker יובאו מ-https://hub.docker.com/u/rotheross.

docker_admin> docker-compose up --detach

כדי לוודא שששת השירותים הנדרשים (חמישה במקרה של HTTP בלבד) פועלים בפועל, הקלד:

docker_admin> docker-compose ps
docker_admin> docker volume ls

6. התקן והפעל את OTOBO

הפעל את תוכנית ההתקנה של OTOBO בכתובת http://yourIPorFQDN/otobo/installer.pl.

הערה

אנא קבע את תצורת OTOBO בתוך תוכנית ההתקנה עם מסד נתונים MySQL חדש. כסיסמת root של מסד הנתונים MySQL, אנא השתמש בסיסמה שהגדרת במשתנה OTOBO_DB_ROOT_PASSWORD בקובץ .env שלך. אנא השאר את הערך db עבור שם המארח של MySQL ללא שינוי.

תהנו עם OTOBO!

הערה

כדי לעבור לספריית OTOBO, בתוך המכולה הפועלת, כדי לעבוד בשורת הפקודה כרגיל, ניתן להשתמש בפקודת Docker הבאה: docker-compose exec web bash.

מידע טכני נוסף

סעיף זה מספק מידע טכני נוסף על מה שקורה מאחורי הקלעים.

רשימת מכולות Docker

מכולה otobo_web_1

שרת האינטרנט OTOBO ביציאה פנימית 5000.

מכולה otobo_daemon_1

דמון OTOBO. דמון OTOBO מופעל ונבדק מעת לעת.

מכל otobo_db_1

הפעל את מסד הנתונים MariaDB ביציאה פנימית 3306.

מכולה otobo_elastic_1

Elasticsearch ביציאות הפנימיות 9200 ו-9300.

מכל otobo_redis_1

הפעל את Redis כשירות מטמון.

מכל אופציונלי otobo_nginx_1

הפעל את nginx כפרוקסי הפוך כדי לספק תמיכה ב-HTTPS.

סקירה כללית על אמצעי האחסון של Docker

נפחי Docker נוצרים במארח עבור נתונים קבועים. אלה מאפשרים להפעיל ולעצור את השירותים מבלי לאבד נתונים. יש לזכור כי מכולות הן זמניות ורק הנתונים בנפחים הם קבועים.

otobo_opt_otobo

מכיל /opt/otobo במכל web ו-daemon.

otobo_mariadb_data

מכיל /var/lib/mysql במכל db.

otobo_elasticsearch_data

מכיל /usr/share/elasticsearch/datal במכל elastic.

otobo_redis_data

מכיל נתונים עבור המכל redis.

otobo_nginx_ssl

מכיל את קבצי TLS, האישור והמפתח הפרטי, ויש לאתחל אותו באופן ידני.

משתני סביבה של Docker

בהוראות ביצענו רק תצורה מינימלית. אך הקובץ .env מאפשר להגדיר משתנים נוספים. להלן רשימה קצרה של משתני הסביבה החשובים ביותר. שימו לב כי תמונות הבסיס תומכות במשתני סביבה נוספים.

הגדרות MariaDB

OTOBO_DB_ROOT_PASSWORD

סיסמת השורש עבור MariaDB. הגדרה זו נדרשת להפעלת השירות db.

הגדרות Elasticsearch

Elasticsearch זקוק לכמה הגדרות עבור סביבות פרודוקטיביות. אנא קרא את https://www.elastic.co/guide/en/elasticsearch/reference/7.8/docker.html#docker-prod-prerequisites לקבלת מידע מפורט.

OTOBO_Elasticsearch_ES_JAVA_OPTS

דוגמה להגדרה: OTOBO_Elasticsearch_ES_JAVA_OPTS=-Xms512m -Xmx512m יש להתאים ערך זה לסביבת הייצור לערך של עד 4g.

הגדרות שרת האינטרנט

OTOBO_WEB_HTTP_PORT

הגדר במקרה שיציאת HTTP חורגת מהיציאה הסטנדרטית 80. כאשר HTTPS מופעל, יציאת HTTP תנותב ל-HTTPS.

הגדרות proxy אינטרנט Nginx

הגדרות אלה משמשות כאשר HTTPS מופעל.

OTOBO_WEB_HTTP_PORT

הגדר במקרה שיציאת HTTP חורגת מהיציאה הסטנדרטית 80. יפנה ל-HTTPS.

OTOBO_WEB_HTTPS_PORT

הגדר במקרה שיציאת HTTPS חורגת מהיציאה הסטנדרטית 443.

OTOBO_NGINX_SSL_CERTIFICATE

תעודת SSL עבור proxy האינטרנט nginx. דוגמה: OTOBO_NGINX_SSL_CERTIFICATE=/etc/nginx/ssl/acme.crt

OTOBO_NGINX_SSL_CERTIFICATE_KEY

מפתח SSL עבור proxy האינטרנט nginx. דוגמה: OTOBO_NGINX_SSL_CERTIFICATE_KEY=/etc/nginx/ssl/acme.key

הגדרות proxy אינטרנט Nginx עבור Kerberos

הגדרות אלה משמשות את Nginx כאשר Kerberos משמש לכניסה יחידה.

OTOBO_NGINX_KERBEROS_KEYTAB

קובץ keytab של Kerberos. ברירת המחדל היא /etc/krb5.keytab.

OTOBO_NGINX_KERBEROS_CONFIG

קובץ התצורה של Kerberos. ברירת המחדל היא /etc/krb5.conf, שנוצר בדרך כלל מ-krb5.conf.template.

OTOBO_NGINX_KERBEROS_SERVICE_NAME

שם שירות Kerberos. לא ברור היכן הגדרה זו משמשת בפועל.

OTOBO_NGINX_KERBEROS_REALM

Kerberos REALM. משמש ב- /etc/krb5.conf.

OTOBO_NGINX_KERBEROS_KDC

Kerberos kdc / בקר AD. משמש ב- /etc/krb5.conf.

OTOBO_NGINX_KERBEROS_ADMIN_SERVER

שרת הניהול Kerberos. משמש ב- /etc/krb5.conf.

OTOBO_NGINX_KERBEROS_DEFAULT_DOMAIN

תחום ברירת המחדל של Kerberos. משמש ב- /etc/krb5.conf.

NGINX_ENVSUBST_TEMPLATE_DIR

ספק ספריית תבניות תצורה מותאמת אישית של Nginx. מעניק גמישות נוספת.

הגדרות Docker Compose

הגדרות אלה משמשות את Docker Compose באופן ישיר.

COMPOSE_PROJECT_NAME

שם הפרויקט משמש כקידומת לנפחים ולמכולות. כברירת מחדל, קידומת זו מוגדרת כ-otobo, וכתוצאה מכך שמות המכולות הם otobo_web_1 ו-otobo_db_1. שנה שם זה כאשר ברצונך להפעיל יותר מאינסטנס אחד של OTOBO באותו שרת.

מפריד נתיב הרכב

מפריד לערך COMPOSE_FILE

COMPOSE_FILE

השתמש ב- docker-compose/otobo-base.yml כבסיס והוסף את קבצי ההרחבה הרצויים. לדוגמה, docker-compose/otobo-override-http.yml או docker-compose/otobo-override-https.yml.

OTOBO_IMAGE_OTOBO, OTOBO_IMAGE_OTOBO_ELASTICSEARCH, OTOBO_IMAGE_OTOBO_NGINX, …

משמש לציון תמונות Docker חלופיות. שימושי לבדיקת בנייה מקומית או לשימוש בגרסאות מעודכנות של התמונות.

נושאים מתקדמים

תצורה מותאמת אישית של proxy האינטרנט nginx

הקונטיינר otobo_nginx_1 מספק תמיכה ב-HTTPS על ידי הפעלת Nginx כפרוקסי הפוך. תמונת ה-Docker הפועלת בקונטיינר מורכבת מתמונת ה-Docker הרשמית של Nginx, https://hub.docker.com/_/nginx, יחד עם תצורה ספציפית של Nginx ל-OTOBO.

התצורה הספציפית המוגדרת כברירת מחדל של OTOBO נמצאת בתמונת Docker בכתובת /etc/nginx/template/otobo_nginx.conf.template. למעשה, זוהי רק תבנית לתצורה הסופית. ישנו תהליך, המסופק על ידי תמונת הבסיס של Nginx, המחליף את המאקרו בתבנית במשתנה הסביבה המתאים. תהליך זה פועל בעת הפעלת המכולה. בקובץ התבנית המוגדר כברירת מחדל, נעשה שימוש במאקרו הבאים:

OTOBO_NGINX_SSL_CERTIFICATE

להגדרת SSL.

OTOBO_NGINX_SSL_CERTIFICATE_KEY

להגדרת SSL.

OTOBO_NGINX_WEB_HOST

מארח HTTP המשמש באופן פנימי.

OTOBO_NGINX_WEB_PORT

יציאת HTTP המשמשת באופן פנימי.

ראה שלב 4. כדי ללמוד כיצד אפשרות תצורה זו שימשה להגדרת תעודת SSL.

כאשר המאקרוס הסטנדרטיים אינם מספיקים, ניתן להמשיך בהתאמה אישית. ניתן לעשות זאת על ידי החלפת תבנית התצורה המוגדרת כברירת מחדל בגרסה מותאמת אישית. מומלץ לא לשנות את התצורה במכל הרץ. במקום זאת, ראשית ניצור אמצעי אחסון קבוע המכיל את התצורה המותאמת אישית. לאחר מכן, נורה ל-otobo_nginx_1 לעגן את אמצעי האחסון החדש ולהשתמש בתצורה המותאמת אישית.

ראשית, יש ליצור את הכרך החדש. בפקודות לדוגמה אלה, אנו משתמשים בתבנית הקיימת כנקודת התחלה.

# stop the possibly running containers
docker_admin> cd /opt/otobo-docker
docker_admin> docker-compose down

# create a volume that is initially not connected to otobo_nginx_1
docker_admin> docker volume create otobo_nginx_custom_config

# find out where the new volume is located on the Docker host
docker_admin> otobo_nginx_custom_config_mp=$(docker volume inspect --format '{{ .Mountpoint }}' otobo_nginx_custom_config)
docker_admin> echo $otobo_nginx_custom_config_mp  # just a sanity check
docker_admin> ls $otobo_nginx_custom_config_mp    # another sanity check

# copy the default config into the new volume
docker_admin> docker create --name tmp-nginx-container rotheross/otobo-nginx-webproxy:latest-11_0
docker_admin> docker cp tmp-nginx-container:/etc/nginx/templates/otobo_nginx.conf.template $otobo_nginx_custom_config_mp # might need 'sudo'
docker_admin> ls -l $otobo_nginx_custom_config_mp/otobo_nginx.conf.template # just checking, might need 'sudo'
docker_admin> docker rm tmp-nginx-container

# adapt the file $otobo_nginx_custom_config_mp/otobo_nginx.conf.template to your needs
docker_admin> vim $otobo_nginx_custom_config_mp/otobo_nginx.conf.template

לאחר הגדרת הנפח, יש להפעיל את התצורה המותאמת. הנפח החדש מוגדר ב- docker-compose/otobo-nginx-custom-config.yml. לכן יש להוסיף קובץ זה ל- COMPOSE_FILE. לאחר מכן, יש להנחות את Nginx להשתמש בתצורה החדשה. זה נעשה על ידי הגדרת NGINX_ENVSUBST_TEMPLATE_DIR בסביבה. כדי להשיג זאת, הסר את ההערה או הוסף את השורות הבאות בקובץ .env שלך:

COMPOSE_FILE=docker-compose/otobo-base.yml:docker-compose/otobo-override-https.yml:docker-compose/otobo-nginx-custom-config.yml
NGINX_ENVSUBST_TEMPLATE_DIR=/etc/nginx/config/template-custom

ניתן לבדוק את תצורת Docker Compose המשנה באמצעות:

docker_admin> docker-compose config | more

לבסוף, ניתן להפעיל את הקונטיינרים שוב:

docker_admin> docker-compose up --detach

ראה גם את הסעיף ”שימוש במשתני סביבה בתצורת nginx (חדש בגרסה 1.19)“ ב-https://hub.docker.com/_/nginx.

כניסה יחידה באמצעות תמיכה ב-Kerberos ב-Nginx

תיאור קצר

כדי לאפשר אימות באמצעות Kerberos, אנא התבססו על קובץ הדוגמה .docker_compose_env_https_kerberos בקובץ .env שלכם. פעולה זו מפעילה את התצורה המיוחדת ב- *docker-compose/otobo-override-https-kerberos.yml. קובץ תצורת Docker Compose זה בוחר תמונת Nginx התומכת ב-Kerberos. הוא גם מעביר כמה הגדרות ספציפיות ל-Kerberos כערכי סביבה למכולה Nginx הפועלת. הגדרות אלה מפורטות לעיל.

כרגיל, ניתן לציין את הערכים עבור הגדרות אלה בקובץ .env. רוב ההגדרות הללו ישמשו כערכי החלפה עבור התבנית https://github.com/RotherOSS/otobo/blob/rel-11_0/scripts/nginx/kerberos/templates/krb5.conf.template . ההחלפה מתבצעת במהלך ההפעלה של המכולה. במכולה הפועלת, התצורה המותאמת תהיה זמינה ב- /etc/krb5.conf.

עדיין ניתן לספק קובץ /etc/krb5.conf ספציפי למשתמש. ניתן לעשות זאת על ידי התקנת אמצעי אחסון שמחליף את /etc/krb5.conf במכולה. ניתן להשיג זאת על ידי הגדרת OTOBO_NGINX_KERBEROS_CONFIG בקובץ .env והפעלת הוראת ההתקנה ב- docker-compose/otobo-override-https-kerberos.yml.

/etc/krb5.keytab הוא תמיד ספציפי להתקנה ולכן חייב להיות מותקן תמיד ממערכת המארח.

מדריך להתקנת Kerberos SSO

Kerberos Single Sign On

בחירת יציאות לא סטנדרטיות

כברירת מחדל, היציאות 443 ו-80 משרתות HTTPS ו-HTTP בהתאמה. ייתכנו מקרים שבהם אחת מהיציאות או שתיהן כבר בשימוש על ידי שירותים אחרים. במקרים אלה, ניתן לעקוף את היציאות המוגדרות כברירת מחדל על ידי ציון OTOBO_WEB_HTTP_PORT ו-OTOBO_WEB_HTTPS_PORT בקובץ .env.

דלג על הפעלת שירותים ספציפיים

ההגדרה הנוכחית של Docker Compose מפעילה חמש, שש שירותים כאשר HTTPS מופעל. אך ישנם מקרים שבהם אחד או יותר מהשירותים הללו אינם נחוצים. הדוגמה הבולטת ביותר היא כאשר מסד הנתונים לא צריך לפעול כשירות Docker, אלא כמסד נתונים חיצוני. למרבה הצער, אין אפשרות ייעודית ב-Docker Compose לדלג על שירותים ספציפיים. אך ניתן להשתמש באפשרות –scale למטרה זו. לכן, להתקנה עם מסד נתונים חיצוני ניתן להשתמש בפקודה הבאה:

docker_admin> docker-compose up --detach --scale db=0

כמובן שניתן להשיג את אותה המטרה גם על ידי עריכת הקובץ docker-compose/otobo-base.yml והסרת הגדרות השירות הרלוונטיות.

הכן התקנה לא מקוונת

אנא הורד את `הגרסה האחרונה של otobo-docker &lt;https://doc.otobo.org/manual/installation/11.0/en/content/installation-docker.html#clone-the-otobo-docker-repo&gt;`__ במערכת עם גישה לאינטרנט שבה מותקן docker. לאחר מכן, נווט לתיקייה הבאה otobo-docker/docker-compose.

cd otobo-docker/docker-compose

כעת תוכלו להריץ את הפקודה הבאה כדי להוריד את כל תמונות ה-Docker מקובץ ספציפי. בדוגמה שלי אני משתמש בקובץ otobo-base.yml.

for i in $(cat otobo-base.yml| grep image:| cut -d":" -f3,4 | sed -e "s/-//1" -e"s/\}//g"); do docker pull $i; docker save $i -o $(echo $i|sed "s/\//-/g").docker; done

לאחר מכן, התמונות (.docker) נמצאות בתיקיית docker-compose וניתן להעלותן למערכת היעד באמצעות, למשל, `SCP &lt;https://en.wikipedia.org/wiki/Secure_copy_protocol&gt;`__.

במערכת היעד הלא מקוונת, עבור לתיקיה שבה מאוחסנות תמונות ה-Docker. והזן את הפקודה הבאה כדי לייבא אותן אחת אחת.

בדוגמה הבאה אני מייבא את תמונת mariadb:

docker load --input mariadb:10.5.docker

התאמה אישית של OTOBO Docker Compose

במקום לערוך את הקבצים תחת docker-compose/ ולהסתכן במחיקת האפשרויות שלכם עם `העדכון הבא &lt;https://doc.otobo.org/manual/installation/11.0/en/content/updating-docker.html#updating-the-docker-compose-files&gt;`_ בתיקיית otobo-docker, מומלץ ליצור קובץ YAML נוסף שבו השירותים הספציפיים יוחלפו באפשרויות נוספות.

דוגמה נפוצה תהיה להפוך את מאגר הנתונים לנגיש מבחוץ דרך יציאה 3306. לשם כך, ניתן ליצור קובץ docker compose נוסף שייראה כך:

$ cat custom_db.yml
services:
  db:
    ports:
      - "0.0.0.0:3306:3306"

עכשיו עלינו להורות ל-docker-compose לכלול את הקובץ החדש שלנו. לשם כך, עליך להוסיף את קובץ ה-YAML שלך למשתנה COMPOSE_FILE בקובץ .env, לדוגמה:

COMPOSE_FILE=docker-compose/otobo-base.yml:docker-compose/otobo-override-http.yml:custom_db.yml

כעת נוכל להשתמש ב-docker-compose כדי ליצור מחדש את הקונטיינר שלנו.

$ docker-compose stop # if otobo is running
$ docker-compose up -d

באמצעות הליך זה תוכלו להתאים אישית כל שירות או נפח.

התאמה אישית של תמונת OTOBO Docker

ניתן לבצע התאמות רבות בנפח החיצוני otobo_opt_otobo, המתאים לספרייה /opt/otobo בתמונת Docker. זה עובד, למשל, עבור מודולי Perl מקומיים שניתן להתקין ב- /opt/otobo/local. להלן דוגמה להתקנת מודול CPAN לא מאוד שימושי Acme::123.

$ docker exec -it ${COMPOSE_PROJECT_NAME:=otobo}_web_1 bash
otobo@ce36ff89e637:~$ pwd
/opt/otobo
otobo@ce36ff89e637:~$ cpanm -l local Acme::123
--> Working on Acme::123
Fetching http://www.cpan.org/authors/id/N/NA/NATHANM/Acme-123-0.04.zip ... OK
Configuring Acme-123-0.04 ... OK
Building and testing Acme-123-0.04 ... OK
Successfully installed Acme-123-0.04
1 distribution installed
otobo@ce36ff89e637:~$

היתרון בגישה זו הוא שאין צורך לשנות את תמונת ה-Docker עצמה.

התקנת חבילות Debian נוספות היא מעט יותר מורכבת. גישה אחת היא ליצור קובץ Dockerfile מותאם אישית ולהשתמש בתמונת OTOBO כתמונת בסיס. גישה אחרת היא ליצור תמונה שונה ישירות ממכולה פועלת. ניתן לעשות זאת באמצעות הפקודה docker commit, https://docs.docker.com/engine/reference/commandline/commit/. תיאור מפורט של תהליך זה ניתן למצוא בכתובת https://phoenixnap.com/kb/how-to-commit-changes-to-docker-image.

אך בגישה האחרונה יש שני מכשולים שיש להתגבר עליהם. ראשית, התמונה otobo פועלת כברירת מחדל כמשתמש otobo עם UID 1000. הבעיה היא שמשתמש otobo אינו רשאי להתקין חבילות מערכת. לפיכך, החלק הראשון של הפתרון הוא להעביר את האפשרות –user root בעת הפעלת התמונה. אולם, המכשול השני הוא שסקריפט נקודת הכניסה המוגדר כברירת מחדל /opt/otobo_install/entrypoint.sh נסגר מיד כאשר הוא נקרא כ-root. הסיבה להחלטה העיצובית הזו היא שיש למנוע הפעלה בשוגג כ-root. לכן, החלק השני של הפתרון הוא לציין סקריפט נקודת כניסה שונה, שאינו מתייחס לזהות המשתמש. כך מתקבלים הפקודות הבאות, שבהן אנו מוסיפים עוגיות מזל ל-otobo:

משוך תמונה מתויגת OTOBO, אם עדיין אין לנו אותה, ובדוק אם התמונה כבר מספקת עוגיות מזל:

$ docker run rotheross/otobo:rel-11_0_2 /usr/games/fortune
/opt/otobo_install/entrypoint.sh: line 57: /usr/games/fortune: No such file or directory

הוסף עוגיות מזל למכל בעל שם המריץ את תמונת OTOBO המקורית. פעולה זו מתבצעת במפגש אינטראקטיבי כמשתמש root:

$ docker run -it --user root --entrypoint /bin/bash --name otobo_orig rotheross/otobo:rel-11_0_2
root@50ac203409eb:/opt/otobo# apt update
root@50ac203409eb:/opt/otobo# apt install fortunes
root@50ac203409eb:/opt/otobo# exit
$ docker ps -a | head

צור תמונה מהקונטיינר המושעה ותן לה שם. קח בחשבון שיש לשחזר את המשתמש והסקריפט של נקודת הכניסה המוגדרים כברירת מחדל:

$ docker commit -c 'USER otobo'  -c 'ENTRYPOINT ["/opt/otobo_install/entrypoint.sh"]' otobo_orig otobo_with_fortune_cookies

לבסוף, אנו יכולים לבדוק שוב:

$ docker run otobo_with_fortune_cookies /usr/games/fortune
A platitude is simply a truth repeated till people get tired of hearing it.
                -- Stanley Baldwin

ניתן לציין את התמונה המעובדת בקובץ .env שלך, ולאחר מכן להשתמש בה לשם הנאה ורווח.

בניית תמונות מקומיות

הערה

בדרך כלל, בניית תמונות Docker באופן מקומי נדרשת רק במהלך הפיתוח. מקרים אחרים שבהם יש צורך בכך הם כאשר יש להשתמש בתמונות בסיס עדכניות יותר לצורך התקנה, או כאשר יש להוסיף פונקציונליות נוספת לתמונות.

קובצי ה-Docker הדרושים ליצירת תמונות Docker באופן מקומי הם חלק ממאגר ה-git https://github.com/RotherOSS/otobo:

otobo.web.dockerfile

otobo.nginx.dockerfile

otobo.elasticsearch.dockerfile

הסקריפט ליצירת התמונות בפועל הוא bin/docker/build_docker_images.sh.

docker_admin> cd /opt
docker_admin> git clone https://github.com/RotherOSS/otobo.git
docker_admin> cd otobo
docker_admin> # checkout the wanted branch. e.g. git checkout rel-11_0
docker_admin> # modify the docker files if necessary
docker_admin> bin/docker/build_docker_images.sh
docker_admin> docker image ls

תמונות ה-Docker שנבנו באופן מקומי מתויגות כ-local-&lt;OTOBO_VERSION&gt; באמצעות הגרסה שהוגדרה בקובץ RELEASE.

לאחר בניית התמונות המקומיות, ניתן לחזור לספריית docker-compose. התמונות המקומיות מוצהרות על ידי הגדרת OTOBO_IMAGE_OTOBO, OTOBO_IMAGE_OTOBO_ELASTICSEARCH, OTOBO_IMAGE_OTOBO_NGINX ב-.env.

התקנה אוטומטית

במקום לעבור את http://yourIPorFQDN/otobo/installer.pl, אפשר לקחת קיצור דרך. זה שימושי להפעלת מערך הבדיקות בהתקנה חדשה.

אזהרה

docker-compose down -v יסיר את כל ההגדרות והנתונים הקודמים.

docker_admin> docker-compose down -v
docker_admin> docker-compose up --detach
docker_admin> docker-compose stop daemon
docker_admin> docker-compose exec web bash\
-c "rm -f Kernel/Config/Files/ZZZAAuto.pm ; bin/docker/quick_setup.pl --db-password otobo_root"
docker_admin> docker-compose exec web bash\
-c "bin/docker/run_test_suite.sh"
.......
docker_admin> docker-compose start daemon

רשימת פקודות שימושיות

Docker

docker system prune -a ניקוי מערכת (מסיר את כל התמונות, המכולות, הנפחים והרשתות שאינם בשימוש)

גרסת docker הצג גרסה

docker build --tag otobo --file=otobo.web.Dockerfile . בנה תמונה

docker run --publish 80:5000 otobo הפעל את התמונה החדשה

docker run -it -v opt_otobo:/opt/otobo otobo bash התחבר לתמונה החדשה

docker run -it -v opt_otobo:/opt/otobo --entrypoint bash otobo נסה זאת במקרה ש-entrypoint.sh פגום.

docker ps מציג תמונות פועלות

תמונות דוקר מציג תמונות זמינות

docker volume ls רשימת אמצעי אחסון

docker volume inspect otobo_opt_otobo לבדוק אמצעי אחסון

docker volume inspect --format &#x27;{{ .Mountpoint }}&#x27; otobo_nginx_ssl קבל נקודת חיבור של אמצעי אחסון

docker volume rm tmp_volume הסרת אמצעי אחסון

docker inspect &lt;container&gt; לבדוק מכולה

docker save --output otobo.tar otobo:latest-11_0 &amp;&amp; tar -tvf otobo.tar רשימת קבצים בתמונה

docker exec -it nginx-server nginx -s reload טען מחדש את nginx

Docker Compose

docker-compose config בדוק והצג את התצורה

docker-compose ps מציג את הקונטיינרים הפועלים

docker-compose exec nginx nginx -s reload reload nginx

משאבים

לסיום, הנה אוסף קישורים סובייקטיבי ביותר.

מידע כללי ומדריכים

`Perl Maven: התחל לעבוד עם Perl ב-Docker &lt;https://perlmaven.com/getting-started-with-perl-on-docker&gt;`_

`שיטות עבודה מומלצות עבור Dockerfile &lt;https://www.docker.com/blog/intro-guide-to-dockerfile-best-practices/&gt;`_

`סביבה &lt;https://vsupalov.com/docker-arg-env-variable-guide/&gt;`_

טיפים ורמזים

`נקה תמונות שאינן בשימוש &lt;https://forums.docker.com/t/command-to-remove-all-unused-images&gt;`_

`כתובת ה-IP של מארח Docker &lt;https://nickjanetakis.com/blog/docker-tip-65-get-your-docker-hosts-ip-address-from-in-a-container&gt;`_

Self signed certificate

פתרון בעיות

`ביטול מטמון Docker &lt;https://stackoverflow.com/questions/34814669/when-does-docker-image-cache-invalidation-occur&gt;`_

`שימוש ב-tcpdump &lt;https://rmoff.net/2019/11/29/using-tcpdump-with-docker/&gt;`_

`בדוק בנייה שנכשלה &lt;https://pythonspeed.com/articles/debugging-docker-build/&gt;`_

OTOBO Installation on Ubuntu

This chapter describes the installation and basic configuration of the central OTOBO framework on Ubuntu.

הערה

Currently only Ubuntu 22.04 (noble) has been tested and verified. However the configuration may also work on other versions.

Follow the detailed steps in this chapter to install OTOBO on your Ubuntu server. You can then use its web interface to login and administer the system.

הערה

We recommend Docker and Docker Compose for the OTOBO installation because its configuration works independent of the base operating system (Ubuntu, SUSE, etc.). By using the provided Docker images, all recommended dependencies (such as Elasticsearch, Redis Cache, etc.) are installed and configured automatically. Updates are thus greatly simplified and the performance may improve. You can find the instructions for Docker-based installation at: https://doc.otobo.org/manual/installation/11.0/en/content/installation/installation-docker.html .

שלב 1: פתח את האריזה והתקן את OTOBO

הורד את הגרסה האחרונה של otobo מ-https://ftp.otobo.org/pub/otobo/. פתח את ארכיון המקור (למשל, באמצעות tar) לספרייה /opt/otobo-install:

root> mkdir /opt/otobo-install && mkdir /opt/otobo                      # Create a temporary install directory
root> cd /opt/otobo-install                                             # Change into the update directory
root> wget https://ftp.otobo.org/pub/otobo/otobo-latest-11.0.tar.gz     # Download the latest OTOBO 11 release
root> tar -xzf otobo-latest-11.0.tar.gz                                 # Unzip OTOBO
root> cp -r otobo-11.x.x/* /opt/otobo                                     # Copy the new otobo directory to /opt/otobo

שלב 2: התקן תוכניות נוספות ומודולי Perl

השתמש בסקריפט הבא כדי לקבל סקירה כללית של כל מודולי CPAN המותקנים והנדרשים ותלות חיצונית אחרת.

הערה

On Debian systems, like Ubuntu, you may need to manually install some perl packages:

apt-get install -y libarchive-zip-perl libtimedate-perl libdatetime-perl libconvert-binhex-perl libcgi-psgi-perl libdbi-perl libdbix-connector-perl libfile-chmod-perl liblist-allutils-perl libmoo-perl libnamespace-autoclean-perl libnet-dns-perl libnet-smtp-ssl-perl libpath-class-perl libsub-exporter-perl libtemplate-perl libtext-trim-perl libtry-tiny-perl libxml-libxml-perl libyaml-libyaml-perl libdbd-mysql-perl libapache2-mod-perl2 libmail-imapclient-perl libauthen-sasl-perl libauthen-ntlm-perl libjson-xs-perl libtext-csv-xs-perl libpath-class-perl libplack-perl libplack-middleware-header-perl libplack-middleware-reverseproxy-perl libencode-hanextra-perl libio-socket-ssl-perl libnet-ldap-perl libcrypt-eksblowfish-perl libxml-libxslt-perl libxml-parser-perl libconst-fast-perl

root> perl /opt/otobo/bin/otobo.CheckModules.pl -list
Checking for Perl Modules:
  o Archive::Tar.....................ok (v1.90)
  o Archive::Zip.....................ok (v1.37)
  o Crypt::Eksblowfish::Bcrypt.......ok (v0.009)
...

הערה

Please note that OTOBO requires a working Perl installation with all core modules such as the module version. These modules are not explicitly checked by the script.

כדי להתקין את החבילות הנדרשות והאופציונליות, ניתן להשתמש ב-CPAN או במנהל החבילות של הפצת לינוקס שלך.

הפעל פקודה זו כדי לקבל פקודת התקנה להתקנת התלות החסרות:

root> /opt/otobo/bin/otobo.CheckModules.pl --inst

הערה

There are a number of optional or alternative modules which can be installed, mostly for more customized versions of OTOBO. Calling CheckModules.pl without any argument will list a complete listing of packages required for full functionality.

שלב 3: צור את המשתמש OTOBO

צור משתמש ייעודי עבור OTOBO בתוך הקבוצה שלו:

root> useradd -r -U -d /opt/otobo -c 'OTOBO user' otobo -s /bin/bash

שלב 4: הפעל את קובץ התצורה המוגדר כברירת מחדל

קובץ התצורה של OTOBO נמצא ב-$OTOBO_HOME/Kernel/Config.pm.dist. עליך להפעיל אותו על ידי העתקתו ללא סיומת הקובץ .dist.

root> cp /opt/otobo/Kernel/Config.pm.dist /opt/otobo/Kernel/Config.pm

Step 5: Configure systemd services for OTOBO

The installation package provides systemd unit files. To make sure that these files are visible to the system they need to be copied to a valid systemd directory. In this example we will be using /etc/systemd/system.

root> cp /opt/otobo/scripts/systemd/* /etc/systemd/system/
root> systemctl daemon-reload

After the daemon-reload all services should be controllable using systemd control service like systemctl.

Step 6: Configure the Nginx Web Server

OTOBO’s webserver listens on localhost on port 5000. In order to make it accessible from outside, you need to configure a reverse proxy.

Install the Nginx web server:

root> apt install nginx

Nginx installations commonly have a conf.d directory included. It may be found at /etc/nginx. Example configuration is provided at /opt/otobo/scripts/nginx-vhost-*.include.conf.

Configure Nginx without SSL support

In most cases no further editing of the template is required. The new configuration needs to be activated, subsequently.

root> cp /opt/otobo/scripts/nginx-vhost-80.include.conf /etc/nginx/conf.d/nginx.conf
root> systemctl restart nginx

It is also required to enable port 80 on the firewall.

root> firewall-cmd --permanent --add-service=http
root> firewall-cmd --reload

Configure Nginx with SSL support

If you want to enable SSL support, you need to copy the SSL configuration file.

root> cp /opt/otobo/scripts/nginx-vhost-443.include.conf /etc/nginx/conf.d/nginx.conf
root> cd /etc/nginx/
root> mkdir snippets
root> cp /opt/otobo/scripts/nginx/snippets/ssl-params.conf snippets/

Please edit the files and add the required information like SSL certificate storage path.

כעת תוכל להפעיל מחדש את שרת האינטרנט כדי לטעון את הגדרות התצורה החדשות. ברוב המערכות תוכל להשתמש בפקודה הבאה כדי לעשות זאת:

root> systemctl restart nginx

It is also required to enable port 80 and 443 on the firewall (if configured).

root> ufw allow "Nginx Full"

שלב 6: הגדר הרשאות קבצים

אנא בצע את הפקודה הבאה כדי להגדיר את הרשאות הקבצים והספריות עבור OTOBO. התוכנה תנסה לזהות את הגדרות המשתמש והקבוצה הנכונות הדרושות להתקנה שלך.

root> /opt/otobo/bin/otobo.SetPermissions.pl --otobo-user=otobo --web-group=otobo

שלב 7: הגדרת מסד הנתונים

OTOBO requires a database to persist data. It is recommended to use the MySQL or MariaDB package, which will be delivered with your Linux system. However, an external database may be used but latency may increase.

Packages for a local database may be obtained from the system’s package manager. Find the commands needed to set up MariaDB below.

root> apt-get install mariadb-server

After installing the database server you need configure it.

In order to use the OTOBO installer the password for the root user has to be set:

root> mariadb -u root
sql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewRootPassword';
sql> quit

הערה

The following configuration settings are minimum requirements for MySQL setups. Please add the following lines to the MySQL Server configuration file /etc/mysql/mariadb.conf.d/50-server.cnf under the [mysqld] section:

max_allowed_packet   = 64M
innodb_log_file_size = 256M

Also add the following lines to the configuration file /etc/mysql/conf.d/mysqldump.cnf under the [mysqldump] section:

max_allowed_packet   = 64M

למטרות ייצור, אנו ממליצים להשתמש בכלי mysqltuner כדי למצוא את ההגדרה המושלמת. ניתן להוריד את הסקריפט מ-github https://github.com/major/MySQLTuner-perl או להתקין אותו במערכות Debian או Ubuntu באמצעות מנהל החבילות:

root> apt-get install mysqltuner

לאחר ההתקנה, הפעל את הסקריפט:

root> mysqltuner --user root --pass NewRootPassword

שלב 8: הגדרת Elasticsearch

OTOBO ממליץ על התקנה פעילה של Elasticsearch לצורך חיפוש מהיר. הדרך הקלה ביותר היא להגדיר את Elasticsearch באותו מארח כמו OTOBO ולקשר אותו ליציאה המוגדרת כברירת מחדל.

אנא עקבו אחר מדריך ההתקנה המופיע בכתובת https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html.

התקנת Elasticsearch בהפצת לינוקס אחרת

אנא עקבו אחר מדריך ההתקנה המופיע בכתובת https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html.

התקנת מודול Elasticsearch

בנוסף, OTOBO דורש התקנת תוספים ב-Elasticsearch:

root> /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch ingest-attachment
root> /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch analysis-icu

תצורת Elasticsearch

In order to ensure error-free operation, you should adjust the jvm heap space for larger OTOBO systems. Please adjust the settings in the file /etc/elasticsearch/jvm.options. You should always set the min and max JVM heap size to the same value. For example, to set the heap to 512 MB, set:

-Xms512m
-Xmx512m

In our tests, a value between 512 MB and 4 GB for medium-sized installations has proven to be the best.

הערה

למידע נוסף, ראה ”https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html“.

כעת תוכלו להפעיל מחדש את שרת Elasticsearch כדי לטעון את הגדרות התצורה החדשות. ברוב המערכות תוכלו להשתמש בפקודה הבאה כדי לעשות זאת:

root> systemctl restart elasticsearch

שלב 9: תצורת מערכת בסיסית

Before starting with the initial web configuration you need to start and enable the otobo web service via systemd.

root> systemctl enable --now otobo-web.service

אנא השתמש במתקין האינטרנט בכתובת http://localhost/otobo/installer.pl (החלף את ”localhost“ בשם המארח של OTOBO שלך) כדי להגדיר את מסד הנתונים ואת הגדרות המערכת הבסיסיות, כגון חשבונות דואר אלקטרוני.

שלב 10: כניסה ראשונה

כעת אתה מוכן להתחבר למערכת שלך בכתובת http://localhost/otobo/index.pl כמשתמש root@localhost עם הסיסמה שנוצרה (ראה לעיל).

שלב 11: הפעל את הדמון OTOBO

OTOBO daemon is responsible for handling any asynchronous and recurring tasks in OTOBO. The daemon also handles all GenericAgent jobs and must be started from the OTOBO user.

otobo> systemctl enable --now otobo-daemon.service

OTOBO daemon is responsible for handling any asynchronous and recurring tasks in OTOBO. The daemon also handles all GenericAgent jobs and must be started from the OTOBO user.

otobo> systemctl enable --now otobo-daemon.service

שלב 13: הגדרת השלמת אוטומטית של Bash (אופציונלי)

כל פעולות שורת הפקודה הרגילות של OTOBO מתבצעות באמצעות ממשק הקונסולה של OTOBO. זה מספק השלמה אוטומטית עבור מעטפת bash, מה שמקל מאוד על מציאת הפקודה והאפשרויות הנכונות.

ניתן להפעיל את השלמת האוטומטית של bash על ידי התקנת החבילה bash-completion. היא תזהה ותטען באופן אוטומטי את הקובץ /opt/otobo/.bash_completion עבור המשתמש otobo.

לאחר הפעלה מחדש של ה-shell, ניתן פשוט להקליד פקודה זו ולאחר מכן ללחוץ על מקש ה-TAB, והיא תציג את כל הפקודות הזמינות:

otobo> /opt/otobo/bin/otobo.Console.pl

אם תקלידו כמה תווים משם הפקודה, מקש ה-TAB יציג את כל הפקודות התואמות. לאחר הקלדת הפקודה המלאה, כל האפשרויות והארגומנטים האפשריים יוצגו בלחיצה על מקש ה-TAB.

הערה

אם אתה נתקל בבעיות, אתה יכול להריץ את השורה הבאה כמשתמש otobo ולהוסיף אותה ל-~/.bashrc כדי להריץ את הפקודות מהקובץ.

source /opt/otobo/.bash_completion

שלב 14: מידע נוסף

We advise you to read the OTOBO כוונון ביצועים chapter.

OTOBO Installation on RHEL

This chapter describes the installation and basic configuration of the central OTOBO framework on a Red Hat Enterprise Linux system.

הערה

Currently only RHEL 9.7 has been tested and verified. However the configuration may also work on other versions.

Follow the detailed steps in this chapter to install OTOBO on your RHEL server. You can then use its web interface to login and administer the system.

הערה

We recommend Docker and Docker Compose for the OTOBO installation because its configuration works independent of the base operating system (Ubuntu, SUSE, etc.). By using the provided Docker images, all recommended dependencies (such as Elasticsearch, Redis Cache, etc.) are installed and configured automatically. Updates are thus greatly simplified and the performance may improve. You can find the instructions for Docker-based installation at: https://doc.otobo.org/manual/installation/11.0/en/content/installation/installation-docker.html .

הכנה: השבת את SELinux כאשר הוא מותקן ומופעל.

הערה

RHEL employs SELinux. However, OTOBO will not work correctly on the default ruleset. If you want to use OTOBO with SELinux enabled, you will have to configure the SELinux permission policy for this application manually.

נסה את הפקודות sestatus ו-getenforce כאשר אינך בטוח אם SELinux מותקן ומופעל במערכת שלך.

הפקודה sestatus מחזירה את מצב SELinux ואת מדיניות SELinux הנמצאת בשימוש. מצב SELinux: enabled מוחזר כאשר SELinux מופעל. מצב נוכחי: enforcing מוחזר כאשר SELinux פועל במצב אכיפה. מדיניות מקובץ התצורה: targeted מוחזר כאשר מדיניות SELinux targeted נמצאת בשימוש.

Here’s how to switch off SELinux for RHEL/CentOS/Fedora.

Configure SELINUX=permissive in the /etc/selinux/config file:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these two values:
#       targeted - Targeted processes are protected,
#       mls - Multi Level Security protection.
SELINUXTYPE=targeted

הפעל מחדש את המערכת. לאחר ההפעלה מחדש, ודא שהפקודה getenforce מחזירה את התוצאה Disabled:

root> getenforce
Disabled

שלב 1: פתח את האריזה והתקן את OTOBO

הורד את הגרסה האחרונה של otobo מ-https://ftp.otobo.org/pub/otobo/. פתח את ארכיון המקור (למשל, באמצעות tar) לספרייה /opt/otobo-install:

root> mkdir /opt/otobo-install && mkdir /opt/otobo                      # Create a temporary install directory
root> cd /opt/otobo-install                                             # Change into the update directory
root> wget https://ftp.otobo.org/pub/otobo/otobo-latest-11.0.tar.gz     # Download the latest OTOBO 11 release
root> tar -xzf otobo-latest-11.0.tar.gz                                 # Unzip OTOBO
root> cp -r otobo-11.x.x/* /opt/otobo                                   # Copy the new otobo directory to /opt/otobo

Step 2: Create the OTOBO User

צור משתמש ייעודי עבור OTOBO בתוך הקבוצה שלו:

root> useradd -r -U -d /opt/otobo -c 'OTOBO user' otobo -s /bin/bash

Step 3: Install Additional Programs and Perl Modules

OTOBO requires a working Perl installation with all core modules such as the module version.

root> subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms
root> dnf install -y wget perl perl-DBD-MySQL libpq-devel libxslt-devel libxml2-devel graphviz-devel unixODBC-devel xz-devel

Required Perl modules may be installed from CPAN. However, in more confined environments, access to the internet may be restricted. Hence, one may download a prebuilt set of Perl packages (Option B):

Option A: Install packages from CPAN

To install the required packages from CPAN:

root> dnf install -y perl-App-cpanminus                                                                   # Installs the cpanm package manager
root> cpanm --cpanfile /opt/otobo/cpanfile.plackup --notest --installdeps /opt/otobo/install/local        # Installs all required packages

Option B: Deploy prebuilt packages

root> cd /opt/otobo                                                                       # Change into your OTOBO directory
root> wget https://ftp.otobo.org/pub/otobo/rhel/otobo-deps-11.0-latest-rhel-9.7.tar.gz    # Download all required packages
root> tar -xzf otobo-deps-11.0-rhel-9.7.tar.gz                                            # Unzip packages
root> echo 'export PERL5LIB="/opt/otobo/install/local/lib/perl5"' >> /opt/otobo/.profile  # Add additional library path to otobo user
root> export PERL5LIB="/opt/otobo/install/local/lib/perl5"

You should now see a install folder containing all required Perl packages. You may run the following command to verify the installation:

root> perl /opt/otobo/bin/otobo.CheckModules.pl -list

שלב 4: הפעל את קובץ התצורה המוגדר כברירת מחדל

קובץ התצורה של OTOBO נמצא ב-$OTOBO_HOME/Kernel/Config.pm.dist. עליך להפעיל אותו על ידי העתקתו ללא סיומת הקובץ .dist.

root> cp /opt/otobo/Kernel/Config.pm.dist /opt/otobo/Kernel/Config.pm

Step 5: Configure systemd services for OTOBO

The installation package provides systemd unit files. To make sure that these files are visible to the system they need to be copied to a valid systemd directory. In this example we will be using /etc/systemd/system.

root> cp /opt/otobo/scripts/systemd/* /etc/systemd/system/
root> systemctl daemon-reload

After the daemon-reload all services should be controllable using systemd control service like systemctl.

Step 6: Configure the Nginx Web Server

OTOBO’s webserver listens on localhost on port 5000. In order to make it accessible from outside, you need to configure a reverse proxy.

Install the Nginx web server:

root> dnf install nginx

Nginx installations commonly have a conf.d directory included. It may be found at /etc/nginx. Example configuration is provided at /opt/otobo/scripts/nginx-vhost-*.include.conf.

Configure Nginx without SSL support

In most cases no further editing of the template is required. The new configuration needs to be activated, subsequently.

root> cp /opt/otobo/scripts/nginx-vhost-80.include.conf /etc/nginx/conf.d/nginx.conf
root> systemctl restart nginx

It is also required to enable port 80 on the firewall.

root> firewall-cmd --permanent --add-service=http
root> firewall-cmd --reload

Configure Nginx with SSL support

If you want to enable SSL support, you need to copy the SSL configuration file.

root> cp /opt/otobo/scripts/nginx-vhost-443.include.conf /etc/nginx/conf.d/nginx.conf
root> cd /etc/nginx/
root> mkdir snippets
root> cp /opt/otobo/scripts/nginx/snippets/ssl-params.conf snippets/

Please edit the files and add the required information like SSL certificate storage path.

כעת תוכל להפעיל מחדש את שרת האינטרנט כדי לטעון את הגדרות התצורה החדשות. ברוב המערכות תוכל להשתמש בפקודה הבאה כדי לעשות זאת:

root> systemctl restart nginx

It is also required to enable port 80 and 443 on the firewall.

root> firewall-cmd --permanent --add-service={http,https}
root> firewall-cmd --reload

Step 7: Set File Permissions

אנא בצע את הפקודה הבאה כדי להגדיר את הרשאות הקבצים והספריות עבור OTOBO. התוכנה תנסה לזהות את הגדרות המשתמש והקבוצה הנכונות הדרושות להתקנה שלך.

root> /opt/otobo/bin/otobo.SetPermissions.pl --otobo-user=otobo --web-group=otobo
root> chmod +x /opt/otobo/install/local/bin/*

Step 8: Setup the Database

OTOBO requires a database to persist data. It is recommended to use the MySQL or MariaDB package, which will be delivered with your Linux system. However, an external database may be used but latency may increase.

Packages for a local database may be obtained from the system’s package manager. Find the commands needed to set up MySQL below.

root> dnf install mariadb-server                # 'dnf install mysql-server' for mysql installations
root> systemctl enable --now mysqld.service

After installing the database server you need configure it.

In MySQL higher or equal version 5.7 a new authentication module is active, and it is not possible to use the OTOBO web installer for database creation. Please login to the mysql console and set a different authentication module and password for the user root if this is the case:

root> mysql -u root
sql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewRootPassword';

לאחר התקנת OTOBO ניתן לשנות שוב את מודול האימות, במידת הצורך.

הערה

The following configuration settings are minimum requirements for MariaDB/MySQL setups. Please add the following lines to the Database Server configuration file /etc/my.cnf under the [mysqld] section:

max_allowed_packet   = 64M
innodb_log_file_size = 256M

In order to apply these settings, you need to restart the MySQL service.

root> systemctl restart mysqld.service

Step 9: Setup Elasticsearch

OTOBO ממליץ על התקנה פעילה של Elasticsearch לצורך חיפוש מהיר. הדרך הקלה ביותר היא להגדיר את Elasticsearch באותו מארח כמו OTOBO ולקשר אותו ליציאה המוגדרת כברירת מחדל.

אנא עקבו אחר מדריך ההתקנה המופיע בכתובת https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html.

התקנת מודול Elasticsearch

בנוסף, OTOBO דורש התקנת תוספים ב-Elasticsearch:

root> /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch ingest-attachment
root> /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch analysis-icu

תצורת Elasticsearch

Elasticsearch מציע מגוון רחב של אפשרויות ואופציות תצורה.

In order to ensure error-free operation, you should adjust the jvm heap space for larger OTOBO systems. Please adjust the settings in the file /etc/elasticsearch/jvm.options. You should always set the min and max JVM heap size to the same value. For example, to set the heap to 512 MB, set:

-Xms512m
-Xmx512m

In our tests, a value between 512 MB and 4 GB for medium-sized installations has proven to be the best.

הערה

למידע נוסף, ראה ”https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html“.

כעת תוכלו להפעיל מחדש את שרת Elasticsearch כדי לטעון את הגדרות התצורה החדשות. ברוב המערכות תוכלו להשתמש בפקודה הבאה כדי לעשות זאת:

root> systemctl restart elasticsearch

Step 10: Basic System Configuration

Before starting with the initial web configuration you need to start and enable the otobo web service via systemd.

root> systemctl enable --now otobo-web.service

After that use the web installer at http://localhost/otobo/installer.pl (replace ”localhost“ with your OTOBO hostname or server IP) to set up your database and basic system settings such as email accounts.

Step 11: First Login

כעת אתה מוכן להתחבר למערכת שלך בכתובת http://localhost/otobo/index.pl כמשתמש root@localhost עם הסיסמה שנוצרה (ראה לעיל).

Step 12: Start the OTOBO Daemon

OTOBO daemon is responsible for handling any asynchronous and recurring tasks in OTOBO. The daemon also handles all GenericAgent jobs and must be started from the OTOBO user.

otobo> systemctl enable --now otobo-daemon.service

שלב 13: הגדרת השלמת אוטומטית של Bash (אופציונלי)

כל פעולות שורת הפקודה הרגילות של OTOBO מתבצעות באמצעות ממשק הקונסולה של OTOBO. זה מספק השלמה אוטומטית עבור מעטפת bash, מה שמקל מאוד על מציאת הפקודה והאפשרויות הנכונות.

ניתן להפעיל את השלמת האוטומטית של bash על ידי התקנת החבילה bash-completion. היא תזהה ותטען באופן אוטומטי את הקובץ /opt/otobo/.bash_completion עבור המשתמש otobo.

לאחר הפעלה מחדש של ה-shell, ניתן פשוט להקליד פקודה זו ולאחר מכן ללחוץ על מקש ה-TAB, והיא תציג את כל הפקודות הזמינות:

otobo> /opt/otobo/bin/otobo.Console.pl

אם תקלידו כמה תווים משם הפקודה, מקש ה-TAB יציג את כל הפקודות התואמות. לאחר הקלדת הפקודה המלאה, כל האפשרויות והארגומנטים האפשריים יוצגו בלחיצה על מקש ה-TAB.

הערה

אם אתה נתקל בבעיות, אתה יכול להריץ את השורה הבאה כמשתמש otobo ולהוסיף אותה ל-~/.bashrc כדי להריץ את הפקודות מהקובץ.

source /opt/otobo/.bash_completion

שלב 14: מידע נוסף

We advise you to read the OTOBO כוונון ביצועים chapter.

Migration from OTRS 6 or OTRS 7 / ((OTRS)) Community Edition to OTOBO

אזהרה

Please migrate your OTRS to OTOBO version 10.1 first and then upgrade your OTOBO to the latest stable release.

ברוכים הבאים ותודה שבחרתם ב-OTOBO!

OTRS, ((OTRS)) Community Edition ו-OTOBO הם מאוד מקיפים וגמישים ביישומם. לכן, כל מעבר ל-OTOBO דורש הכנה יסודית ואולי גם קצת עבודה נוספת.

אנא הקדישו זמן למעבר ופעלו על פי ההוראות שלב אחר שלב.

אם יש לך בעיה או שאלה, אל תתייאש. התקשר למוקד התמיכה שלנו, שלח דוא“ל או פרסם את שאלתך בפורום הקהילה של OTOBO בכתובת https://forum.otobo.org/. אנו נמצא דרך לעזור לך!

הערה

After the migration the data previously available in OTRS will be available in OTOBO. We do not modify any data of the OTRS installation during the migration.

Overview over the Supported Migration Scenarios

באמצעות ממשק ההעברה OTOBO ניתן ליישם את אסטרטגיות ההעברה הבאות:

האסטרטגיה הכללית להגירה.

זוהי הדרך הרגילה לבצע העברה. יש הרבה שילובים שונים שתומכים בזה:

שנה שרת:

העבר ובמקביל עבר לשרת יישומים חדש.

שרתים נפרדים ליישומים ולרשת:

הבחירה היא שלך אם ברצונך להפעיל את שרת היישומים ושרת מסד הנתונים על אותו מארח או כל אחד מהם על מארח ייעודי. בחירה זו אינה תלויה בהגדרה הקודמת ב-OTRS / ((OTRS)) Community Edition.

מאגרי מידע שונים:

העבר מכל אחת מהמסדי נתונים הנתמכים לכל מסד נתונים נתמך אחר.

מערכת הפעלה שונה:

החלף מכל מערכת הפעלה נתמכת לכל מערכת הפעלה נתמכת אחרת.

Docker:

Migrate to a Docker-based installation of OTOBO 10.1.

גרסה של האסטרטגיה הכללית שבה העברת מסד הנתונים מתייעלת.

השתמש בהעברה מסוג ETL כאשר מסד הנתונים המקור לא יכול לסבול מעומס מוגבר או כאשר הגישה למסד הנתונים המקור מהווה צוואר בקבוק. באסטרטגיה הכללית, הנתונים נקראים תחילה שורה אחר שורה ממסד הנתונים otrs ואז מוחדרים למסד הנתונים OTOBO. בגרסה זו, טבלאות מסד הנתונים otrs המלאות מיוצאות תחילה, לאחר מכן עוברות טרנספורמציה, ואז מיובאות למסד הנתונים otobo.

העברה ממתקן OTRS 6 / OTRS 7 מבוסס Oracle למתקן OTOBO מבוסס Oracle.

זהו מקרה מיוחד שאינו נתמך על ידי אסטרטגיית ההעברה הכללית. משמעות הדבר היא שיש להשתמש בווריאציה של האסטרטגיה המופשטת.

אזהרה

כל האסטרטגיות מתאימות הן להתקנות מבוססות Docker והן להתקנות מקוריות. עם זאת, בהתקנות מבוססות Docker יש לקחת בחשבון כמה מאפיינים ייחודיים. מאפיינים אלה מטופלים בשלבים האופציונליים.

הערה

ניתן גם לשכפל את מסד הנתונים OTRS לשרת מסד הנתונים OTOBO לפני ההעברה בפועל. פעולה זו יכולה לזרז את אסטרטגיית ההעברה הכללית.

דרישות הגירה

הדרישה הבסיסית להגירה היא שכבר יש לך ((OTRS)) Community Edition או OTRS 6.0.* / OTRS 7.0.* פועל, ושאתה רוצה להעביר את התצורה והנתונים ל-OTOBO.

אזהרה

Please consider carefully whether you really need the data and configuration. Experience shows that quite often a new start is the better option. This is because in many cases the previously used installation and configuration was rather suboptimal anyways. It might also make sense to only transfer the ticket data and to change the basic configuration to OTOBO Best Practice. We are happy to advise you, please get in touch at hello@otobo.io or ask your question in the OTOBO Community forum at https://forum.otobo.org/.

אתה צריך התקנה פעילה של OTOBO כדי להתחיל את ההעברה משם!

התקנת OTOBO זו חייבת להכיל את כל חבילות OPM המותקנות ב-OTRS שברצונך להשתמש בהן גם ב-OTOBO.

אם אתם מתכננים לעבור לשרת אחר, שרת האינטרנט OTOBO חייב להיות מסוגל לגשת למיקום שבו מותקן ((OTRS)) Community Edition או OTRS 6.0.* / OTRS 7.0.*. ברוב המקרים, זהו הספרייה /opt/otrs בשרת שמריץ את OTRS. הגישה לקריאה יכולה להתבצע באמצעות SSH או באמצעות התקנת מערכת קבצים.

יש לאפשר גישה למסד הנתונים otrs מהשרת שמריץ את OTOBO. יש להעניק גישה לקריאה בלבד למארחים חיצוניים. אם הגישה אינה אפשרית, או כאשר יש צורך לייעל את מהירות ההעברה, די בגיבוי של מסד הנתונים.

הערה

אם לא ניתן לבצע SSH וגישה למסד הנתונים בין השרתים, אנא העבר את OTRS ל-OTOBO באותו שרת ורק לאחר מכן העבר את ההתקנה החדשה.

שלב 1: התקן את מערכת OTOBO החדשה

Please start with installing a new OTOBO system. Your old OTRS / ((OTRS)) Community Edition installation will be migrated to that new system. We strongly recommend to read the chapter התקנת OTOBO. For Docker-based installations we refer to the chapter OTOBO Installation Docker.

אזהרה

ב-Apache, ישנם קשיים בהפעלת שתי יישומים mod_perl עצמאיים באותו שרת אינטרנט. לכן, מומלץ להפעיל את OTRS ו-OTOBO בשרתים נפרדים. לחלופין, הסר את תצורת OTRS מ-Apache לפני התקנת OTOBO. השתמש בפקודה a2query -s ובדוק את הספריות /etc/apache2/sites-available ו- /etc/apache2/sites-enabled כדי לבדוק אילו תצורות זמינות כרגע ואילו מופעלות.

לאחר סיום ההתקנה, אנא התחבר כ- root@localhost. נווט לאזור הניהול של OTOBO Admin -&gt; Packages והתקן את כל חבילות OTOBO OPM הנדרשות.

אין צורך להתקין את החבילות OPM ו-OTRS ”Feature Addons“ הבאות, שכן תכונות אלה כבר זמינות בתקן OTOBO:

OTRSHideShowDynamicField

RotherOSSHideShowDynamicField

טפסי כרטיסים

RotherOSS-LongEscalationPerformanceBoost

Znuny4OTRS-שדות דינמיים מתקדמים

Znuny4OTRS-בחירה אוטומטית

Znuny4OTRS-הסלמה-השהיה

OTRSEscalationSuspend

OTRSDynamicFieldDatabase

OTRSDynamicFieldWebService

OTRSBruteForceAttackProtection

Znuny4OTRS-ExternalURLJump

Znuny4OTRS-סגירה מהירה

Znuny4OTRS-תיבת סימון אוטומטית

היסטוריית תצורת מערכת OTRS

Znuny4OTRS-מדיניות סיסמאות

The following OTOBO packages have been integrated into OTOBO 11.0. This means that they should not be installed in the target system when the target system is OTOBO 11:

ייבוא וייצוא

שלב 2: השבת את SecureMode ב-OTOBO

לאחר התקנת OTOBO, אנא התחבר שוב לאזור הניהול של OTOBO Admin -&gt; System Configuration והשבית את אפשרות התצורה SecureMode.

הערה

אל תשכחו ליישם את ההגדרה ששונתה.

שלב 3: עצור את הדמון OTOBO

זה נחוץ כאשר הדמון OTOBO פועל בפועל. עצירת הדמון שונה בין התקנות מבוססות Docker לבין התקנות שאינן מבוססות Docker.

במקרה שאינו Docker, הפעל את הפקודות הבאות כמשתמש otobo:

# in case you are logged in as root
root> su - otobo

otobo> /opt/otobo/bin/Cron.sh stop
otobo> /opt/otobo/bin/otobo.Daemon.pl stop --force

כאשר OTOBO פועל ב-Docker, כל שעליך לעשות הוא לעצור את השירות daemon:

docker_admin> cd /opt/otobo-docker
docker_admin> docker-compose stop daemon
docker_admin> docker-compose ps     # otobo_daemon_1 should have exited with the code 0

הערה

מומלץ לבצע גיבוי של כל מערכת OTOBO בשלב זה. אם משהו ישתבש במהלך ההעברה, לא תצטרך לחזור על כל תהליך ההתקנה, אלא תוכל לייבא את הגיבוי לצורך העברה חדשה.

ראה גם

אנו ממליצים לך לקרוא את הפרק OTOBO גיבוי ושחזור.

שלב אופציונלי: התקן את /opt/otrs לגישה נוחה

לעתים קרובות, OTOBO צריך לפעול בשרת חדש שבו /opt/otrs אינו זמין בתחילה. במקרים אלה, ניתן לעגן את הספרייה /opt/otrs בשרת OTRS במערכת הקבצים של שרת OTOBO. כאשר לא ניתן לבצע עגינה רגילה ברשת, ניתן להשתמש ב-sshfs.

שלב אופציונלי: התקן את sshpass ו-rsync כאשר /opt/otrs יש להעתיק באמצעות ssh

שלב זה נחוץ רק כאשר ברצונך להעביר את OTRS משרת אחר וכאשר /opt/otrs מהשרת המרוחק לא הותקן בשרת שמריץ את OTOBO.

הכלים sshpass ו-rsync נדרשים כדי ש-migration.pl יוכל להעתיק קבצים באמצעות ssh. כדי להתקין את sshpass, התחבר לשרת כמשתמש root והפעל את אחת הפקודות הבאות:

$ # Install sshpass under Debian / Ubuntu Linux
$ sudo apt-get install sshpass

$ #Install sshpass under RHEL/CentOS Linux
$ sudo yum install sshpass

$ # Install sshpass under Fedora
$ sudo dnf install sshpass

$ # Install sshpass under OpenSUSE Linux
$ sudo zypper install sshpass

יש לעשות את אותו הדבר עבור rsync כאשר הוא עדיין אינו זמין.

שלב 4: הכנת מערכת OTRS / ((OTRS)) Community Edition

הערה

הקפד שיהיה לך גיבוי תקף גם של מערכת OTRS / ((OTRS)) Community Edition שלך. כן, אנחנו לא נוגעים בשום נתוני OTRS במהלך ההעברה, אבל לפעמים מספיק רישום שגוי אחד כדי לגרום לבעיות.

כעת אנו מוכנים להגירה. ראשית, עלינו לוודא שלא מעובדים עוד כרטיסים ושום משתמש לא מתחבר ל-OTRS:

אנא התחבר לאזור הניהול של OTRS Admin -&gt;  System Maintenance והוסף משבצת תחזוקת מערכת חדשה למשך מספר שעות. לאחר מכן, מחק את כל הפעולות של הסוכנים והמשתמשים (Admin -&gt;  Sessions) והתנתק.

עצור את כל השירותים הרלוונטיים ואת הדמון OTRS

אנא ודא שאין שירותים או משימות cron הפועלים.

root> su - otrs
otrs> /opt/otrs/bin/Cron.sh stop
otrs> /opt/otrs/bin/otrs.Daemon.pl stop --force

נקה את המטמון ואת נתוני התפעול

אין צורך להעביר את הנתונים המטמונים ואת הנתונים התפעוליים. בשלב זה, תור הדואר אמור להיות ריק.

root> su - otrs
otrs> /opt/otrs/bin/otrs.Console.pl Maint::Cache::Delete
otrs> /opt/otrs/bin/otrs.Console.pl Maint::Session::DeleteAll
otrs> /opt/otrs/bin/otrs.Console.pl Maint::Loader::CacheCleanup
otrs> /opt/otrs/bin/otrs.Console.pl Maint::WebUploadCache::Cleanup
otrs> /opt/otrs/bin/otrs.Console.pl Maint::Email::MailQueue --delete-all

שלב אופציונלי עבור Docker: הפוך את הנתונים הנדרשים לזמינים בתוך המכולה

ישנם כמה פרטים ספציפיים שיש לקחת בחשבון כאשר התקנת OTOBO פועלת תחת Docker. החשוב ביותר: תהליכים הפועלים במכולה של Docker בדרך כלל אינם יכולים לגשת לספריות מחוץ למכולה. עם זאת, ישנו חריג: ניתן לגשת לספריות המותקנות כנפחים בתוך המכולה. כמו כן, יש לשים לב כי לא ניתן לגשת ישירות למסד הנתונים MariaDB הפועל ב-otobo_db_1 מחוץ לרשת המכולה.

הערה

בפקודות לדוגמה, אנו מניחים שהמשתמש docker_admin משמש לתקשורת עם Docker. מנהל Docker יכול להיות המשתמש root של מארח Docker או משתמש ייעודי בעל ההרשאות הנדרשות.

העתק /opt/otrs לתוך הנפח otobo_opt_otobo

בסעיף זה, אנו מניחים שהספרייה הביתית של OTRS /opt/otrs זמינה במארח Docker.

ישנן לפחות שתי אפשרויות ריאליות:

העתק /opt/otrs לנפח הקיים otobo_opt_otobo

הרכיב /opt/otrs כנפח נוסף

בואו נתמקד באפשרות א. כאן.

ראשית, עלינו לברר היכן נמצא הנפח otobo_opt_otobo במארח Docker.

docker_admin> otobo_opt_otobo_mp=$(docker volume inspect --format '{{ .Mountpoint }}' otobo_opt_otobo)
docker_admin> echo $otobo_opt_otobo_mp  # just a sanity check

לצורך העתקה בטוחה, אנו משתמשים ב-rsync. בהתאם להגדרות ה-Docker שלך, ייתכן שיהיה צורך להריץ את הפקודה rsync עם sudo.

docker_admin> # when docker_admin is root
docker_admin> rsync --recursive --safe-links --owner --group --chown 1000:1000 --perms --chmod "a-wx,Fu+r,Du+rx" /opt/otrs/ $otobo_opt_otobo_mp/var/tmp/copied_otrs
docker_admin> ls -la $otobo_opt_otobo_mp/var/tmp/copied_otrs  # just a sanity check

docker_admin> # when docker_admin is not root
docker_admin> sudo rsync --recursive --safe-links --owner --group --chown 1000:1000 --perms --chmod "a-wx,Fu+r,Du+rx" /opt/otrs/ $otobo_opt_otobo_mp/var/tmp/copied_otrs
docker_admin> sudo ls -la $otobo_opt_otobo_mp/var/tmp/copied_otrs  # just a sanity check

הספרייה המועתקת תהיה זמינה כ- /opt/otobo/var/tmp/copied_otrs בתוך המכולה.

שלב 5: בצע את ההעברה!

אנא השתמש בכלי ההעברה באינטרנט בכתובת http://localhost/otobo/migration.pl. שימו לב כי ייתכן שתצטרכו להחליף את ”localhost“ בשם המארח של OTOBO, וייתכן שתצטרכו להוסיף את היציאה הלא סטנדרטית שלכם. לאחר מכן, היישום ידריך אתכם בתהליך ההעברה.

אזהרה

לפעמים, מוצגת אזהרה כי לא זוהתה השבתת SecureMode. במקרה זה, יש להפעיל מחדש את שרת האינטרנט. פעולה זו מאלצת את שרת האינטרנט לקרוא את התצורה הנוכחית.

# native installation
root> service apache2 restart

# Docker-based installation
docker_admin> cd /opt/otobo-docker
docker_admin> docker-compose restart web
docker_admin> docker-compose ps     # otobo_web_1 should be running again

הערה

אם OTOBO פועל בתוך מכולה של Docker, שמור על הגדרות ברירת המחדל localhost עבור שרת OTRS ו- /opt/otobo/var/tmp/copied_otrs עבור ספריית הבית של OTRS. זהו הנתיב של הנתונים שהועתקו בשלב האופציונלי.

הערה

ערכי ברירת המחדל עבור שם המשתמש והסיסמה של מסד הנתונים OTRS נלקחים מ-Kernel/Config.pm בספריית הבית של OTRS. שנה את ההגדרות המוצעות אם אתה משתמש במשתמש מסד נתונים ייעודי לצורך ההעברה. שנה גם את ההגדרות כאשר אתה עובד עם מסד נתונים שהועתק למכולה Docker otobo_db_1.

הערה

במקרה של Docker, לא ניתן יהיה לגשת למסד נתונים הפועל במארח Docker באמצעות 127.0.0.1 מתוך מכולת Docker. משמעות הדבר היא שההגדרה 127.0.0.1 לא תהיה תקפה עבור שדה הקלט OTRS Server. במקרה כזה, הזן אחת מכתובות ה-IP החלופיות המדווחות על ידי הפקודה hostname --all-ip-addresses עבור OTRS Server.

הערה

בעת מעבר לשרת יישומים חדש, או להתקנה מבוססת Docker, לעתים קרובות לא ניתן לגשת למסד הנתונים מההתקנה היעד. בדרך כלל הדבר נובע מכך שמשתמש מסד הנתונים otobo יכול להתחבר רק מהמארח שבו פועל מסד הנתונים. על מנת לאפשר גישה בכל מקרה, מומלץ ליצור משתמש מסד נתונים ייעודי למעבר. לדוגמה: CREATE USER &#x27;otrs_migration&#x27;@&#x27;%&#x27; IDENTIFIED BY &#x27;otrs_migration&#x27;; ו-``GRANT SELECT, SHOW VIEW ON otrs.* TO »otrs_migration«@«%«;««. ניתן למחוק משתמש זה לאחר ההעברה: ``DROP USER »otrs_migration«@«%«;««.

ההגדרות המותאמות אישית ב-Kernel/Config.pm מועברות מהתקנת OTRS הישנה להתקנת OTOBO החדשה. אם יש לך הגדרות מותאמות אישית, אנא עיין בקובץ שהועבר /opt/otobo/Kernel/Config.pm. ייתכן שתרצה להתאים נתיבים מותאמים אישית או הגדרות LDAP. במקרה הטוב, ייתכן שתגלה כי אין עוד צורך בחלק מההגדרות המותאמות אישית.

כאשר ההעברה תסתיים, אנא הקדישו זמן לבדיקת המערכת כולה. לאחר שתחליטו שההעברה הצליחה ושאתם מעוניינים להשתמש ב-OTOBO מעתה והלאה, הפעל את ה-OTOBO Daemon:

root> su - otobo
otobo>
otobo> /opt/otobo/bin/Cron.sh start
otobo> /opt/otobo/bin/otobo.Daemon.pl start

במקרה של Docker:

docker_admin> cd ~/otobo-docker
docker_admin> docker-compose start daemon

שלב 6: לאחר השלמת ההעברה בהצלחה!

הסר את התקנת sshpass אם אינך זקוק לו עוד.

מחק את מסדי הנתונים ומשתמשי מסד הנתונים המיועדים להגירה, אם יצרת כאלה.

תהנו עם OTOBO!

בעיות הגירה ידועות

1. לא ניתן להתחבר לאחר ההעברה

במהלך בדיקות ההעברה שלנו, הדפדפן ששימש להעברה נתקל לעיתים בבעיות. לאחר הפעלה מחדש של הדפדפן, הבעיה נפתרה בדרך כלל. בדפדפן Safari היה צורך לעיתים למחוק ידנית את ההפעלה הישנה של OTRS.

2. העמוד האחרון של ההעברה נראה מוזר בגלל קבצי CSS חסרים.

זה יכול לקרות כאשר ההגדרה ScriptAlias כוללת ערך לא סטנדרטי. ההעברה פשוט מחליפה את otrs ב-otobo. הדבר עלול לגרום לכך שלא ניתן יהיה עוד לאחזר את CSS ו-JavaScript ב-OTOBO. כאשר זה קורה, אנא בדקו את ההגדרות ב-Kernel/Config.pm והחזירו אותן לערכים תקינים.

3. ההעברה נעצרת עקב שגיאות MySQL

במערכות שחוו בעיות בשדרוג בעבר, תהליך ההעברה עלול להיפסק עקב שגיאות MySQL בטבלאות ticket ו-ticket_history. בדרך כלל, שגיאות אלה הן ערכי NULL בטבלת המקור, שאינם מותרים עוד בטבלת היעד. יש לפתור התנגשויות אלה באופן ידני לפני שתוכל להמשיך בהעברה.

ב-migration.pl יש בדיקה שבודקת ערכי NULL לפני העברת הנתונים. שימו לב, שהפתרון עדיין צריך להתבצע באופן ידני.

4. שגיאות בשלב 5 בעת המעבר ל-PostgreSQL

במקרים אלה, migration.pl מציג את ההודעה הלא כל כך מועילה ”המערכת לא הצליחה להשלים את העברת הנתונים“. קובץ היומן של Apache וקובץ היומן של OTOBO מציגים הודעה משמעותית יותר: ”הודעה: שגיאה: הרשאה נדחתה להגדרת הפרמטר ”session_replication_role“, SQL: »הגדר session_replication_role ל-replica«;“. כדי להעניק למשתמש מסד הנתונים otobo את הרשאות המשתמש-על הדרושות, הפעל את הפקודה הבאה כמנהל PostgreSQL: ALTER USER otobo WITH SUPERUSER;. לאחר מכן, נסה שוב להפעיל את http://localhost/otobo/migration.pl. לאחר ההעברה, חזור למצב הרגיל על ידי הפעלת הפקודה ALTER USER otobo WITH NOSUPERUSER.

עדיין לא ברור אם יש להעניק את ההרשאות המורחבות בכל התקנה.

ראה גם

הדיון ב-https://otobo.de/de/forums/topic/otrs-6-mysql-migration-to-otobo-postgresql/.

5. בעיות בפריסת תצורת המערכת הממוזגת

תצורת המערכת מועברת לאחר העברת טבלאות מסד הנתונים. בהקשר זה, העברה פירושה מיזוג הגדרות ברירת המחדל של OTOBO עם תצורת המערכת של מערכת OTRS המקורית. בשלב זה עלולות להיווצר אי-עקביות. דוגמה אמיתית לכך היא ההגדרה Ticket::Frontend::AgentTicketQuickClose###State. הגדרה זו חדשה ב-OTOBO 10 והערך המוגדר כברירת מחדל הוא המצב ”closed successful“. אך הגדרה זו אינה חוקית כאשר המצב ”closed successful“ הוסר או שונה בשמו במערכת המקור. חוסר עקביות זה מזוהה כשגיאה בשלב ההעברה Migrate configuration settings. למעשה, תצורת המערכת הממוזגת מאוחסנת במסד הנתונים, אך בדיקות תקינות נוספות מבוצעות במהלך הפריסה.

יש להקל על הבעיה באופן ידני באמצעות פקודות קונסולת OTOBO.

פרט את חוסר העקביות באמצעות הפקודה bin/otobo.Console.pl Admin::Config::ListInvalid

תקן באופן אינטראקטיבי את הערכים הלא חוקיים באמצעות bin/otobo.Console.pl Admin::Config::FixInvalid

פרוס את השינויים שנאספו מ-migration.pl, כולל SecureMode שהושבת עם bin/otobo.Console.pl Maint::Config::Rebuild

לאחר ביצוע השלבים הידניים הללו, תוכל להפעיל את migration.pl שוב. ההעברה תמשיך מהשלב שבו אירעה השגיאה.

שלב 7: משימות ושינויים ידניים בהעברה

1. כללי מדיניות הסיסמאות

ב-OTOBO 10 נכנסה לתוקף מדיניות סיסמאות חדשה עבור סוכנים ולקוחות, אם נעשה שימוש באימות מקומי. ניתן לשנות את כללי מדיניות הסיסמאות בתצורת המערכת (PreferencesGroups###Password ו-CustomerPersonalPreference###Password).

כלל מדיניות סיסמאות

ברירת מחדל

PasswordMinSize

8

PasswordMin2Lower2UpperCharacters

Yes

PasswordNeedDigit

Yes

היסטוריית סיסמאות

10

PasswordTTL

30 ימים

PasswordWarnBeforeExpiry

5 ימים

שינוי סיסמה לאחר הכניסה הראשונה

Yes

2. תחת Docker: העבר ידנית משימות cron

בהתקנה של OTOBO שאינה Docker, יש לפחות משימת cron אחת הבודקת את תקינות הדמון. ב-Docker, משימת cron זו כבר לא קיימת. יתר על כן, אין דמון cron הפועל באף אחד ממכולות ה-Docker. משמעות הדבר היא שעליכם לחפש פתרון פרטני למערכות OTRS עם משימות cron ספציפיות ללקוח (לדוגמה, גיבוי מסד הנתונים).

נושאים מיוחדים

העברה מ-Oracle ל-Oracle

לצורך מעבר ל-Oracle יש להשתמש באסטרטגיה דמוית ETL. הסיבה לכך היא ש-Oracle אינה מספקת דרך קלה להשבית באופן זמני את בדיקות המפתחות הזרים.

בשרת OTOBO יש להתקין לקוח Oracle ואת מודול Perl DBD::Oracle.

הערה

בעת שימוש ב-Oracle Instant Client, נדרש גם SDK אופציונלי להתקנת DBD::Oracle.

ישנן דרכים רבות לשכפל סכימה. בפקודות לדוגמה אנו משתמשים ב-expdb ו-impdb, המשתמשות ב-Data Pump מאחורי הקלעים.

הערה

מחרוזות החיבור המוצגות בתיעוד זה מתייחסות למקרה שבו הן מסד הנתונים המקור והן מסד הנתונים היעד פועלים במכולה של Docker. ראה גם https://github.com/bschmalhofer/otobo-ideas/blob/master/oracle.md .

נקה את otobo

עצור את שרת האינטרנט של otobo, כך שהחיבור ל-DB של otobo ייסגר.

-- in the OTOBO database
DROP USER otobo CASCADE

ייצא את סכימת OTRS המלאה.

mkdir /tmp/otrs_dump_dir

-- in the OTRS database
CREATE DIRECTORY OTRS_DUMP_DIR AS '/tmp/otrs_dump_dir';
GRANT READ, WRITE ON DIRECTORY OTRS_DUMP_DIR TO sys;

expdp \"sys/Oradoc_db1@//127.0.0.1/orclpdb1.localdomain as sysdba\" schemas=otrs directory=OTRS_DUMP_DIR dumpfile=otrs.dmp logfile=expdpotrs.log

ייבא את סכימת OTRS, ושנה את שמה ל-»otobo«.

impdp \"sys/Oradoc_db1@//127.0.0.1/orclpdb1.localdomain as sysdba\" directory=OTRS_DUMP_DIR dumpfile=otrs.dmp logfile=impdpotobo.log remap_schema=otrs:otobo

-- in the OTOBO database
-- double check
select owner, table_name from all_tables where table_name like 'ARTICLE_DATA_OT%_CHAT';

-- optionally, set the password for the user otobo
    ALTER USER otobo IDENTIFIED BY XXXXXX;

התאם את הסכימה המשוכפלת otobo

cd /opt/otobo
scripts/backup.pl --backup-type migratefromotrs # it's OK that the command knows only about the otobo database, only last line is relevant
sqlplus otobo/otobo@//127.0.0.1/orclpdb1.localdomain < /home/bernhard/devel/OTOBO/otobo/2021-03-31_13-36-55/orclpdb1.localdomain_post.sql >sqlplus.out 2>&1
double check with `select owner, table_name from all_tables where table_name like 'ARTICLE_DATA_OT%_CHAT';

הפעל שוב את שרת האינטרנט עבור otobo

המשך לשלב 5, כלומר להפעלת migration.pl.

הערה

אם אתם מעבירים את המערכת לגרסת OTOBO 10.1 ומעלה, יש להפעיל את הסקריפט /opt/otobo/scripts/DBUpdate-to-10.1.pl כדי ליצור את הטבלאות stats_report ו-data_storage, שנוספו בגרסה 10.1.

שלב אופציונלי: העברה יעילה של מסד הנתונים (רק עבור מומחים ותסריטים מיוחדים)

באסטרטגיית ההעברה הכללית, כל הנתונים בטבלאות מסד הנתונים מועתקים שורה אחר שורה ממסד הנתונים OTRS למסד הנתונים OTOBO. ייצוא הנתונים ממסד הנתונים OTRS וייבואם למסד הנתונים OTOBO עשוי לחסוך זמן ולהיות יציב יותר בנסיבות מסוימות.

הערה

גרסה זו מתאימה הן להתקנות מבוססות Docker והן להתקנות מקוריות.

הערה

הוראות אלה מניחות ש-OTRS משתמש ב-MySQL כ-backend.

ראשית, עלינו לבצע דמפ של טבלאות מסד הנתונים הדרושות של OTRS. לאחר מכן, עלינו לבצע מספר המרות:

המרת מערך התווים ל-utf8mb4

לשנות את שמותיהם של כמה טבלאות

לקצר כמה עמודות בטבלה

לאחר ההמרה, אנו יכולים להחליף את הטבלאות בסכימת OTOBO בנתונים שהומרו מ-OTRS. למעשה, איננו זקוקים לקובץ דמפ אחד, אלא למספר סקריפטים SQL.

כאשר mysqldump מותקן וניתן להתחבר למסד הנתונים OTRS, ניתן ליצור את דמפ המסד הנתונים ישירות במארח Docker. מקרה זה נתמך על ידי הסקריפט bin/backup.pl.

אזהרה

לשם כך נדרשת התקנת OTOBO במארח Docker.

otobo> cd /opt/otobo
otobo> scripts/backup.pl -t migratefromotrs --db-name otrs --db-host=127.0.0.1 --db-user otrs --db-password "secret_otrs_password"

הערה

לחלופין, ניתן לשמור את בסיס הנתונים בשרת אחר ולאחר מכן להעבירו למארח Docker. דרך קלה לעשות זאת היא להעתיק את /opt/otobo לשרת שמריץ את OTRS ולבצע את אותה הפקודה כמו לעיל.

הסקריפט bin/backup.pl מייצר ארבעה סקריפטים SQL בספריית dump, לדוגמה ב- 2021-04-13_12-13-04 על מנת לבצע את סקריפטי ה-SQL, עלינו להריץ את הפקודה mysql.

התקנה מקורית:

otobo> cd <dump_dir>
otobo> mysql -u root -p<root_secret> otobo < otrs_pre.sql
otobo> mysql -u root -p<root_secret> otobo < otrs_schema_for_otobo.sql
otobo> mysql -u root -p<root_secret> otobo < otrs_data.sql
otobo> mysql -u root -p<root_secret> otobo < otrs_post.sql

התקנה מבוססת Docker:

הפעל את הפקודה mysql בתוך מכולת Docker db כדי לייבא את קבצי הדאמפ של מסד הנתונים. שים לב שהסיסמה לשורש מסד הנתונים היא כעת הסיסמה שהוגדרה בקובץ .env במארח Docker.

docker_admin> cd /opt/otobo-docker
docker_admin> docker-compose exec -T db mysql -u root -p<root_secret> otobo < /opt/otobo/<dump_dir>/otrs_pre.sql
docker_admin> docker-compose exec -T db mysql -u root -p<root_secret> otobo < /opt/otobo/<dump_dir>/otrs_schema_for_otobo.sql
docker_admin> docker-compose exec -T db mysql -u root -p<root_secret> otobo < /opt/otobo/<dump_dir>/otrs_data.sql
docker_admin> docker-compose exec -T db mysql -u root -p<root_secret> otobo < /opt/otobo/<dump_dir>/otrs_post.sql

כדי לבדוק במהירות אם הייבוא הצליח, ניתן להריץ את הפקודות הבאות.

otobo> mysql -u root -p<root_secret> -e 'SHOW DATABASES'
otobo> mysql -u root -p<root_secret> otobo -e 'SHOW TABLES'
otobo> mysql -u root -p<root_secret> otobo -e 'SHOW CREATE TABLE ticket'

או בעת הפעלה תחת Docker

docker_admin> docker-compose exec -T db mysql -u root -p<root_secret> -e 'SHOW DATABASES'
docker_admin> docker-compose exec -T db mysql -u root -p<root_secret> otobo -e 'SHOW TABLES'
docker_admin> docker-compose exec -T db mysql -u root -p<root_secret> otobo -e 'SHOW CREATE TABLE ticket'

המאגר הועבר. משמעות הדבר היא שבשלב הבא נוכל לדלג על העברת המאגר. שימו לב לתיבת הסימון הרלוונטית.

עדכון

הערה

מומלץ מאוד לבצע תחילה עדכון ניסיון על מחשב נפרד המיועד לבדיקות.

הערה

To prepare required perl modules beforehand, you can already download and unzip the new OTOBO version and execute the check modules script, e.g. with the following command (please adjust the file path). This is not necessary in a regular installation and will be part of the later update instruction.

perl /tmp/otobo/bin/otobo.CheckModules.pl --list

הערה

במערכות Debian ייתכן שתצטרך להתקין ידנית כמה חבילות perl לפני השדרוג לגרסה 11.0.

apt-get install -y libarchive-zip-perl libtimedate-perl libdatetime-perl libconvert-binhex-perl libcgi-psgi-perl libdbi-perl libdbix-connector-perl libfile-chmod-perl liblist-allutils-perl libmoo-perl libnamespace-autoclean-perl libnet-dns-perl libnet-smtp-ssl-perl libpath-class-perl libsub-exporter-perl libtemplate-perl libtemplate-perl libtext-trim-perl libtry-tiny-perl libxml-libxml-perl libyaml-libyaml-perl libdbd-mysql-perl libapache2-mod-perl2 libmail-imapclient-perl libauthen-sasl-perl libauthen-ntlm-perl libjson-xs-perl libtext-csv-xs-perl libpath-class-perl libplack-perl libplack-middleware-header-perl libplack-perl libplack-middleware-reverseproxy-perl libencode-hanextra-perl libio-socket-ssl-perl libnet-ldap-perl libcrypt-eksblowfish-perl libxml-libxslt-perl libxml-parser-perl libconst-fast-perl

For OTOBO 11.0, the following packages are being migrated automatically to the framework. This means that no separate packe is necessary and they will be part of OTOBO by default.

Ayte-CustomTranslations

ExtendedCDBInfoTile

ייבוא וייצוא

LightAdmin

MarkTicketSeenUnseen

QuickDateButtons

ResponseTemplatesStatePreselection

RotherOSS-LightAdmin

RotherOSS-InternalTransitionActions

TicketTimeUnitsMandatoryOnlyWithArticle

שלב 1: עצור את כל השירותים הרלוונטיים ואת הדמון OTOBO

אנא ודא שאין יותר שירותים פועלים או משימות cron המנסות לגשת ל-OTOBO. זה תלוי בתצורת השירות שלך.

root> systemctl stop postfix
root> systemctl stop apache2
root> systemctl stop cron

עצור את משימות cron של OTOBO ואת הדמון (בסדר זה):

root> su - otobo
otobo> cd /opt/otobo/
otobo> bin/Cron.sh stop
otobo> bin/otobo.Daemon.pl stop

שלב 2: גיבוי קבצים ומסד נתונים

צור גיבוי של ספריית /opt/otobo ושל מסד הנתונים.

דוגמה להתקנה סטנדרטית עם Ubuntu ו-MySQL

root> mkdir /root/otobo-update                      # Create a update directory
root> cd /root/otobo-update                         # Change into the update directory
root> cp -pr /opt/otobo otobo-prod-old              # Backup the hole OTOBO directory to the update directory
root> mysqldump -u otobo -p otobo -r otobo-prod-old.sql   # Backup the otobo database to otobo-prod-old.sql

אנא בדוק אם כל הקבצים תקינים. כעת יש לנו גיבוי עם כל הנתונים הנדרשים.

אזהרה

אל תמשיך ללא גיבוי מלא של המערכת שלך. ניתן להשתמש גם בסקריפט גיבוי ושחזור לשם כך.

שלב 2.1: מחק את ספריית CPAN אם אתה משדרג מגרסה 10.1

אם אתם משדרגים מ-10.1 ל-11.0, עליכם לנקות את ספריית cpan-lib, מכיוון שחלק מספריות cpan השתנו.

root> rm -rf /opt/otobo/Kernel/cpan-lib/*

This can also be executed with sudo permissions.

שלב 3: התקן את המהדורה החדשה

הורד את הגרסה האחרונה של otobo מ-https://ftp.otobo.org/pub/otobo/. ופרק את ארכיון המקור (למשל, באמצעות tar) לספרייה /root/otobo-update:

root> cd /root/otobo-update                                             # Change into the update directory
root> wget https://ftp.otobo.org/pub/otobo/otobo-latest-11.0.tar.gz     # Download he latest OTOBO 11.0 release
root> tar -xzf otobo-latest-11.0.tar.gz                                 # Unzip OTOBO
root> cp -r otobo-11.0.x/* /opt/otobo                                   # Copy the new otobo directory to /opt/otobo

שחזור קבצי תצורה ישנים

אנו צריכים רק להעתיק את הקובץ Kernel/Config.pm ב-OTOBO 10.

root> cd /root/otobo-update
root> cp -p otobo-prod-old/Kernel/Config.pm /opt/otobo/Kernel/
root> cp -p otobo-prod-old/var/cron/* /opt/otobo/var/cron/

שחזור נתוני המאמר

אם קבעת את OTOBO לאחסן נתוני מאמרים במערכת הקבצים, עליך לשחזר את התיקייה ”article“ ל-”/opt/otobo/var/“ או לתיקייה שצוינה בתצורת המערכת.

root> cd /root/otobo-update
root> cp -pr otobo-prod-old/var/article/* /opt/otobo/var/article/

שחזור סטטיסטיקות ברירת מחדל שכבר הותקנו

אם יש לך חבילות נוספות עם סטטיסטיקות ברירת מחדל, עליך לשחזר את קבצי ה-XML של הסטטיסטיקות עם הסיומת *.installed ל-/opt/otobo/var/stats.

root> cd /root/otobo-update/otobo-prod-old/var/stats
root> cp *.installed /opt/otobo/var/stats

הגדר הרשאות קבצים

אנא בצע את הפקודה הבאה כדי להגדיר את הרשאות הקבצים והספריות עבור OTOBO. התוכנה תנסה לזהות את הגדרות המשתמש והקבוצה הנכונות הדרושות להתקנה שלך.

root> /opt/otobo/bin/otobo.SetPermissions.pl

בדוק את קבצי התצורה של Apache

בגרסאות חדשות יותר של OTOBO ייתכן שתצטרך לשנות את תצורת Apache. מגרסה 10.1 ואילך עברנו מ-CGI ל-PSGI. עיין בקובץ scripts/apache2-httpd-vhost-443.include.conf כדי לראות אילו הגדרות יש לשנות/להוסיף.

שלב 4: בדוק אם יש מודולים Perl חדשים הדרושים

OTOBO זקוק לחבילות cpan חדשות עבור כמה קפיצות גרסה. אנא בדקו אם יש צורך בחבילות חדשות והתקינו אותן במידת הצורך.

הערה

במערכות Debian ייתכן שתצטרך להתקין ידנית כמה חבילות:

apt-get install -y libarchive-zip-perl libtimedate-perl libdatetime-perl libconvert-binhex-perl libcgi-psgi-perl libdbi-perl libdbix-connector-perl libfile-chmod-perl liblist-allutils-perl libmoo-perl libnamespace-autoclean-perl libnet-dns-perl libnet-smtp-ssl-perl libpath-class-perl libsub-exporter-perl libtemplate-perl libtemplate-perl libtext-trim-perl libtry-tiny-perl libxml-libxml-perl libyaml-libyaml-perl libdbd-mysql-perl libapache2-mod-perl2 libmail-imapclient-perl libauthen-sasl-perl libauthen-ntlm-perl libjson-xs-perl libtext-csv-xs-perl libpath-class-perl libplack-perl libplack-middleware-header-perl libplack-perl libplack-middleware-reverseproxy-perl libencode-hanextra-perl libio-socket-ssl-perl libnet-ldap-perl libcrypt-eksblowfish-perl libxml-libxslt-perl libxml-parser-perl libconst-fast-perl

root> su - otobo
otobo> perl /opt/otobo/bin/otobo.CheckModules.pl --list

שלב 5: עדכן את החבילות המותקנות והגדר מחדש את התצורה

ניתן להשתמש בפקודה הבאה כדי לעדכן את כל החבילות המותקנות. זה עובד עבור כל החבילות הזמינות במאגרי מקוונים. ניתן לעדכן חבילות אחרות מאוחר יותר באמצעות מנהל החבילות (זה דורש הפעלת דמון OTOBO).

root> su - otobo
otobo> /opt/otobo/bin/otobo.Console.pl Admin::Package::ReinstallAll
otobo> /opt/otobo/bin/otobo.Console.pl Admin::Package::UpgradeAll
otobo> /opt/otobo/bin/otobo.Console.pl Maint::Config::Rebuild

שלב 6: רק עבור שדרוגים קטנים או גדולים (לדוגמה, שדרוג מ-10.1 ל-11.0)

root> su - otobo
otobo> /opt/otobo/scripts/DBUpdate-to-11.0.pl

שלב 7: הפעל את השירותים שלך

הפעל את משימות cron של OTOBO ואת הדמון (בסדר זה):

root> su - otobo
otobo> cd /opt/otobo/
otobo> bin/otobo.Daemon.pl start
otobo> bin/Cron.sh start

כעת ניתן להפעיל את השירותים. הדבר תלוי בתצורת השירותים שלכם. להלן דוגמה:

root> systemctl start postfix
root> systemctl start apache2
root> systemctl start cron

כעת תוכל להתחבר למערכת שלך.

עדכון התקנה מבוססת Docker של OTOBO

אזהרה

אל תבצעו עדכון ללא גיבוי מלא של המערכת. לשם כך, תוכלו להשתמש בסקריפט גיבוי ושחזור באמצעות Docker בהתקנת Docker הקיימת שלכם.

כדי להפעיל את OTOBO תחת Docker, אנו זקוקים לתוכנת OTOBO עצמה ולסביבה שבה OTOBO יכול לפעול. תמונת ה-Docker של OTOBO מספקת את הסביבה ואת העתק תוכנת OTOBO. התוכנה עצמה מותקנת בנפח otobo_opt_otobo. נעשה שימוש בנפח בשם מכיוון שנתוני זמן הריצה, כגון קבצי תצורה וחבילות מותקנות, מאוחסנים באותה עץ ספריות.

בעת עדכון לגרסה חדשה של OTOBO, יש לבצע מספר פעולות.

יש לעדכן את קבצי Docker Compose.

יש לבדוק את קובץ התצורה של Docker Compose .env.

יש להוריד את תמונת ה-Docker החדשה.

יש לעדכן את הנפח otobo_opt_otobo.

יש לבצע מספר משימות תחזוקה.

הערה

In the sample commands below, the version 11.x.y, corresponding to the tag 11_x_y, is used as the example version. Please substitute it with the real version, e.g. 11.0.7.

הערה

Before upgrading, please check if your installed packages are available for the new version

For OTOBO 11.0, the following packages are being migrated automatically to the framework. This means that no separate packe is necessary and they will be part of OTOBO by default.

Ayte-CustomTranslations

ExtendedCDBInfoTile

ייבוא וייצוא

LightAdmin

MarkTicketSeenUnseen

QuickDateButtons

ResponseTemplatesStatePreselection

RotherOSS-LightAdmin

RotherOSS-InternalTransitionActions

TicketTimeUnitsMandatoryOnlyWithArticle

עדכון קבצי Docker Compose

קובצי OTOBO Docker Compose עשויים להשתנות בין גרסאות. לכן, יש לוודא כי נעשה שימוש בהגדרה הנכונה.

הערה

ראה https://hub.docker.com/r/rotheross/otobo/tags עבור הגרסאות הזמינות.

# Change to the otobo docker directory
docker_admin> cd /opt/otobo-docker

# Get the latest tags
docker-admin> git fetch --tags

# Update OTOBO docker-compose repository to version 11.x.y.
docker-admin> git checkout rel-11_x_y

בדיקת קובץ ה-env של Docker Compose

הקובץ .env שולט במכולה OTOBO Docker. בתוך קובץ זה, המשתנים OTOBO_IMAGE_OTOBO, OTOBO_IMAGE_OTOBO_ELASTICSEARCH ו- OTOBO_IMAGE_OTOBO_NGINX קובעים אילו תמונות ישמשו. התמונות העדכניות ביותר ישמשו כאשר משתנים אלה אינם מוגדרים. אם ברצונך להשתמש בגרסה ספציפית, הגדר משתנים אלה בהתאם.

הורד את תמונות ה-Docker החדשות

ניתן להשתמש ב-Docker Compose כדי להביא את התמונות הרצויות מ-https://hub.docker.com/r/rotheross/otobo/.

# Change to the otobo docker directory
docker_admin> cd /opt/otobo-docker

# fetch the new images, either the default tag 'latest-11_0' or the specific version tag declared in .env
docker_admin> docker-compose pull

עדכון OTOBO

אזהרה

שימו לב כי שדרוגים קלים או משמעותיים חייבים להתבצע תמיד בזה אחר זה. אם ברצונכם לשדרג מגרסה 10.0.* לגרסה 11.0.* האחרונה, אנא שדרגו תחילה לגרסה 10.1 ולאחר מכן לגרסה 11.0.

בשלב זה, הנפח otobo_opt_otobo מתעדכן והפקודות הבאות של קונסולת OTOBO מבוצעות:

Admin::Package::ReinstallAll

Admin::Package::UpgradeAll

תחזוקה::תצורה::בנייה מחדש

Maint::Cache::Delete

לשדרוגי גרסה קלים ומשמעותיים, לפני כן יש לבצע גם משימות עדכון עבור מערכת הליבה.

# stop and remove the containers, but keep the named volumes
docker_admin> docker-compose down

# copy the OTOBO software, while containers are still stopped
docker_admin> docker-compose run --no-deps --rm web copy_otobo_next

# start containers again, using the new version and the updated /opt/otobo
docker_admin> docker-compose up --detach

# a quick sanity check
docker_admin> docker-compose ps

# ** Only for minor or major release upgrades! **
# run upgrade tasks for the OTOBO core (for example when upgrading from 10.1 to 11.0)
docker_admin> docker-compose exec web perl scripts/DBUpdate-to-11.0.pl

# complete the update, with running database
docker_admin> docker-compose exec web /opt/otobo_install/entrypoint.sh do_update_tasks

# inspect the update log
docker_admin> docker-compose exec web cat /opt/otobo/var/log/update.log

# restart all container again
docker_admin> docker-compose restart

הערה

לעדכונים פשוטים ברמת התיקון (לדוגמה, מ-11.0.2 ל-11.0.3), ניתן להפוך את הפעלת הפקודות הנ“ל לאוטומטית בעזרת הסקריפט scripts/update.sh. סקריפט זה מפעיל את הפקודות החל מהפקודה docker-compose pull. שימו לב כי קריאה לסקריפטים לשדרוג מסד הנתונים אינה כלולה, ולכן לא ניתן להשתמש בו לשדרוגי גרסה.

docker_admin> ./scripts/update.sh --help
docker_admin> ./scripts/update.sh
docker_admin> docker-compose restart

הערה

בעת שדרוג מ-10.1.x ל-11.0.x עם תוסף ITSM מותקן, יש לבצע בנוסף את הפקודה הבאה:

docker exec -it otobo_web_1 perl bin/otobo.Console.pl Admin::ITSM::ConfigItem::UpgradeTo11

גיבוי ושחזור

OTOBO כולל סקריפטים מובנים לגיבוי ושחזור. הפעל את הסקריפטים עם האפשרות -h לקבלת מידע נוסף.

גיבוי

הערה

כדי ליצור גיבוי חדש, נדרשת הרשאת כתיבה לספריית היעד עבור המשתמש otobo.

otobo> /opt/otobo/scripts/backup.pl -h

תוצאת הסקריפט:

Backup an OTOBO system.

Usage:
 backup.pl -d /data_backup_dir [-c gzip|bzip2] [-r DAYS] [-t fullbackup|nofullbackup|dbonly]
 backup.pl --backup-dir /data_backup_dir [--compress gzip|bzip2] [--remove-old-backups DAYS] [--backup-type fullbackup|nofullbackup|dbonly]

Short options:
 [-h]                   - Display help for this command.
 -d                     - Directory where the backup files should place to.
 [-c]                   - Select the compression method (gzip|bzip2). Default: gzip.
 [-r DAYS]              - Remove backups which are more than DAYS days old.
 [-t]                   - Specify which data will be saved (fullbackup|nofullbackup|dbonly). Default: fullbackup.

Long options:
 [--help]                     - same as -h
 --backup-dir                 - same as -d
 [--compress]                 - same as -c
 [--remove-old-backups DAYS]  - same as -r
 [--backup-type]              - same as -t

Help:
Using -t fullbackup saves the database and the whole OTOBO home directory (except /var/tmp and cache directories).
Using -t nofullbackup saves only the database, /Kernel/Config* and /var directories.
With -t dbonly only the database will be saved.

Override the max allowed packet size:
When backing up a MySQL one might run into very large database fields. In this case the backup fails.
For making the backup succeed one can explicitly add the parameter --max-allowed-packet=<SIZE IN BYTES>.
This setting will be passed on to the command mysqldump.

Output:
 Config.tar.gz          - Backup of /Kernel/Config* configuration files.
 Application.tar.gz     - Backup of application file system (in case of full backup).
 VarDir.tar.gz          - Backup of /var directory (in case of no full backup).
 DataDir.tar.gz         - Backup of article files.
 DatabaseBackup.sql.gz  - Database dump.

הערה

–extra-dump-options=“–single-transaction“ prevents the database tables from being locked, so OTOBO can still be used during the backup.

שחזור

הערה

כדי לשחזר את מסד הנתונים, ודא שמסד הנתונים otobo קיים ואינו מכיל טבלאות.

otobo> /opt/otobo/scripts/restore.pl -h

תוצאת הסקריפט:

Restore an OTOBO system from backup.

Usage:
 restore.pl -b /data_backup/<TIME>/ -d /opt/otobo/

Options:
 -b                     - Directory of the backup files.
 -d                     - Target OTOBO home directory.
 [-h]                   - Display help for this command.

After successful restore it’s advised to clear the OTOBO cache. To do this execute the following command:

# clear OTOBO cache
otobo> /opt/otobo/bin/otobo.Console.pl Maint::Cache::Delete

שיקולים להפעלת OTOBO תחת Docker

אותם סקריפטים יכולים לשמש עם OTOBO הפועל תחת Docker. עם זאת, יש לקחת בחשבון מספר מגבלות ספציפיות ל-Docker. אנא קרא את הפרק גיבוי ושחזור באמצעות Docker לקבלת מידע נוסף בנושא.

גיבוי ושחזור באמצעות Docker

אנא קרא את הפרק גיבוי ושחזור לקבלת מידע בסיסי אודות סקריפטים לגיבוי ושחזור.

שיקולים להפעלת OTOBO תחת Docker

ניתן להשתמש בסקריפטים הסטנדרטיים backup.pl ו-restore.pl גם עם OTOBO הפועל תחת Docker. עם זאת, יש לקחת בחשבון מספר מגבלות ספציפיות ל-Docker.

ראשית, עלינו לוודא שקבצי הגיבוי לא נוצרים במערכת הקבצים הפנימית של מכולת Docker. במקרה כזה, הקבצים שנוצרו יאבדו עם עצירת המכולה. משמעות הדבר היא שספריית הגיבוי חייבת להיות ממוקמת בתוך אמצעי אחסון. במדריך זה נתייחס רק למקרה הפשוט ביותר, שבו ספריית הגיבוי היא ספרייה מקומית במארח Docker. ניתן לבחור באופן שרירותי את מיקום ספריית הגיבוי במכולה. בדוגמה זו בחרנו בספרייה המקומית otobo_backup כמיקום במארח וב-/otobo_backup כמיקום במכולה.

שנית, פקודות במכולת Docker בדרך כלל פועלות כמשתמש otobo עם מזהה משתמש 1000 ומזהה קבוצה 1000. יש לוודא שמשתמש זה יכול לכתוב בספריית הגיבוי.

ראשית עלינו ליצור את אמצעי האחסון.

# create the backup directory on the host
docker_admin> mkdir otobo_backup

# give the backup dir to the user otobo, elevated privs might be needed for that
docker_admin> chown 1000:1000 otobo_backup

# create the Docker volume
docker_admin> docker volume create --name otobo_backup --opt type=none --opt device=$PWD/otobo_backup --opt o=bind

# inspect the volume out of curiosity
docker_admin> docker volume inspect otobo_backup

כדי ליצור את הגיבוי, אנו זקוקים למסד נתונים פעיל ולכרכים otobo_opt_otobo ו-otobo_backup. משמעות הדבר היא ששרת האינטרנט והדמון OTOBO עשויים, אך אינם חייבים, להיות מושבתים.

# create a backup
docker_admin> docker run -it --rm --volume otobo_opt_otobo:/opt/otobo --volume otobo_backup:/otobo_backup --network otobo_default rotheross/otobo:latest-11_0 scripts/backup.pl --extra-dump-options="--single-transaction" -d /otobo_backup

# check the backup file
docker_admin> tree otobo_backup

הערה

–extra-dump-options=“–single-transaction“ prevents the database tables from being locked, so OTOBO can still be used during the backup.

הערה

כדי לשחזר את מסד הנתונים, ודא שמסד הנתונים otobo קיים ואינו מכיל טבלאות.

כדי למחוק מסד נתונים otobo קיים וליצור אחד חדש, ניתן להשתמש בפקודות הבאות. ראשית, יש להתחבר ל-CLI של MySQL במכל db.

docker_admin> cd /opt/otobo-docker
docker_admin> docker-compose exec db bash
mysql@4f7783595190:/$> mysql -u root -p${MYSQL_ROOT_PASSWORD}

ברגע שתתחבר לשרת MySQL, תוכל למחוק וליצור מחדש את מסד הנתונים otobo.

mysql@4f7783595190:/$> DROP DATABASE otobo;
mysql@4f7783595190:/$> CREATE DATABASE otobo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql@4f7783595190:/$> GRANT ALL PRIVILEGES ON otobo.* TO 'otobo'@'%';

כדי לשחזר את הגיבוי, עלינו גם לציין איזה גיבוי יש לשחזר. המקום המילוי &lt;TIMESTAMP&gt; הוא משהו כמו 2020-09-07_09-38.

# restore a backup
docker_admin> docker run -it --rm --volume otobo_opt_otobo:/opt/otobo --volume otobo_backup:/otobo_backup --network otobo_default rotheross/otobo:latest-11_0 scripts/restore.pl -d /opt/otobo -b /otobo_backup/<TIMESTAMP>

After successful restore it’s advised to clear the OTOBO cache. To do this change to your OTOBO directory (normaly /opt/otobo-docker) and execute the following command:

# clear OTOBO cache
docker_admin> docker compose exec web bin/otobo.Console.pl Maint::Cache::Delete

כניסה חד-פעמית Kerberos בהתקנת OTOBO Docker

Please read to the chapter OTOBO Installation Docker for basic information about installing and configure OTOBO. This tutorial assumes that OTOBO has been installed and configured using Docker.

הערה

בהמשך, נתייחס ל-AD (Active Directory), כמובן שתצורת Kerberos אפשרית גם תחת LDAP.

יצירת משתמש Active Directory

אנא צור משתמש Active Directory חדש עם ההגדרות הבאות ושמור את ההגדרות המסומנות:

הערה

אנא השתמש רק בסינטקס הבא כשם משתמש: HTTP/fqdn.from.your.otobo.de. fqdn.from.your.otobo.de חייב להיות רשומת DNS מסוג A-Record, ולא CNAME! בשלב הבא, ניתן להשתמש גם בכתובות URL אחרות עבור OTOBO, אך הן חייבות להפנות כ-CNAME לרשומת A-record שהוגדרה לעיל.

חלק שם המשתמש ”HTTP/“ צריך להיות כתוב באותיות גדולות, מכיוון ש-Kerberos מצפה לכך.

הסיסמה לא פועלת כראוי עם תווים מיוחדים מסוימים (לדוגמה, &#x27;&amp;&#x27;).

עליך ליצור משתמש AD נפרד. אינך יכול להשתמש במשתמש שאתה כבר משתמש בו עבור סנכרון LDAP/AD.

יצירת קובץ Keytab של Active Directory

In the next step, we connect to a domain controller of the Active Directory and open a console (cmd) there with administrator privileges. Now we use the tool ktpass.exe to generate the needed keytab file:

ktpass.exe -princ HTTP/otrs32-centos6.otrs.local@OTRS.LOCAL -mapuser OTRS\otrs32-centos6 -crypto All -pass Password -ptype KRB5_NT_PRINCIPAL -out c:\krb5.keytab

-princ = HTTP/otrs32-centos6.otrs.local@OTRS.LOCAL -&gt; תמונה מספר 1+@+תמונה מספר 2

-mapuser = OTRSotrs32-centos6 (שם משתמש prä Win 2000) -&gt; -&gt; מספר תמונה 3++מספר תמונה

-pass = סיסמה ממשתמש otrs32-centos6 (משתמש Active Directory)

-out = c:/krb5.keytab

הערה

אנא כתוב את הדומיין (@OTRS.LOCAL) תמיד באותיות גדולות. הסיסמה לא יכולה להכיל תווים מיוחדים.

בשלב הבא, העבר את הקובץ krb5.keytab לשרת OTOBO:

# Create new directory
docker_admin> mkdir /opt/otobo-docker/nginx-conf

# Move the file krb5.keytab to the new directory (Attention, depending on where you have placed the krb5.conf file, the command below will change.)
docker_admin> mv ?/krb5.keytab /opt/otobo-docker/nginx-conf/krb5.keytab

צור אמצעי אחסון חדש עבור תצורת nginx המותאמת אישית שלך

docker volume create otobo_nginx_custom_config
otobo_nginx_custom_config_mp=$(docker volume inspect --format '{{ .Mountpoint }}' otobo_nginx_custom_config)
docker create --name tmp-nginx-container rotheross/otobo-nginx-webproxy:latest-11_0 (watch out: version number)
docker cp tmp-nginx-container:/etc/nginx/templates /tmp
docker cp tmp-nginx-container:/etc/nginx/templates/otobo_nginx-kerberos.conf.template.hidden $otobo_nginx_custom_config_mp/otobo_nginx.conf.template
docker rm tmp-nginx-container
vim docker-compose/otobo-nginx-custom-config.yml

צור קובץ OTOBO .env חדש

ראשית, עלינו להעביר את הקובץ הישן /opt/otobo-docker/.env ל-.env.tmp וליצור קובץ .env חדש הכולל את הגדרות Kerberos.

# Stop OTOBO Container if running
docker_admin>cd /opt/otobo-docker
docker_admin>docker-compose down

# create a backup of the old .env file
docker_admin>mv /opt/otobo-docker/.env /opt/otobo-docker/.env.tmp

# create a new backupfile including kerberos settings
docker_admin>cp /opt/otobo-docker/.docker_compose_env_https_kerberos /opt/otobo-docker/.env

כעת העתיקו את אפשרויות התצורה הקיימות לקובץ .env החדש (לפחות OTOBO_DB_ROOT_PASSWORD, OTOBO_NGINX_SSL_CERTIFICATE, OTOBO_NGINX_SSL_CERTIFICATE_KEY) והוסיפו את הגדרות Kerberos הבאות:

# Kerberos keytab OTOBO_NGINX_KERBEROS_KEYTAB=/opt/otobo-docker/nginx-conf/krb5.keytab

# תצורת Kerberos (חשוב, אנא הוסף הערה לאופציה זו כמו כאן!) # בתצורה ברירת המחדל, הקובץ krb5.conf נוצר באופן אוטומטי # OTOBO_NGINX_KERBEROS_CONFIG=/opt/otobo-docker/nginx-conf/krb5.conf

# שם שירות Kerberos OTOBO_NGINX_KERBEROS_SERVICE_NAME=HTTP/otrs32-centos6.otrs.local # -&gt; תמונה מספר 1

# Kerberos REALM OTOBO_NGINX_KERBEROS_REALM=ROTHER-OSS.COM -&gt; OTRS.LOCAL # -&gt; תמונה מספר 2

# בקר תחום Active Directory / Kerberos kdc OTOBO_NGINX_KERBEROS_KDC=

# בקר תחום Active Directory / שרת ניהול Kerberos OTOBO_NGINX_KERBEROS_ADMIN_SERVER=rother-oss.com

# תחום ברירת המחדל של Kerberos OTOBO_NGINX_KERBEROS_DEFAULT_DOMAIN=otrs.local

התחל OTOBO

לאחר תצורת Kerberos הראשונית, אנו מפעילים את OTOBO שוב:

# Start OTOBO using docker-compose
docker_admin> docker-compose up -d

הודע ל-OTOBO להשתמש באימות Kerberos

אם הגדרת אימות AD, השבת אותו (למשל על ידי הוספת הערה לשורות הרלוונטיות בקובץ Kernel/Config.pm). האימות לא יתבצע יותר באמצעות LDAP.

כדי להשתמש באימות Kerberos, קח את שורות Kerberos מ-Kernel/Config/Defaults.pm והכנס אותן ל-Kernel/Config.pm. לדוגמה, השורות הבאות עשויות לעבוד:

$Self->{AuthModule} = 'Kernel::System::Auth::HTTPBasicAuth';

# In case you need to replace some part of the REMOTE_USER, you can
# use the following RegExp ($1 will be new login).
$Self->{'AuthModule::HTTPBasicAuth::ReplaceRegExp'} = '^(.+?)@.+?$';

הגדר את הדפדפן כך שיבין את Kerberos SSO

כדי ש-SSO יפעל, יש להגדיר את הדפדפן בהתאם.

Chrome, Edge, Internet Explorer וכו«.

הוסף את הדף תחת דפים מקומיים או מהימנים והפעל את »אימות Windows משולב« (אפשרויות אינטרנט).

Firefox

הזן ”about:config“ בשורת הכתובת של Firefox.

ושנה את ההגדרות הבאות:

network.negotiate-auth.trusted-uris = https:// (או https://otobofqdn)

network.negotiate-auth.delegation-uris = http:// (או https://otobofqdn)

איתור באגים ובעיות

אם SSO של Kerberos אינו פועל, אנא בדוק תחילה אם מכולת NGINX פועלת:

# Check Container
docker_admin> docker ps

בשלב הבא, אנא בדוק את יומני NGINX לקבלת מידע נוסף:

# Check NGINX logs
docker_admin> docker logs otobo_nginx_1 -f

אם NGINX פועל, אנא התחבר למכולה של NGINX ובדוק את כל הקבצים הדרושים:

# Login to the NGINX Container
docker_admin> docker exec -it otobo_nginx_1 bash

# Now please check if the krb5.conf file exists with your needed values
nginx_root> cat /etc/krb5.conf

# Now please check if the krb5.keytab file exists
nginx_root> cat /etc/krb5.keytab

# If not, please quit from the container and copy the file again using docker
docker_admin> docker cp /opt/otobo-docker/nginx-conf/krb5.keytab otobo_nginx_1:/etc/krb5.keytab

איתור באגים ב-Kerberos

 # Login to the NGINX Container
docker_admin> docker exec -it otobo_nginx_1 bash

כעת תוכל לאתר באגים בהגדרות Kerberos. דוגמאות:

env KRB5_TRACE=/dev/stdout kvno HTTP/otrs32-centos6.otrs.local@OTRS.LOCAL
klist -e

kinit -VV -k -t /etc/krb5.keytab HTTP/otrs32-centos6.otrs.local@OTRS.LOCAL

kinit username@OTRS.LOCAL

אם נתקלת בבעיה שבה האימות פועל כביכול, אך הסוכן עדיין אינו נמצא במסד הנתונים, ייתכן שהסנכרון שלך (אם הוא מיושם) לא יפעל. שגיאה 52e (First bind failed) מצביעה על כך שיש בעיה במשתמש החיפוש שלך. זה קורה אם אתה משתמש באותו משתמש עבור סנכרון AD וכמשתמש SSO. אנא השתמש במשתמשי AD נפרדים לשם כך. כדי שלא תצטרך ליצור keytab חדש ולחזור על השלבים המוזכרים לעיל, ייתכן שיהיה קל יותר ליצור משתמש חדש לשימוש בסנכרון ה-AD שלך (ככל הנראה ב-Kernel/Config.pm).

במקרה ש-SSO אינו פועל כראוי, ודא: * שהמשתמש עבורו הוא אינו פועל נמצא ב-Active Directory * שהמערכת נמצאת בתחום * שהוא מוגדר כראוי כדף מהימן (ראה »הגדרת הדפדפן להבנת Kerberos SSO«)

התאמת ממשק הלקוח לזהות התאגידית

ב-OTOBO קל מאוד להתאים את אזור הלקוחות לזהות התאגידית שלך. עקוב אחר המדריך הזה צעד אחר צעד, ו-OTOBO יבריק בעיצוב שלך תוך זמן קצר.

הערה

נכון לעכשיו, לא כל כך קל להתאים את אזור הסוכן ל-CI של המשתמש. לשם כך, יש צורך לבצע שינויים בקבצי ה-css של OTOBO. יוצא מן הכלל הוא הלוגו בדף הכניסה של הסוכן ובכותרת הסוכן. ניתן להחליף את הלוגואים בקלות על ידי העתקתם לשרת ולאחר מכן התאמת האפשרויות AgentLoginLogo ו-AgentLogo תחת Admin -&gt; System Configuration.

שינוי צבעים באזור הלקוחות

כדי לשנות את הצבעים בממשק הלקוח של OTOBO, עבור אל Admin -&gt; System Configuration (ניהול -&gt; תצורת מערכת) ושנה את ההגדרות הבאות:

הגדרות צבע לקוח

To change the colours on the Customer Dashboard, please go to Admin -> System Configuration and search for CustomerDashboard. In the search result you will find all the options you need with colour definitions.

שינוי לוגואים ותמונות

בשלב הראשון, אנא העתיקו את הלוגואים והתמונות שלכם לשרת OTOBO. אנא השתמשו בלקוח SCP (WinSCP) למטרה זו. לעתים קרובות אין לכם את ההרשאות הדרושות כדי להעתיק את הלוגואים למקום הנכון. במקרה זה, מומלץ להשתמש בתיקייה /tmp/.

בשלב הבא העתק את הלוגו לספריית הבית של OTOBO:

**# Using OTOBO Docker Installation**
otobo_admin> docker cp /tmp/Logos.png otobo_web_1:/opt/otobo/var/httpd/htdocs/skins/Customer/default/img/

**# Nativ installation in /opt/otobo/**
otobo_admin> cp /tmp/Logos.png /opt/otobo/var/httpd/htdocs/skins/Customer/default/img/

כעת, עבור לממשק הסוכן OTOBO ל-Admin -&gt; System Configuration (ניהול -&gt; תצורת מערכת) ושנה את ההגדרות הבאות:

שינוי תמונות וטקסט בכניסת הלקוח

1 ו-2 - אפשרות תצורת מערכת CustomerLogin::Settings

הסר אטימות וסימן מים

כרגע לא ניתן להסיר את הכיסוי והסימן המים המשמשים בתמונה מימין באמצעות תצורת המערכת.

כדי להסיר את האטימות, אנא התאם את האפשרות #oooLoginBG &gt; .oooBG בקובץ.

var/httpd/htdocs/skins/Customer/default/css/Core.Login.css

 #oooLoginBG > .oooBG {
    position: relative;
    width: 100%;
    height: 100%;
 /*   opacity: 0.45; Disable opacity */
    background-size: cover;
    overflow: hidden;
}

כדי להסיר את סימן המים, אנא הסר את השורה הבאה מתוך הקובץ:

Kernel/Output/HTML/Templates/Standard/CustomerLogin.tt

<!-- start login -->
<div id="oooLoginBG">
    <div class="oooBG" style="background-image: url([% Data.Background | html %]);">
# remove this line ->        <div id="oooBGSignet" style="background-image: url([% Config("Frontend::WebPath") %]common/img/otobo-signet_border.svg);"></div>
    </div>
    <h1>[% Translate(Data.LoginText) | html %]</h1>
</div>

הערה

בשלב הבא, הוסף את הקבצים לחבילת opm, כדי שהשינויים יישמרו. הוראות לביצוע פעולה זו ניתן למצוא במדריך הניהול שלנו: https://doc.otobo.org/manual/developer/11.0/en/content/how-to-publish-otobo-extensions.html

שינוי אריחי לוח המחוונים של הלקוח ואפשרויותיו

כדי לשנות את הצבעים בלוח המחוונים של הלקוח, עבור אל מנהל -&gt; תצורת מערכת וחפש CustomerDashboard.

בתוצאות החיפוש תמצא את כל האפשרויות הדרושות לך עם הגדרות צבע.

1 - כדי לשנות את התמונה, הקישור והטקסט, השתמש באפשרות תצורת המערכת CustomerDashboard::Tiles###FeaturedLink-01

2 - כדי לשנות את הטקסט ברמה העליונה, השתמש באפשרות תצורת המערכת CustomerDashboard::Configuration::Text.

הערה

אנא השבת את אפשרויות התצורה מהאריחים שאינם נחוצים.

התקנת מודולי Perl מ-CPAN

כאשר יש דרישות מיוחדות, ייתכן שיהיה צורך במודולים נוספים של Perl. למרבה המזל, ל-Perl יש מאגר חבילות מצוין שיכול לספק כמעט את כל הצרכים. מאגר זה נקרא CPAN והוא זמין בכתובת https://metacpan.org/.

מומלץ להשתמש בלקוח שורת הפקודה cpanm להתקנת מודולים. לרוב, cpanm כבר מותקן במערכת שלך. אנא עיין ב-https://metacpan.org/pod/App::cpanminus כדי לדעת מה לעשות אם הוא אינו זמין.

לחלופין, מודולים רבים של Perl זמינים גם כחבילות עבור מערכת ההפעלה שלך. חבילות אלה ניתנות להתקנה באמצעות מנהל החבילות הרגיל של המערכת שלך.

כברירת מחדל, cpanm מתקין מודולים במיקום מערכת-רחב. במקרה זה, יש להתקין את המודולים כמשתמש root. לדוגמה, הפקודה

root> cpanm Acme::Dice

התוצאה היא:

otobo> perldoc -l Acme::Dice
/usr/local/share/perl/5.30.0/Acme/Dice.pm

התקנות מבוססות Docker

יש לנקוט בזהירות מיוחדת כאשר OTOBO פועל תחת Docker. במקרה זה, התקנה במיקום מערכתית תפעל בתחילה כרגיל. עם זאת, בשל אופן פעולתו של Docker, מודולים שהותקנו באופן זה יאבדו עם הפעלה מחדש של המכולה. לכן, יש להתקין את המודולים במיקום שיישאר לאחר ההפעלה מחדש. ניתן להשתמש בספרייה /opt/otobo/local בתוך הנפח otobo_opt_otobo. מודולים המותקנים ב-/opt/otobo/local ייקלטו על ידי Perl מכיוון שמשתני הסביבה PERL5LIB ו-PATH מוגדרים מראש בהתאם.

מודולי Perl המותקנים יהיו זמינים גם לאחר שדרוג OTOBO. הכלל הוא שקבצים שנוספו ל-/opt/otobo לא יוסרו בשדרוג.

כדי להתקין מודולי Perl במיקום ספציפי, עלינו לשנות את פקודת ההתקנה שלנו. באופן ספציפי, עלינו להוסיף את האפשרות --local-lib. להלן דוגמה למפגש במכולה web.

# starting a bash session in the container web
docker_admin> cd /opt/otobo-docker/
docker_admin> docker-compose exec web bash
otobo@6ef90ed00cd0:~$ pwd
/opt/otobo

# installing the sample module Acme::Dice
otobo@6ef90ed00cd0:~$ cpanm --local-lib local Acme::Dice
--> Working on Acme::Dice
Fetching http://www.cpan.org/authors/id/B/BO/BOFTX/Acme-Dice-1.01.tar.gz ... OK
Configuring Acme-Dice-1.01 ... OK
Building and testing Acme-Dice-1.01 ... OK
Successfully installed Acme-Dice-1.01
1 distribution installed

# confirm the installation directory
otobo@6ef90ed00cd0:~$ perldoc -l Acme::Dice
/opt/otobo/local/lib/perl5/Acme/Dice.pm

# locally installed module is found because the environment is preset accordingly
otobo@6ef90ed00cd0:~$ echo $PERL5LIB
/opt/otobo_install/local/lib/perl5:/opt/otobo/local/lib/perl5
otobo@6ef90ed00cd0:~$ echo $PATH
/opt/otobo_install/local/bin:/opt/otobo/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

כוונון ביצועים

זוהי רשימה של טכניקות לשיפור ביצועים עבור התקנת OTOBO שלך. הנושאים כוללים תצורה, קידוד, שימוש בזיכרון ועוד.

מודול אינדקס כרטיסים

ניתן להגדיר את מודול אינדקס הכרטיסים באמצעות הגדרת תצורת המערכת Ticket::IndexModule. ישנם שני מודולים אחוריים הבונים את האינדקס לתצוגת תור הכרטיסים:

Kernel::System::Ticket::IndexAccelerator::RuntimeDB

זוהי האפשרות המוגדרת כברירת מחדל, אשר תיצור כל תצוגת תור בזמן אמת מטבלת הכרטיסים. לא תהיה לך בעיה בביצועים עד שיהיו לך כ-60,000 כרטיסים פתוחים במערכת.

Kernel::System::Ticket::IndexAccelerator::StaticDB

המודול החזק ביותר, יש להשתמש בו כאשר יש לך מעל 80,000 כרטיסים פתוחים. הוא משתמש בטבלת ticket_index נוספת, שתאוכלס במילות מפתח בהתבסס על נתוני הכרטיסים. השתמש בפקודה הבאה ליצירת אינדקס ראשוני לאחר מעבר בין מערכות אחוריות:

otobo> /opt/otobo/bin/otobo.Console.pl Maint::Ticket::QueueIndexRebuild

אינדקס חיפוש כרטיסים

OTOBO משתמש באינדקס חיפוש מיוחד כדי לבצע חיפושים בטקסט מלא בכל השדות במאמרים ממקורות תקשורת שונים.

כדי ליצור אינדקס ראשוני, השתמש בפקודה זו:

otobo> /opt/otobo/bin/otobo.Console.pl Maint::Ticket::FulltextIndex --rebuild

הערה

אינדקס המאמרים בפועל מתבצע באמצעות משימת OTOBO daemon ברקע. מאמרים שנוספו זה עתה למערכת מסומנים לאינדקס באופן מיידי, אך ייתכן שהאינדקס שלהם יהיה זמין רק לאחר מספר דקות.

ישנן כמה אפשרויות זמינות לכוונון עדין של אינדקס החיפוש:

Ticket::SearchIndex::IndexArchivedTickets

קובע אם כרטיסים בארכיון ייכללו באינדקס החיפוש (מופעל כברירת מחדל). מומלץ להשאיר את האינדקס קטן במערכות גדולות עם כרטיסים בארכיון. אם אפשרות זו מופעלת, כרטיסים בארכיון יימצאו באמצעות חיפושים בטקסט מלא.

Ticket::SearchIndex::Attribute

הגדרות בסיסיות של אינדקס טקסט מלא.

הגדרת Ticket::SearchIndex::Attribute

הערה

הפעל את הפקודה הבאה כדי ליצור אינדקס חדש:

otobo> /opt/otobo/bin/otobo.Console.pl Maint::Ticket::FulltextIndexRebuild

WordCountMax

מגדיר את המספר המרבי של מילים שיעובדו לצורך בניית האינדקס. לדוגמה, רק 1,000 המילים הראשונות בגוף המאמר יאוחסנו באינדקס החיפוש של המאמרים.

WordLengthMin ו-WordLengthMax

משמש כגבולות אורך מילה. רק מילים באורך שבין שני ערכים אלה נשמרות באינדקס חיפוש המאמרים.

Ticket::SearchIndex::Filters

מסננים המבוססים על ביטויים רגולריים מחריגים חלקים מהטקסט המקורי מהאינדקס המלא.

הגדרת Ticket::SearchIndex::Filters

ישנם שלושה מסננים מוגדרים כברירת מחדל:

המסנן הראשון מסנן תווים מיוחדים כגון: , &amp; &lt; &gt; ? &quot; ! * | ; [ ] ( ) + $ ^ =

המסנן השני מסנן מילים שמתחילות או מסתיימות באחד מהתווים הבאים: &#x27; : .

המסנן השלישי מסנן מילים שאינן מכילות תו מילה: a-z, A-Z, 0-9, _

Ticket::SearchIndex::StopWords

מילות עצירה באנגלית עבור אינדקס טקסט מלא. מילים אלה יוסרו מאינדקס החיפוש.

הגדרת Ticket::SearchIndex::StopWords###en

ישנן מילים שנקראות ”מילות עצירה“ המוגדרות עבור שפות מסוימות. מילות עצירה אלו יוחסרו בעת יצירת אינדקס החיפוש.

ראה גם

אם השפה שלך אינה מופיעה בהגדרות תצורת המערכת או אם ברצונך להוסיף מילים נוספות, תוכל להוסיף אותן להגדרה זו:

Ticket::SearchIndex::StopWords###Custom

חיפוש מסמכים

OTOBO משתמשת ב-Elasticsearch עבור פונקציונליות חיפוש המסמכים שלה. לקבלת מבוא טוב למושגים, להתקנה ולשימוש ב-Elasticsearch, אנא עקבו אחר `מדריך ההתחלה &lt;https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started.html&gt;`__.

גודל הערימה

Elasticsearch נכתב ב-Java ולכן פועל במכונה וירטואלית Java (JVM) בכל צומת אשכול. מכונה וירטואלית Java כזו משתמשת בחלק מהזיכרון, המכונה heap, שגודלו ניתן להגדרה בקובץ התצורה jvm.options.

הגדרות המינימום והמקסימום של הערימה מוגדרות כברירת מחדל לערך של 1 GB וניתן לשנותן באמצעות האפשרויות הבאות:

Xms1g: גודל ערימה מינימלי.

Xmx1g: גודל ערימה מרבי.

אם ל-Xms יש ערך נמוך מ-Xmx, ה-JVM ישנה את גודל הערימה המשמשת בכל פעם שהמגבלה הנוכחית תחרוג, עד שיושג הערך של Xmx. שינוי גודל כזה גורם לשירות להיעצר עד לסיומו, מה שעלול להאט את מהירות ותגובתיות פעולות החיפוש או האינדקס. לכן מומלץ מאוד להגדיר את התצורות הללו לערך שווה.

אזהרה

אם גודל הערימה המרבי חורג, צומת האשכול הקשור מפסיק לפעול ואף עלול לכבות את השירות.

ככל שהערך המרבי של הערימה מוגדר גבוה יותר, כך Elasticsearch יכול להשתמש ביותר זיכרון, מה שמגדיל גם את ההפסקות האפשריות לאיסוף אשפה, המבוצעות על ידי JVM. לכן מומלץ להגדיר ערך ל-Xmx, שאינו גבוה מ-50% מהזיכרון הפיזי.

למידע נוסף וכללים מומלצים לגבי גודל הערימה, אנא עקבו אחר `התיעוד הרשמי &lt;https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html&gt;`__.

הקצאת דיסק

בעת הפעלת השירות, Elasticsearch בודק את שטח הדיסק הזמין. על סמך התוצאה, הוא מחליט אם להקצות שברים חדשים לצומת אשכול. במקרים מסוימים הוא אף מעביר שברים מצומת. התנהגות זו נקבעת על פי קיבולת הדיסק הנוכחית. ניתן להגדיר אותה באמצעות הגדרות בקובץ התצורה elasticsearch.yml. להלן כמה הגדרות תצורה רלוונטיות. הן מגיעות עם ערכי ברירת מחדל טובים, אך עשויות להיות חשובות בפתרון בעיות.

cluster.routing.allocation.disk.watermark.low

ערך ברירת המחדל הוא 85%. כאשר חורגים ממגבלה זו, Elasticsearch לא יקצה עוד שברים לצומת האשכול הקשור. פעולת הצומת אינה מושפעת מכך, וניתן להמשיך לאנדקס ולחפש נתונים.

cluster.routing.allocation.disk.watermark.high

ערך ברירת המחדל הוא 90%. כאשר חורגים ממגבלה זו, Elasticsearch ינסה להעביר את השברים הקיימים לצמתים אחרים שיש בהם מספיק מקום פנוי.

cluster.routing.allocation.disk.watermark.flood_stage

Default value of 95%. When this limit is exceeded, Elasticsearch will update the configuration of all indices, that have at least one shard allocated to the related cluster node, to read-only index blocks. Specifically, they are flagged with index.blocks.read_only_allow_delete. After that update, it is no longer possible to index new data to such indices. The indexes are restricted to searches and to delete actions only.

הערה

אם רמת ההצפה חרגה והאינדקסים מסוימים הוגדרו למצב קריאה בלבד, הגדרה זו לא תשתנה באופן אוטומטי על ידי Elasticsearch. אם הדיסקים הקשורים מכילים שוב מספיק שטח פנוי עקב פעולות ידניות, יש לשנות את ההגדרה בחזרה למצב רגיל באופן ידני.

למידע נוסף על סימני מים בדיסק והקצאת שברים מבוססת דיסק, אנא עקבו אחר `התיעוד הרשמי &lt;https://www.elastic.co/guide/en/elasticsearch/reference/current/disk-allocator.html&gt;`__.

אחסון מאמרים

ישנם שני מודולים אחוריים שונים לאחסון מאמרים של טלפון, דוא“ל ומאמרים פנימיים. ניתן להגדיר את אחסון המאמרים המשמש בהגדרה Ticket::Article::Backend::MIMEBase::ArticleStorage.

Kernel::System::Ticket::Article::Backend::MIMEBase::ArticleStorageDB

מודול ברירת המחדל הזה יאחסן קבצים מצורפים במסד הנתונים. הוא גם עובד עם מספר שרתים קדמיים, אך דורש שטח אחסון רב במסד הנתונים.

הערה

אל תשתמש בזה עם התקנות גדולות.

Kernel::System::Ticket::Article::Backend::MIMEBase::ArticleStorageFS

השתמש במודול זה כדי לאחסן קבצים מצורפים במערכת הקבצים המקומית. הוא מהיר, אך אם יש לך מספר שרתים קדמיים, עליך לוודא שמערכת הקבצים משותפת לכל השרתים. מקם אותו בשיתוף NFS או, עדיף, ב-SAN או בפתרון דומה.

הערה

מומלץ להתקנות גדולות.

ניתן לעבור בין שני סוגי ה-back end תוך כדי עבודה. ניתן להחליף את ה-back end בתצורת המערכת, ולאחר מכן להפעיל את כלי השירות של שורת הפקודה כדי להעביר את המאמרים מהמאגר לקובץ המערכת או להפך:

otobo> /opt/otobo/bin/otobo.Console.pl Admin::Article::StorageSwitch --target ArticleStorageFS

ניתן להשתמש באפשרות --target כדי לציין את ה-back end היעד.

הערה

התהליך כולו עשוי לארוך זמן רב, בהתאם למספר המאמרים שברשותך ולעוצמת המעבד ו/או לקיבולת הרשת הזמינה.

אם ברצונך לשמור קבצים מצורפים ישנים במסד הנתונים, תוכל להפעיל את אפשרות תצורת המערכת Ticket::Article::Backend::MIMEBase::CheckAllStorageBackends כדי להבטיח ש-OTOBO ימשיך לאתר אותם.

ארכוב כרטיסים

מכיוון ש-OTOBO יכול לשמש כמערכת חסינת ביקורת, מחיקת כרטיסים סגורים עשויה להיות רעיון לא טוב. לכן, קיימת פונקציה המאפשרת לארכיב כרטיסים.

כרטיסים העומדים בקריטריונים מסוימים יכולים להיות מסומנים כארכיונים. כרטיסים אלה אינם נגישים אם אתה מבצע חיפוש כרטיסים רגיל או מפעיל משימה כללית של סוכן. המערכת עצמה כבר לא צריכה להתמודד עם כמות עצומה של כרטיסים, שכן רק הכרטיסים האחרונים נלקחים בחשבון בעת השימוש ב-OTOBO. הדבר יכול להביא לשיפור משמעותי בביצועים במערכות גדולות.

כדי להשתמש בתכונת הארכיון:

הפעל את ההגדרה Ticket::ArchiveSystem בתצורת המערכת.

הגדר משימת סוכן כללית:

לחץ על כפתור הוסף משימה במסך סוכן כללי.

הגדרות משימה: הזן שם למשימת הארכוב.

ביצוע אוטומטי: בחר באפשרויות המתאימות כדי לתזמן משימה זו.

כרטיסים נבחרים: מומלץ לאחסן רק כרטיסים שנסגרו לפני מספר חודשים.

עדכון/הוספת תכונות כרטיס: הגדר את השדה ארכיון כרטיסים נבחרים ל*ארכיון כרטיסים*.

שמור את העבודה בסוף העמוד.

לחץ על הקישור הפעל משימה זו בטבלת הסקירה הכללית כדי לראות את הכרטיסים המושפעים.

לחץ על כפתור הפעל משימה.

הערה

ניתן לשנות עד 5000 כרטיסים על ידי הפעלת משימה זו באופן ידני.

כאשר אתה מחפש כרטיסים, ברירת המחדל של המערכת היא לחפש כרטיסים שאינם בארכיון.

לחיפוש כרטיסים בארכיון:

פתח את מסך חיפוש הכרטיסים.

הגדר את חיפוש בארכיון ל*כרטיסים שלא ארכבו* או כל הכרטיסים.

בצע את החיפוש.

אחסון במטמון

מודול מטמון מהיר מסייע מאוד מבחינת ביצועים. אנו ממליצים להשתמש בשרת מטמון Redis או ליצור דיסק RAM.

התקן שרת מטמון Redis

התקן את שרת Redis

ראשית, עליך להתקין את שרת Redis העדכני ביותר. הדרך הקלה ביותר היא להגדיר `setup Redis &lt;https://redis.io/topics/quickstart&gt;`__ באותו מארח כמו OTOBO ולקשר אותו ליציאה המוגדרת כברירת מחדל.

התקן את מודול Perl Redis או Redis::Fast

ניתן לבחור איזה מודול Redis להשתמש: Redis או Redis::Fast (התואם ל-Redis אך מהיר פי 2). אנא השתמש ב-otobo.CheckModules.pl --list כדי לבחור את החבילה המתאימה לך:

otobo> /opt/otobo/bin/otobo.CheckModules.pl --all

הגדר את OTOBO עבור Redis

אנא השתמש ב-OTOBO SysConfig (מנהל -&gt; תצורת מערכת) כדי להגדיר את OTOBO כהלכה:

| Setting                       | Description                | Default value  |
| ----------------------------- | -------------------------- | -------------- |
| Cache::Redis###Server         | Redis server URL           | 127.0.0.1:6379 |
| Cache::Redis###DatabaseNumber | Number of logical database | 0              |
| Cache::Redis###RedisFast      | Use or not Redis::Fast     | 0              |
| Cache::Module                 | Activate Redis Cache Module| DB (use Redis) |

אחסון במטמון RamDisk

OTOBO מאחסן הרבה נתונים זמניים ב-/opt/otobo/var/tmp. אנא ודא כי נעשה שימוש במערכת קבצים ובאחסון בעלי ביצועים גבוהים. אם יש לך מספיק זיכרון RAM, תוכל גם לנסות למקם ספרייה זו בדיסק RAM, כך:

otobo> /opt/otobo/bin/otobo.Console.pl Maint::Session::DeleteAll
otobo> /opt/otobo/bin/otobo.Console.pl Maint::Cache::Delete
root> mount -o size=16G -t tmpfs none /opt/otobo/var/tmp

הערה

הוסף נקודת חיבור קבועה ב-/etc/fstab.

אזהרה

זה יהיה אחסון לא קבוע שיאבד בעת אתחול מחדש של השרת. כל ההפעלות שלך (אם אתה מאחסן אותן במערכת הקבצים) ונתוני המטמון שלך יאבדו.

קיבוץ

עבור עומסים גבוהים במיוחד, ייתכן שיהיה צורך להפעיל את OTOBO על אשכול של מספר שרתים קדמיים. זוהי משימה מורכבת עם מכשולים רבים. אנו ממליצים בחום ליצור קשר עם המומחים שלנו לפני שתנסו ליישם זאת בעצמכם.

היסטוריית תיעוד

2019 - מדריך התקנה של OTRS - OTRS AG (https://otrs.com)

2020 - מדריך התקנה OTOBO - Rother OSS GmbH (https://otobo.de)

הוצאת: Rother OSS GmbH, (https://otobo.de), Oberwalting 31, 94339 Leiblfing, גרמניה. מחברים: OTRS AG (הגרסה המקורית), Rother OSS GmbH (https://otobo.de)

ניתנת רשות להעתיק, להפיץ ו/או לשנות מסמך זה בהתאם לתנאי רישיון התיעוד החופשי של GNU, גרסה 1.3 או כל גרסה מאוחרת יותר שפורסמה על ידי Free Software Foundation; ללא סעיפים קבועים, ללא טקסטים על הכריכה הקדמית וללא טקסטים על הכריכה האחורית. עותק של הרישיון ניתן למצוא באתר `GNU &lt;https://www.gnu.org/licenses/fdl-1.3.txt&gt;`__.

אינדקס

Kerbeos Single Sign On for Otobo native installation

In this instruction we setup the

Active Directory

Otobo linux server

User browser setup

to ensure the AD user seamless authorization into Otobo.

הערה

Please read the chapter התקנת OTOBO for basic information about installing and configure OTOBO. This manual assumes that Otobo has been installed and configured using Apache.

Kerberos SSO overview

To avoid manual creation of Agents accounts, Otobo allows users and agents to login in Otobo using their AD credentials.

הערה

for agents LDAP auth backend example, in Kernel/Config/Defaults.pm search

$Self->{'AuthModule'} = 'Kernel::System::Auth::Sync::LDAP';

We can do even better and authenticate users and agents fully automatically, skipping the login screen entirely. This is called Single Sign-On (SSO) and could be done using Kerberos protocol.

הערה

The SSO kerbeos setup is quite complex. You may stay with LDAP and avoid all the headache.

SSO authentication process overview

user logins into windows using his AD credentials

user opens Otobo website with a browser

browser and webserver do some Kerbeos crypto-magic

browser pass the name of the authorized user to Otobo

Otobo trust the username passed in the REMOTE_USER environment variable or the Remote-User HTTP header and skips the login screen

Kerberos SSO setup

In our example Otobo runs at https://otobo.company.com/ . AD controller should be able to reach the otobo service by its name using DNS A-Record!

AD domain name is ”DOMAIN“ (because it may differ from ”COMPANY.COM“).

Otobo is a service in Kerberos terminology Service communicates with AD using a service account. Let service account name be ”serviceaccount“.

Active Directory settings

Login on AD controller under administrator. Open ”Active Directory Users and Computers“ application. Inside the Users container, create a new account:

User logon name (warning - here are two fields): HTTP/otobo.company.com @DOMAIN.COM

user logon name (pre Windows 2000) (two fields): DOMAIN\ serviceaccount

in account options: set checkbox on:

this account supports Kerberos-AES-128

this account supports Kerberos-AES-256

Register an SPN (Service Principal Name) for the otobo service. Open terminal and run:

setspn -A HTTP/otobo.company.com DOMAIN\serviceaccount

Check that SPN has been added. Distinguished Name - that includes CN, DC, OU - can be different depending from your AD structure. Important is that you see your service principal name (HTTP/…).

setspn -L DOMAIN\serviceaccount
Registered Serviceprincipalname (SPN) for CN=OTOBO,DC=company,DC=com:
    HTTP/otobo.company.com

Generate Keytab file

הערה

Keytab is a cryptographic file containing a representation of the service and its long-term key as it exists in the directory service. In our Active Directory domain, keytab file will be used by the Webserver (that runs on Linux) to authenticate User against AD via Kerberos protocol.

Login into AD under domain administrator account and generate keytab file using ”ktpass“:

ktpass -out krb5.keytab -princ HTTP/otobo.company.com@DOMAIN.COM -mapuser DOMAIN\serviceaccount -crypto All -pass <serviceaccount_password> -ptype KRB5_NT_PRINCIPAL

setup Kerberos client on the Otobo server

Copy the keytab file from the AD controller to the otobo server

scp krb5.keytab root@otobo.company.com:/etc/krb5.keytab

Login on the linux server and install Kerberos client libraries

apt install krb5-user

הערה

instructions were proved on Ubuntu 24.04. Other linux flavours can have different names for Kerberos libraries.

Now check the keytab file content:

root@otobo:~# klist -kte /etc/krb5.keytab
Keytab name: FILE:/etc/krb5.keytab
KVNO Timestamp           Principal
---- ------------------- ------------------------------------------------------
  11 01/01/1970 00:00:00 HTTP/otobo.company.com@DOMAIN.COM (DEPRECATED:des-cbc-crc)
  11 01/01/1970 00:00:00 HTTP/otobo.company.com@DOMAIN.COM (DEPRECATED:des-cbc-md5)
  11 01/01/1970 00:00:00 HTTP/otobo.company.com@DOMAIN.COM (DEPRECATED:arcfour-hmac)
  11 01/01/1970 00:00:00 HTTP/otobo.company.com@DOMAIN.COM (aes256-cts-hmac-sha1-96)
  11 01/01/1970 00:00:00 HTTP/otobo.company.com@DOMAIN.COM (aes128-cts-hmac-sha1-96)

Configure your Domain in /etc/krb5.conf :

[libdefaults]
    default_realm = DOMAIN.COM

    # The following krb5.conf variables are only for MIT Kerberos.
    kdc_timesync = 1
    ccache_type = 4
    forwardable = true
    proxiable = true
    rdns = false

    # The following libdefaults parameters are only for Heimdal Kerberos.
    fcc-mit-ticketflags = true

[realms]
    TR-GRUPPE.DE = {
        kdc = domain_controller.company.com
        admin_server = domain_controller.company.com
    }

Then try to obtain a ticket-granting ticket (TGT) from AD:

kinit -V HTTP/otobo.company.com -k -t /etc/krb5.keytab
Using keytab: /etc/krb5.keytab
Authenticated to Kerberos v5

This is a correct answer. Goto webserver section.

Error: No suitable Keys for service

kinit -V HTTP/otobo.company.com -k -t /etc/krb5.keytab
kinit: Keytab contains no suitable keys for HTTP/otobo.company.com@DOMAIN.COM while getting initial credentials

Double check your kinit arguments. If agruments are correct, but you still got this error, it may be the keytab has incorrect SPN inside.

List the SPN entries in keytab: klist -kte krb5.keytab

The list should contain exact Principal (service account) name (+ AD domain name), that you have registered in AD, e.g.

1 01/01/1970 00:00:00 HTTP/otobo.company.com@DOMAIN.COM (DEPRECATED:arcfour-hmac)

If not, you probably had mistyped the ktpass command arguments and have to regenerate the keytab file.

Error: Client not found in Kerberos

kinit -V HTTP/otobo.company.com -k -t /etc/krb5.keytab
kinit: Client 'HTTP/otobo.company.com@DOMAIN.COM' not found in Kerberos database while getting initial credentials

This error happends when

service user name (serviceaccount) in keytab file and in AD are different

service user password from keytab file and AD differs

if serviceaccount password has been changed in AD - regenerate the keytab file

SPN (Service Principal Name) was not registered or differs from the Principal name in the keytab file.

Check if SPN is registered for ”serviceaccount“ - under AD user on windows run setspn -L DOMAIN\serviceaccount

The output SPN should match with the output of klist -kte krb5.keytab

Apache with Kerberos SSO and SSL

הערה

I suppose you already have apache running, if not, read Otobo basic installation manual

Install and enable required apache modules:

apt install libapache2-mod-auth-gssapi
a2enmod auth_gssapi headers ssl

Ensure the Apache user (www-data) can read /etc/krb5.keytab:

chown root:www-data /etc/krb5.keytab
chmod 640 /etc/krb5.keytab

Create apache config: nano /etc/apache2/sites-available/otobo-apache-ssl.conf

<VirtualHost *:443>
        # Server
        ServerName otobo.company.com
        ServerAdmin root@company.com

        # logs
        # LogLevel info auth_gssapi:debug ssl:warn  # uncomment to debug Kerberos
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # ssl
        SSLEngine on
        SSLCertificateFile      /etc/ssl/company.pem
        SSLCertificateKeyFile   /etc/ssl/company.key

        ### Perl
        # mod_perl is required
        <IfModule !mod_perl.c>
            Error "mod_perl is required for Plack::Handler::Apache. Use apache2-httpd-cgi.include.conf as fallback."
        </IfModule>
        <IfModule mpm_event_module>
            Error "The Multi-Processing Module mpm_event is active but it isn' supported by OTOBO. Please switch to mpm_prefork."
        </IfModule>
        <IfModule mpm_worker_module>
            Error "The Multi-Processing Module mpm_worker is active but it isn't supported by OTOBO. Please switch to mpm_prefork."
        </IfModule>
        # Use a dedicated Perl interpreter for the current virtual host, usually the default virtual host
        PerlOptions +Parent

        # Preload otobo.psgi so that that the app doesn't have to be loaded again for every process.
        # This also sets @INC.
        PerlPostConfigRequire /opt/otobo/scripts/apache2-perl-preload_otobo_psgi.pl

        <Location />
                # Kerbeos SSO Authentication
                AuthType GSSAPI
                AuthName "Kerberos authenticated intranet with mod_auht_gssapi"
                GssapiCredStore keytab:/etc/krb5.keytab
                # Only allow krb5 and ignore ntlmssp and iakerb
                GssapiAllowedMech krb5
                # We don't want to fallback to Basic Auth
                GssapiBasicAuth Off
                # Resolve remote's user into REMOTE_USER variable.
                # Proper setting of [realms].auth_to_local in /etc/krb5.conf is required
                GssapiLocalName On
                # Enforce encrypted HTTPS/TLS connection
                GssapiSSLonly On
                require valid-user

                # handle all requests, including the static content, with otobo.psgi
                SetHandler          perl-script
                PerlResponseHandler Plack::Handler::Apache2
                PerlSetVar          psgi_app /opt/otobo/bin/psgi-bin/otobo.psgi

                # WARNING - for Kerberos to work in Apache, you have to disable Require all granted!
                # Require all granted
        </Location>
</VirtualHost>

# Limit the number of requests per child to avoid excessive memory usage.
MaxConnectionsPerChild 1000

הערה

you can use Nginx for SSL part and Apache for Kerbeos, than in the apache configuration change <VirtualHost *:443> to <VirtualHost localhost:8080> and delete the SSL-related lines

If you have the old apache configuration for Otobo - don’t forget to disable it.

Enable our website

sudo a2ensite otobo-apache-ssl.conf
sudo systemctl reload apache2

Ensure the webserver sends a proper header, that invites browser to use Kerberos authentication:

curl -v localhost:443

output should have a following header:

WWW-Authenticate: Negotiate …

Obobo configuration

To make Otobo trust the username passed by the webserver (in the REMOTE_USER environment variable or the Remote-User HTTP header) and skip the login screen, you have to enable a HTTPBasicAuth auth backend in the Otobo configuration Kernel/Config.pm:

for agents: $Self->{AuthModule} = 'Kernel::System::Auth::HTTPBasicAuth (instead of LDAP)

for users : $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::HTTPBasicAuth';

You still can use LDAP to populate Users data from the AD, as it is described in the corresponding sections of``Kernel/Config/Defaults.pm``

Configure Browser to understand kerberos sso

In the browser address line, open about:config and change the following settings:

network.negotiate-auth.trusted-uris = https://otobo.company.com
network.negotiate-auth.delegation-uris = https://otobo.company.com
network.automatic-ntlm-auth.trusted-uris = https://otobo.company.com  # a fallback ntlm windows mechanism, not sure if needed
signon.autologin.proxy = true