How to install and configure nexus 3 on ubuntu 20.04

فهرست مطالب

  • مقدمه
  • منابع مورد نیاز
  • زیرساخت لازم
  • تغییر Hostname سیستم‌عامل
  • توقف سرویس multipathd
  • تغییر Time Zone
  • اتصال سیستم‌عامل به یک NTP Server
  • تخصیص مخازن اوبونتو به سیستم‌عامل
  • بروزرسانی سیستم‌عامل به آخرین نسخه‌ی 20.04
  • نصب و را‌ه‌اندازی LXD
  • ایجاد Container برای سرویس Nexus
  • نصب پیش‌نیازهای لازم سرویس Nexus
  • دریافت پرونده‌های مورد نیاز سرویس Nexus
  • نصب و راه‌اندازی سرویس Nexus
  • دریافت پروژه‌ی desertco-nginx
  • دریافت پرونده‌های Image سرویس Nginx
  • پیکربندی و اماده‌سازی سرویس Nginx
  • راه‌اندازی سرویس Nginx تحت بستر Docker
  • پیکربندی اولیه سرویس Nexus
  • پیکربندی و آماده‌سازی سرویس Active Directory به منظور میزبانی اتصال سرویس Nexus
  • پیکربندی و آماده‌سازی سرویس Nexus به منظور اتصال به سرویس Active Directory
  • ایجاد مخزن Docker توسط سرویس Nexus
  • بررسی صحت اتصال به مخزن Docker ایجاد شده توسط سرویس Nexus
  • انتقال Container سرویس Nexus به شبکه‌ی داخلی یا محیط ایزوله

مقدمه

  • هدف از این مستند، ارائه‌ی راه‌کاری جامع جهت نصب و راه‌اندازی سرویس Nexus در سطح شبکه است.
  • در این مستند سعی شده است که تمام مطالب از پایه و نیازمندی‌های اولیه به صورت کامل پوشش داده شود.

منابع مورد نیاز

  • پیشنهاد می‌شود تعداد هسته‌های پردازنده برای سرویس Nexus کمتر از 4 عدد نباشد.
  • همچنین مقدار Memory در نظر گرفته شده برای این سرویس کمتر از 8GB نباشد.
  • در نهایت پیشنهاد می‌شود مقدار فضای در نظر گرفته شده برای این سرویس کمتر از 100GB نباشد.
  • البته منابع مورد نیاز برای این سرویس باید متناسب با حجم کار و تعداد نفرات و کاربران سامانه در نظر گرفته شود.
  • اما منابع ذکر شده جهت پیاده‌سازی سرویس Nexus در سطح قابل قبولی می‌باشد.

زیرساخت لازم

  • سیستم‌عامل Linux Ubuntu 20.04 – Server به منظور استقرار سرویس Gitlab بر روی آن پیشنهاد می‌شود.
  • پیشنهاد می‌شود سیستم‌عامل در نظر گرفته شده برای این سرویس، خام و در حالت پایه باشد. (فاقد سرویس‌های دیگر باشد.)
  • به منظور پیکربندی سیستم‌عامل ابتدا از طریق پروتکل SSH به آن متصل شوید.
$ ssh -l root nexus.homayouni.info

تغییر Hostname سیستم‌عامل

  • پیشنهاد می‌شود ابتدا Hostname مربوط به سیستم‌عامل به صورت صحیح اصلاح شود.
  • دامنه‌ی nexus.homayouni.info در مفروضات این مستند برای سرویس nexus در نظر گرفته شده است، لذا نام 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/ focal main restricted universe multiverse
deb [arch=amd64] http://mirror.aminidc.com/ubuntu/ focal-updates main restricted universe multiverse
deb [arch=amd64] http://mirror.aminidc.com/ubuntu/ focal-security main restricted universe multiverse
deb [arch=amd64] http://mirror.aminidc.com/ubuntu/ focal-backports main restricted universe multiverse
  • نکته : نوجه نمایید که آدرس مخازن بالا مربوط به سرورهای اینترنتی می‌باشد. در صورتی که در سطح شبکه، مخازن اوبونتو وجود دارد، پیشنهاد می‌شود مخازن داخلی شبکه را جایگزین سرورهای اینترنتی نمایید.

بروزرسانی سیستم‌عامل به آخرین نسخه‌ی 20.04

  • در مرحله‌ی بعد پیشنهاد می‌شود یک مرتبه سیستم‌عامل به آخرین نسخه‌ی موجود 20.04 یا Focal بروزرسانی شود. برای این منظور به صورت زیر عمل نمایید.
