فهرست مطالب
- مقدمه
- منابع مورد نیاز
- زیرساخت لازم
- تغییر Hostname سیستمعامل
- توقف سرویس multipathd
- تغییر Time Zone
- اتصال سیستمعامل به یک NTP Server
- تخصیص مخازن اوبونتو به سیستمعامل
- بروزرسانی سیستمعامل به آخرین نسخهی 22.04
- نصب و راهاندازی LXD
- دریافت پروندهی Image مربوط به سیستمعامل Ubuntu 22.04
- ساخت LXD Container بر مبنای Ubuntu 22.04 جهت نصب سرویس Jitsi
- نصب و راهاندازی سرویس Jitsi
- پیکربندی Container جهت میزبانی دو درگاه 443 و 80
- اتصال به سامانهی Jitsi جهت آزمایش اولین تماس تصویری
مقدمه
- هدف از این مستند، ارائهی راهکاری جامع جهت نصب و راهاندازی سرویس Jitsi در سطح شبکه است.
- در این مستند سعی شده است که تمام مطالب از پایه و نیازمندیهای اولیه به صورت کامل پوشش داده شود.
منابع مورد نیاز
- پیشنهاد میشود تعداد هستههای پردازنده برای سرویس Jitsi کمتر از 4 عدد نباشد.
- همچنین مقدار Memory در نظر گرفته شده برای این سرویس کمتر از 8GB نباشد.
- در نهایت پیشنهاد میشود مقدار فضای در نظر گرفته شده برای این سرویس کمتر از 50GB نباشد.
- البته منابع مورد نیاز برای این سرویس باید متناسب با حجم کار و تعداد نفرات و کاربران سامانه در نظر گرفته شود.
- اما منابع ذکر شده جهت پیادهسازی سرویس Jitsi در سطح قابل قبولی میباشد.
زیرساخت لازم
- سیستمعامل Linux Ubuntu 20.04 – Server به منظور استقرار سرویس Jitsi بر روی آن پیشنهاد میشود.
- البته قرار هست در ادامهی مستند فرآیند نصب LXD Container بر مبنای Ubuntu 22.04 توضیح داده شود.
- در واقع سرویس Jitsi بر روی Ubuntu 22.04 نصب و راهاندازی خواهد شد.
- پیشنهاد میشود سیستمعامل در نظر گرفته شده برای این سرویس، خام و در حالت پایه باشد. (فاقد سرویسهای دیگر باشد.)
- به منظور پیکربندی سیستمعامل ابتدا از طریق پروتکل SSH به آن متصل شوید.
$ ssh -l root jitsi.homayouni.info
تغییر Hostname سیستمعامل
- پیشنهاد میشود ابتدا Hostname مربوط به سیستمعامل به صورت صحیح اصلاح شود.
- دامنهی chat.homayouni.info در مفروضات این مستند برای سرویس Jitsi در نظر گرفته شده است، لذا نام Hostname سیستمعامل نیز بهتر است به این نام تغییر یابد.
- برای این منظور ابتدا پروندهی hostname را با یک ویرایشگر باز نمایید.
# vim /etc/hostname
- سپس مقدار جدید Hostname را وارد کرده و پرونده را ذخیره نمایید.
- در ادامه پروندهی hosts را با یک ویرایشگر باز نمایید.
# vim /etc/hosts
- در خط دوم اشاره به Hostname قدیمی سیستمعامل شده است، آن را با مقدار جدید تغییر دهید.
توقف سرویس multipathd
- در ادامه پیشنهاد میشود سرویس multipathd به صورت کامل متوقف شود. برای این منظور به صورت زیر عمل نمایید.
# systemctl disable --now multipathd.service multipathd.socket
- انتظار میرود با اجرای دستور بالا سرویس multipathd متوقف شود در زمان بالا آمدن سیستمعامل دیگر اجرا نشود.
تغییر Time Zone
- به منظور تغییر Time Zone سیستمعامل دستور زیر را اجرا نمایید.
# dpkg-reconfigure tzdata
- با اجرای دستور بالا ، با صفحهی مشابه تصویر زیر روبهرو خواهید شد.
- مطابق با تصویر بالا، گزینهی Asia را انتخاب نموده و گزینهی Ok را اجرا نمایید.
- در ادامه گزینهی Tehran را انتخاب نمایید.
- در نهایت بر روی گزینهی Ok کلیک نمایید.
- انتظار میرود با تصویری مشابه زیر روبهرو شوید.
اتصال سیستمعامل به یک NTP Server
- به منظور اتصال سیستمعامل به یک NTP Server ابتدا پروندهی timesyncd.conf را با یک ویرایشگر باز نمایید.
# vim /etc/systemd/timesyncd.conf
- در خط ۱۵ از پروندهی بالا اشاره به NTP Server شده است. این خط را به شکل زیر تغییر دهید.
... NTP=194.225.70.246 ...
- نکته : آدرس 194.225.70.246 مربوط به یک سرور اینترنتی و دامنهی ntp.nic.ir میباشد. استفاده از NTP Server داخلی شرکت، سازمان یا اینترنتی باید متناسب با سیاستهای اتخاذ شده، باشد.
- سپس دستور زیر را به منظور استفاده از NTP Server اجرا نمایید.
# timedatectl set-ntp on
- در نهایت یک مرتبه سرویس systemd-timesyncd را راهاندازی مجدد نمایید.
# systemctl restart systemd-timesyncd
- با انجام مراحل بالا انتظار میرود ساعت و تاریخ سیستمعامل صحیح و متصل به یک NTP Server باشد.
تخصیص مخازن اوبونتو به سیستمعامل
- در مرحلهی بعد پیشنهاد میشود مخازن موجود در سیستمعامل متناسب با شبکهی سازمان یا شرکت دستخوش تغییرات شود.
- ابتدا با یک ویرایشگر پروندهی sources.list را باز نمایید.
# vim /etc/apt/sources.list
- در ادامه تمام محتویات داخل پروندهی sources.list را پاک کرده و مقادیر زیر را جایگزین نمایید.
deb [arch=amd64] http://mirror.aminidc.com/ubuntu/ jammy main restricted universe multiverse deb [arch=amd64] http://mirror.aminidc.com/ubuntu/ jammy-updates main restricted universe multiverse deb [arch=amd64] http://mirror.aminidc.com/ubuntu/ jammy-security main restricted universe multiverse deb [arch=amd64] http://mirror.aminidc.com/ubuntu/ jammy-backports main restricted universe multiverse
- نکته : نوجه نمایید که آدرس مخازن بالا مربوط به سرورهای اینترنتی میباشد. در صورتی که در سطح شبکه، مخازن اوبونتو وجود دارد، پیشنهاد میشود مخازن داخلی شبکه را جایگزین سرورهای اینترنتی نمایید.
بروزرسانی سیستمعامل به آخرین نسخهی 22.04
- در مرحلهی بعد پیشنهاد میشود یک مرتبه سیستمعامل به آخرین نسخهی موجود 22.04 یا Jammy بروزرسانی شود. برای این منظور به صورت زیر عمل نمایید.
# apt-get update # apt-get dist-upgrade -y # apt-get autoremove -y # apt-get clean
- در صورتی که دستورات بالا موفقیت آمیز اجرا شود با تصویری مشابه زیر روبهرو میشود.
- تصویری دیگر از بروزرسانی سیستمعامل به شرح زیر است.
- پیشنهاد میشود پس از اتمام فرآیند بروزرسانی، یک مرتبه سیستمعامل راهاندازی مجدد شود.
نصب و راهاندازی LXD
- پیشنهاد میشود سرویس Jitsi بر روی یک Container از جنس LXD نصب و راهاندازی شود.
- در این صورت فرآیند انتقال سرویس Jitsi به همراه تمام دادههای موجود در آن به سادگی امکانپذیر خواهد بود.
- نکته : میتوان همین فرآیند را از طریق Container از جنس Docker انجام داد.
- انتظار میرود به صورت پیشفرض LXD بر روی سیستمعامل Ubuntu 22.04 نصب باشد.
- در ادامه به منظور پیکربندی LXD دستور زیر را اجرا نمایید.
# lxd init
- با اجرای دستور بالا سوالاتی پرسیده میشود که مشابه تصویر زیر پاسخ دهید.
نکته : حتما مقدار سوال Name of the storage backend to use را برابر با dir وارد نمایید.
دریافت پروندهی Image مربوط به سیستمعامل Ubuntu 22.04
- به منظور دریافت پروندهی Image مربوط به سیستمعامل Ubuntu 22.04 ابتدا دستور زیر را اجرا نمایید تا FINGERPRINT لازم جهت دریافت Image را پیدا کنید.
# lxc image list images: 'jammy'
- خروجی دستور بالا تصویری مشابه زیر خواهد بود.
- در نهایت به صورت زیر اقدام به دریافت Image مربوطه نمایید. (توجه نمایید که FINGERPRINT مربوطه با بروزرسانی پروندههای Image از سمت سرورهای LXD ، تغییر خواهند کرد.)
# lxc image copy images:0ed555fe6db5 local: --alias jammy
- با اجرای دستور بالا با تصویری مشابه زیر روبهرو خواهید شد.
- با توجه به این که فرآیند دریافت پروندهی Image از سرورهای اینترنتی خواهد بود، ممکن است این فرآیند کمی زمانبر باشد.
ساخت LXD Container بر مبنای Ubuntu 22.04 جهت نصب سرویس Jitsi
- در مرحلهی بعد به صورت زیر اقدام به ساخت یک LXD Container بر مبنای سیستمعامل Ubuntu 22.04 جهت نصب و راهاندازی سرویس Jitsi نمایید.
# lxc launch local:jammy Jitsi-Container
- خروجی تصویر بالا مشابه تصویر زیر خواهد بود.
- در نهایت به صورت زیر وارد Container مربوطه شوید.
# lxc shell Jitsi-Container
- نکته : انتظار میرود تمام مراحل مربوط به تنظیم مخزن، سرور NTP و … را بر روی Container انجام دهید.
نصب و راهاندازی سرویس Jitsi
- پس از ورود به Container ابتدا بستههای زیر را نصب نمایید.
# apt-get install -y wget curl gnupg2 apt-transport-https
- با اجرای دستور بالا خروجیای مشابه تصویر زیر روبهرو خواهید شد.
- در ادامه مخزن Jitsi را به شکل زیر ایجاد نمایید.
# echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list
- در مرحلهی بعد کلید مخزن را به شکل زیر دریافت کرده و بر روی سیستم نصب نمایید.
# wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add -
- انتظار میرود با اجرای دستور بالا خروجی OK را تحویل بگیرید. (مطابق با تصویر زیر)
- در نهایت اقدام به بروزرسانی بستهها و نصب بستهی jitsi-meet نمایید.
# apt-get update # apt-get install jitsi-meet -y
- با اجرای دستور بالا بستهی jitsi-meet به همراه پیشنیازهای آن نصب خواهد شد.
- تصویری از فرآیند این بسته به شرح زیر است.
- در طور فرآیند نصب بسته با مرحلهای جهت ورود آدرس دامنهای که قصد تعیین برای سرویس Jitsi را دارید، مواجه خواهید شد.
- در مرحلهی بعد سوالی در خصوص نحوهی تعیین گواهی امضای دیجیتال پرسیده میشود.
- پیشنهاد میشود در این مرحله گزینهی سوم یعنی Generate a new self-signed certificate را انتخاب نمایید.
- پس از پایان فرآیند نصب با تصویری مشابه زیر روبهرو خواهید شد.
- در نهایت سرویسهای مربوطه را یک مرتبه راهاندازی مجدد نمایید.
# systemctl restart prosody.service jicofo.service jitsi-videobridge2.service
پیکربندی Container جهت میزبانی دو درگاه 443 و 80
- تمام پیکربندیها و تنظیمات سرویس Jitsi درون Container انجام شده است.
- حال نیاز است ارتباط دو درگاه ۴۴۳ و ۸۰ بر روی پروتکل TCP را از خارج از Container به داخل Container متصل کنید.
- برای این منظور به صورت زیر عمل نمایید.
# lxc config device add Jitsi-Container tcp80 proxy listen=tcp:0.0.0.0:443 connect=tcp:10.59.191.79:443 # lxc config device add Jitsi-Container tcp443 proxy listen=tcp:0.0.0.0:443 connect=tcp:10.59.191.79:443
- در صورتی که دو دستور بالا به درستی اجرا شود با تصویری مشابه زیر روبهرو خواهید شد.
- نمایی دیگر از خروجی دستورات بالا به شرح زیر است.
- نکته : توجه فرمایید که آدرس 10.59.191.79 در دستورات بالا مثال بوده و باید متناسب با آدرس Container سرویس Jitsi جابجا شود.
- به منظور مشاهدهی آدرس IP مربوط به Container سرویس Jitsi به صورت زیر عمل نمایید.
# lxc list
- خروجی دستور بالا مشابه تصویر زیر خواهد بود.
اتصال به سامانهی Jitsi جهت آزمایش اولین تماس تصویری
- به منظور آزمایش اولین تماس تصویری ابتدا از طریق یک مرورگر وارد سامانهی Jitsi شوید.
- به منظور ساخت یک ارتباط تصویری یک نام درون کادر نوشته و بر روی گزینهی Start meeting کلیک نمایید.
- پس از ساخت کانال ارتباطی، به داخل آن هدایت خواهید شد و دسترسیهای لازم جهت فعال نمودن صوت و تصویر از شما گرفته میشود. (مطابق تصویر بالا)
- در نهایت لینک کانال ساخته شده قابل استفاده برای دیگران خواهد بود. آن را از طرق مختلف به افراد مورد نظر برسانید تا ارتباط تصویری با آنان برقرار شود.
- تست شده بر روی Linux Ubuntu 22.04
- تست شده با Jitsi نسخهی 2.0.9258-1