# apt-get update
# apt-get dist-upgrade -y
# apt-get autoremove -y
# apt-get clean
  • در صورتی که دستورات بالا موفقیت آمیز اجرا شود با تصویری مشابه زیر روبه‌رو می‌شود.

  • تصویری دیگر از بروزرسانی سیستم‌عامل به شرح زیر است.

  • پیشنهاد می‌شود پس از اتمام فرآیند بروزرسانی، یک مرتبه سیستم‌عامل راه‌اندازی مجدد شود.

نصب و را‌ه‌اندازی LXD

  • پیشنهاد می‌شود سرویس Nexus بر روی یک Container از جنس LXD نصب و راه‌اندازی شود.
  • در این صورت فرآیند انتقال سرویس Nexus به همراه تمام داده‌های موجود در آن به سادگی امکان‌پذیر خواهد بود.
  • نکته : می‌توان همین فرآیند را از طریق Container از جنس Docker انجام داد.
  • به منظور نصب و راه‌اندازی LXD به صورت زیر عمل نمایید.
# apt-get install -y lxd
  • با اجرای دستور بالا فرآیند نصب آغاز خواهد شد.

  • در طور فرآیند نصب سوالی مشابه تصویر زیر پرسیده می‌شود که گزینه‌ی پیش‌فرض یعنی 4.0 را اجرا نمایید.

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

  • نکته : علی‌رغم استفاده از دستور apt-get جهت نصب و راه‌اندازی سرویس LXD ، بسته‌ی lxd تنها راه‌انداز و نصابی جهت نصب از طریق snap می‌باشد. لذا دسترسی به اینترنت جهت نصب این بسته نیاز می‌باشد. (حتی اگر بسته‌ی LXD از مخازن داخلی شبکه، شرکت یا سازمان نصب شود.)
  • در ادامه به منظور پیکربندی LXD دستور زیر را اجرا نمایید.
# lxd init
  • با اجرای دستور بالا سوالاتی پرسیده می‌شود که مشابه تصویر زیر پاسخ دهید.

نکته : حتما مقدار سوال Name of the storage backend to use را برابر با dir وارد نمایید.


ایجاد Container برای سرویس Nexus

  • به منظور ایجاد Container جهت نصب سرویس Nexus دستور زیر را اجرا نمایید.
# lxc launch ubuntu:20.04 nexus
  • دستور بالا یک Container با نام nexus ایجاد می‌کند.

  • پس از ساخت Container به صورت زیر به آن متصل شوید.
# lxc shell nexus
  • نکته : پس از ورود به Container تمام مراحل گذشته اعم از تغییر Time Zone ، اتصال سیستم‌عامل به یک NTP Server ، تخصیص مخازن اوبونتو به سیستم‌عامل و … را انجام دهید.

نصب پیش‌نیازهای لازم سرویس Nexus

  • ابتدا وارد Container مربوط به سرویس Nexus شوید.
# lxc shell nexus
  • سپس بسته‌ی زیر را نصب نمایید.
# apt-get install -y openjdk-8-jdk
  • دستور بالا پیش‌نیازهای جاوایی را بر روی سیستم نصب خواهد نمود.

دریافت پرونده‌های مورد نیاز سرویس Nexus

  • ابتدا وارد Container مربوط به سرویس Nexus شوید.
# lxc shell nexus
  • ابتدا وارد مسیر opt/ شوید.
# cd /opt
  • پرونده‌ی latest-unix.tar.gz را به صورت زیر دریافت نمایید.
# wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz

  • در مرحله‌ی بعد نسبت به Extract پرونده‌ی دریافت شده اقدام نمایید.
# tar -zxvf latest-unix.tar.gz
  • انتظار می‌رود با Extract پرونده‌ی مذکور، دو پوشه با نام‌های زیر ایجاد شود. (ممکن است نسخه‌ی nexus دریافت شده متفاوت باشد.)
nexus-3.64.0-04
sonatype-work

  • در ادامه نسبت به تغییر نام پوشه‌ی nexus-3.64.0-04 اقدام نمایید.
# mv /opt/nexus-* /opt/nexus

نصب و راه‌اندازی سرویس Nexus

  • در مرحله‌ی بعد یک کاربر با نام nexus به صورت زیر ایجاد نمایید.
# useradd -d /opt/nexus -s /bin/bash nexus
  • در نهایت با استفاده از دستور passwd کلمه‌ی عبور قوی برای حساب nexus ایجاد نمایید.
# passwd nexus
  • نکته : حتما از کلمه‌ی عبور قوی استفاده نمایید.
  • در ادامه پرونده‌ی nexus.conf را به صورت زیر ایجاد نمایید.
# vim /etc/security/limits.d/nexus.conf
  • محتویات پرونده‌ی nexus.conf را به صورت زیر تکمیل کرده و پرونده را ذخیره نمایید.
nexus - nofile 65536
  • در نهایت دستور زیر را اجرا نمایید.
ulimit -n 65536
  • در ادامه سطح دسترسی دو پوشه‌ی nexus و sonatype-work را به شکل زیر تغییر دهید.
# chown -R nexus:nexus /opt/nexus /opt/sonatype-work
  • در مرحله‌ی بعد پرونده‌ی nexus.rc را با یک ویرایشگر باز نمایید.
# vim /opt/nexus/bin/nexus.rc
  • مقدار مولفه‌ی run_as_user را برابر با nexus قرار دهید.
run_as_user="nexus"
  • در ادامه پرونده‌ی nexus.vmoptions را با یک ویرایشگر باز نمایید.
# vim /opt/nexus/bin/nexus.vmoptions
  • پیشنهاد می‌شود مولفه‌های Xms ، Xmx و MaxDirectMemorySize را به شکل زیر تغییر دهید.
-Xms5120m
-Xmx5120m
-XX:MaxDirectMemorySize=5120m
  • در ادامه پرونده‌ی nexus.service را ایجاد و با یک ویرایشگر باز نمایید.
# vim /etc/systemd/system/nexus.service
  • محتویات زیر را برای پرونده‌ی بالا در نظر بگیرید.
[Unit]
Description=nexus service
After=network.target

[Service]
Type=forking
LimitNOFILE=65536
ExecStart=/opt/nexus/bin/nexus start
ExecStop=/opt/nexus/bin/nexus stop
User=nexus
Restart=on-abort

[Install]
WantedBy=multi-user.target
  • در نهایت دستور زیر را اجرا نمایید.
# systemctl daemon-reload
  • در نهایت سرویس nexus.service را راه‌اندازی نمایید.
# systemctl start nexus.service
# systemctl enable nexus.service
  • به منظور مشاهده‌ی وضعیت سرویس Nexus به صورت زیر عمل نمایید.
# systemctl status nexus
  • در صورتی که سرویس Nexus موفقیت آمیز آغاز شده باشد، با تصویری مشابه زیر روبه‌رو خواهید شد.


دریافت پروژه‌ی desertco-nginx

  • به منظور سرویس‌دهی بهتر سامانه‌ی Nexus تحت پروتکل https از سرویس Nginx به عنوان نوعی Reverse Proxy استفاده می‌شود.
  • برای این منظور ابتدا وارد مسیر زیر شوید. (درون ماشین Host)
# cd /opt/
  • سپس پروژه‌ی desertco-nginx را به صورت زیر دریافت نمایید.
# git clone https://git.homayouni.info/git/iman/desertco-nginx.git -b release
  • نکته : در صورتی که این پروژه را به صورت Offline دریافت نمودید، آن را به مسیر opt/ منتقل نمایید.
  • در ادامه وارد پوشه‌ی مربوط به پروژه شوید.
# cd desertco-nginx

دریافت پرونده‌های Image سرویس Nginx

  • به منظور دریافت پرونده‌ی Image مربوط به سرویس Nginx وارد پوشه‌ی images شوید.
# cd images
  • در نهایت اسکریپت setup.sh را به صورت زیر اجرا نمایید.
# bash setup.sh
  • انتظار می‌رود با اجرای اسکریپت بالا ، فرآیند دریافت پرونده‌های مورد نیاز آغاز شود.

  • تصویری دیگر از مراحل اجرای اسکریپت setup.sh به شرح زیر است.

  • تصویری دیگر از مراحل اجرای اسکریپت setup.sh به شرح زیر است.

  • تصویری دیگر از مراحل اجرای اسکریپت setup.sh به شرح زیر است.

  • تصویر بالا نشان دهنده‌ی آن است که تمام پرونده‌های Image مورد نیاز به درستی بر روی سیستم بارگزاری شده است.
  • نکته : در صورتی که پرونده‌ی nginx.tar.7z را به صورت Offline در اختیار دارید و نمی‌خواهید از لینک اینترنتی استفاده نمایید، کافیست پرونده‌ی nginx.tar.7z را به ماشین سامانه‌ی Nexus انتقال دهید سپس به صورت زیر اقدام به بارگزاری آن بر روی سیستم‌عامل کنید.
# apt-get update
# apt-get install p7zip-full docker-compose -y
# 7z x nginx.tar.7z
# docker load -i nginx.tar
  • به منظور صحت فرآیند بارگزاری پرونده‌ی Image مربوط به سرویس Gitlab به صورت زیر عمل نمایید.
# docker images
  • انتظار می‌رود با تصویری مشابه زیر روبه‌رو بشوید.


پیکربندی و اماده‌سازی سرویس Nginx

  • به منظور پیکربندی سرویس Nginx ابتدا وارد مسیر زیر شوید.
# cd /opt/desertco-nginx/nginx/
  • تمام پرونده‌های پیکربندی و راه‌انداز سرویس Nginx در مسیر بالا قرار دارد.
  • به منظور پیکربندی سرویس Nginx پرونده‌ی conf.d/nginx.conf را با یک ویرایشگر باز نمایید.
# vim conf.d/nginx.conf
  • در خط سوم و نهم به آدرس دامنه‌ای که جهت دسترسی به سرویس Nexus مد نظر دارید، اشاره شده است.
  • این آدرس‌ها را متناسب با نام انتخاب شده در شبکه انتخاب نمایید.
  • با توجه به مفروضات این مستند، دامنه‌ی nexus.homayouni.info برای خطوط ذکر شده انتخاب شده است.
  • در خط بیستم آدرس IP مربوط به Container سرویس Nexus را وارد نمایید. (پورت را نیز 8081 وارد نمایید.)

  • نکته : معمولا Container مربوط به سرویس Nexus یک آدرس IP در شبکه‌ی 10 خواهد گرفت. به منظور مشاهده‌ی IP مربوط به این Container به صورت زیر عمل نمایید.
# lxc list

راه‌اندازی سرویس Nginx تحت بستر Docker

  • پس از پیکربندی سرویس Nginx ، به منظور راه‌اندازی سرویس مذکور ابتدا وارد مسیر زیر شوید.
# cd /opt/desertco-nginx/nginx
  • در ادامه اسکریپت setup.sh را به منظور راه‌اندازی سرویس Nginx تحت بستر Docker به صورت زیر اجرا نمایید.
# bash setup.sh up
  •  در صورتی که اجرای اسکریپت بالا موفقیت آمیز باشد، با تصویری مشابه زیر روبه‌رو خواهید شد.

  • در نهایت به منظور بررسی صحت سرویس‌ها به صورت زیر عمل نمایید.
# docker ps -a
  • انتظار می‌رود وضعیت تمام سرویس‌های مذکور Up باشد.

  • همان طور که در تصویر بالا مشخص است، وضعیت سرویس Nginx باید Up باشد.

پیکربندی اولیه سرویس Nexus

  • از طریق یک مرورگر وارد دامنه‌ی سرویس Nexus شوید.

  • کلمه‌ی عبور کاربر admin سامانه‌ی Nexus در مسیر زیر قرار گرفته است.
# cat /opt/sonatype-work/nexus3/admin.password
  • در نهایت اقدام به ورود به سامانه‌ی Nexus نمایید.

  • تصاویری دیگر از سامانه‌ی Nexus به شرح زیر است.

  • در ادامه مطابق با تصویر زیر پنجره‌ای جهت پیکربندی اولیه‌ی سامانه‌ی Nexus نمایش داده می‌شود.

  • در مرحله‌ی بعد کلمه‌ی عبور کاربر admin را تغییر دهید.

  • در مرحله‌ی بعد می‌توانید نسبت به غیرفعال نمودن دسترسی مهمانان سامانه اقدام نمایید.

  • نکته : فعال یا غیرفعال بودن کاربر مهمان باید متناسب با سیاست‌های امنیتی اتخاذ شده در شبکه، شرکت یا سازمان باشد.

پیکربندی و آماده‌سازی سرویس Active Directory به منظور میزبانی اتصال سرویس Nexus

  • ابتدا از طریق پروتکل RDP یا صفحه‌ی کنسول وارد سرویس Active Directory شوید.
  • سپس وارد ابزار مدیریتی Active Directory Users and Computers شوید.
  • از سمت چپ صفحه‌ی Active Directory Users and Computers بر روی نام دامنه‌ی سرویس Active Directory کلیک نمایید.
  • بر روی فضای خالی سمت چپ راست کلیک نمایید و گزینه‌ی New > Organizational Unit را انتخاب نمایید.
  • سپس یک OU با نام Applications ایجاد نمایید.

  • در مرحله‌ی بعد درون روی OU ساخته شده یک OU جدید با نام nexus ایجاد نمایید.

  • پیشنهاد می‌شود تیک گزینه‌ی Protect container from accidental deletion را بردارید.
  • در ادامه بر روی OU با نام nexus راست کلیک کرده و گزینه‌ی New > Group را انتخاب نمایید.

  • نام گروه را مطابق با تصویر زیر برابر با company-nexus-group قرار دهید. (این نام مثال می‌باشد.)
  • در ادامه بر روی گروه ساخته شده راست کلیک کرده و گزینه‌ی Properties را انتخاب نمایید.

  • از بخش Description یک توضیح جامع و کامل در خصوص گروه بنویسید.

  • در ادامه به سربرگ Members رفته و بر روی گزینه‌ی Add کلیک نمایید.

  • حال تمام حساب‌های کاربری مورد نظر را اضافه نمایید.

  • در نهایت بر روی گزینه‌ی Ok کلیک نمایید.

پیکربندی و آماده‌سازی سرویس Nexus به منظور اتصال به سرویس Active Directory

  • ابتدا از طریق یک مرورگر وارد سامانه‌ی Nexus شوید.
  • سپس مطابق تصویر زیر بر روی آیکون چرخ‌دنده کلیک نمایید.

  • در صفحه‌ی تنظیمات از منوی سمت چپ بر روی گزینه‌ی LDAP کلیک نمایید.

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

  • در ادامه به منظور بررسی صحت اطلاعات وارد شده بر روی گزینه‌ی Verify connection کلیک نمایید.
  • در صورتی که اطلاعات وارد شده صحیح باشد، با تصویری مشابه زیر روبه‌رو خواهید شد.

  • در ادامه بر روی گزینه‌ی Next کلیک نمایید.
  • در صفحه‌ی جدید تمام مولفه‌های ساخته شده را مطابق با تصاویر زیر تکمیل نمایید.

  • باقی مولفه‌ها را نیز همانند تصویر زیر تکمیل نمایید.

  • در نهایت مطابق با تصویر بالا بر روی گزینه‌ی Verify user mapping کلیک نمایید.
  • در صورتی که اتصال موفقیت آمیز صورت گیرد با تصویری مشابه زیر روبه‌رو خواهید شد.

  • در ادامه بر روی گزینه‌ی Verify login کلیک نمایید و در صفحه‌ی Login Credentials حساب‌کاربری یکی از اعضای Active Directory را به عنوان نمونه وارد نمایید.
  • در نهایت بر روی گزینه‌ی Test Connections کلیک نمایید.

  • در صورتی که اتصال موفقیت آمیز باشد با تصویری مشابه زیر روبه‌رو خواهید شد.

  • در نهایت بر روی گزینه‌ی Create کلیک نمایید.

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

ایجاد مخزن Docker توسط سرویس Nexus

  • ابتدا از طریق یک مرورگر وارد سامانه‌ی Nexus شوید.
  • سپس مطابق با تصویر زیر بر روی آیکون چرخ‌دنده کلیک نمایید.

  • سپس از منوی سمت چپ بر روی گزینه‌ی Repositories کلیک نمایید.

  • در مرجله‌ی بعد بر روی گزینه‌ی Create repository کلیک نمایید.
  • در صفحه‌ی بعد سرویس docker (hosted) را انتخاب نمایید.

  • در ادامه مولفه‌های مورد نیاز را مطابق با تصاویر زیر تکمیل نمایید.

  • نکته : حتما تیک گزینه‌ی HTTP را فعال نموده و یک Port متفاوت نسبت به 8081 و 80 انتخاب نمایید.
  • باقی مولفه‌ها را نیز مطابق تصویر زیر تکمیل نمایید.

  • در نهایت بر روی گزینه‌ی Create repository کلیک نمایید.
  • در ادامه به منظور تخصیص دسترسی به این مخزن برای یکی از کاربران تعریف شده درون سرویس Active Directory ، وارد بخش Roles شوید.

  • مطابق با تصویر بالا بر روی گزینه‌ی Create Role کلیک نمایید.
  • در مرحله‌ی بعد تمام مولفه‌ها را مطابق تصاویر زیر تکمیل نمایید.

  • باقی مولفه‌ها را مطابق تصویر زیر تکمیل نمایید.

  • باقی مولفه‌ها را مطابق تصویر زیر تکمیل نمایید.

  • در نهایت بر روی گزینه‌ی Save کلیک نمایید.
  • در مثال بالا یک Role برای کاربر تعریف شده در سرویس Active Directory با نام m.karimi ایجاد گردید. (سطح دسترسی به مخزن test نیز داده شد.)
  • نکته : سرویس Nexus بر روی Container ایجاد شده است. همچنین مطابق با تنظیمات بالا ، پورت 8082 برای مخزن Docker در نظر گرفته شده است، لذا باید پورت داخل Container را به بیرون اصطلاحا Map نمود.
  • برای این منظور دستور زیر را در ماشین Host اجرا نمایید.
# lxc config device add nexus tcp8082 proxy listen=tcp:0.0.0.0:80 connect=tcp:10.113.32.12:8082
  • نکته : توجه بفرمایید که آدرس 10.113.32.12 مربوط به Container سرویس Nexus می‌باشد.

بررسی صحت اتصال به مخزن Docker ایجاد شده توسط سرویس Nexus

  • ابتدا پرونده‌ی daemon.json را با یک ویرایشگر باز نمایید.
# vim /etc/docker/daemon.json
  • تنظیمات زیر را برای پرونده‌ی بالا در نظر بگیرید.
{
"insecure-registries" : [ "nexus.homayouni.info:8082" ]
}
  • در نهایت سرویس Docker را یک مرتبه راه‌اندازی مجدد نمایید.
# systemctl restart docker
  • ابتدا به صورت زیر به مخزن وارد شوید.
# docker login -u m.karimi https://nexus.homayouni.info:8082

  • حال به عنوان نمونه یکی از Imageهای موجود در سیستم را Tag بزنید تا برای push آماده شود.

  • در نهایت اقدام به push یا بارگزاری Image بر روی مخزن نمایید.

  • حال از یک سیستم دیگر به منظور بررسی صحت اتصال به مخزن Docker به صورت زیر عمل نمایید.
# docker login -u m.karimi https://nexus.homayouni.info:8082

  • انتظار می‌رود بتوانید Image شخصی Push شده را در سیستم جدید دریافت نمایید.
# docker pull nexus.homayouni.info:8082/m.karimi/nginx:m.karimi

  • به منظور بررسی بشتر به صورت زیر عمل نمایید.
# docker images

  • همان طور که مشاهده می‌کنید، پرونده‌ی Image به درستی بر روی سیستم جدید بارگزاری شده است.

انتقال Container سرویس Nexus به شبکه‌ی داخلی یا محیط ایزوله

  • روش‌های زیادی به منظور انتقال داده‌ها سرویس Nexus به شبکه‌ی داخلی یا محیط ایزوله موجود می‌باشد اما با توجه به این که در این مستند سرویس Nexus بر روی LXD Container بالا آماده است، پیشنهاد می‌شود یک پرونده‌ی Tar از Container ایجاد شده و به سادگی به شبکه‌ی داخلی یا محیط ایزوله منتقل شود.
  • برای این منظور نیاز است ابتدا از Container یک Image تهیه شود.
# lxc publish nexus --alias nexus-6-Feb-2024
  • سپس به صورت زیر اقدام به تهیه‌ی خروجی از Image ساخته شده نمایید.
# lxc image export nexus-6-Feb-2024 ./nexus-6-Feb-2024
  • به منظور بارگزاری پرونده‌ی nexus-6-Feb-2024.tar.gz در شبکه‌ی داخلی یا محیط ایزوله، به صورت زیر عمل نمایید.
# lxc image import ./nexus-6-Feb-2024.tar.gz --alias nexus-6-Feb-2024
  • دستور بالا یک Image با نام nexus-6-Feb-2024 ایجاد می‌کند. در نهایت نسبت به ساخت Container از Image بارگزاری شده نمایید.

  • تست شده بر روی Linux Ubuntu 20.04
  • تست شده بر روی Windows Server 2022
  • تشت شده بر روی Nexus نسخه‌ی 3.64.0-04

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *