راهنمای استفاده از مخازن و میرورهای داخلی برای توسعه‌دهندگان در شرایط اختلال اینترنت

تیم فنی کد برنامه نویسی
در روزهای بحرانی قطعی اینترنت، با تنظیم میرورهای داخلی برای داکر، npm و پایتون، محدودیت‌ها را دور بزنید و پایداری پروژه‌های خود را حفظ کنید.
تبلیغات

با توجه به شرایط بحرانی اینترنت در پی جنگ و اتفاقات اخیر، از نهم اسفند ۱۴۰۴ ارتباط شبکه‌ی داخلی با اینترنت بین‌الملل با اختلالات بی‌سابقه‌ای مواجه شده؛ براساس گزارش‌های نت‌بلاکس، سطح دسترسی به اینترنت آزاد در کشور روی مرز ۲ درصد قرار دارد؛ حاکمیت برخی از سرویس‌های پرکاربرد مانند موتور جستجوی گوگل را در لیست سفید (Whitelist) قرار داده؛ اما این وضعیت برای توسعه‌دهندگان نرم‌افزار، مهندسان زیرساخت و تیم‌های فنی که برای پیشبرد پروژه‌ها و اجرای چرخه‌های CI/CD به مخازن نرم‌افزاری جهانی وابسته‌اند، چالشی فلج‌کننده ایجاد کرده است.

در شرایط کنونی، امکان دانلود مستقیم پکیج‌ها، کتابخانه‌ها و ایمیج‌های پایه‌ای از سرویس‌دهندگانی مانند Docker Hub، npm و PyPI تقریبا غیرممکن شده؛ برای رفع این بن‌بست فنی و حفظ پایداری پروژه‌ها، استفاده از میرورهای داخلی یک راهکار عملیاتی است.

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

۱. مخزن داکر

دسترسی به ایمیج‌های داکر برای استقرار سرویس‌ها حیاتی است. میرور داکر پارس‌پک با ایجاد یک Endpoint داخلی، امکان دریافت ایمیج‌های عمومی را بدون نیاز به ارتباط مستقیم با Docker Hub فراهم می‌کند.

تنظیم میرور داکر روی سیستم

برای هدایت درخواست‌ها به مخزن داخلی، فایل daemon.json داکر را با دستور زیر ویرایش یا ایجاد کنید:

sudo bash -c 'cat > /etc/docker/daemon.json <<EOF { "registry-mirrors": ["https://docker.abrha.net"] } EOF'

سپس برای اعمال تغییرات، سرویس داکر را ری‌استارت کنید:

docker logout sudo systemctl restart docker

سپس برای دسترسی به ایمیج های داکر از دستور زیر استفاده کنید:

docker pull <ImageName>

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

docker pull docker.abrha.net/<ImageName>

۲. مخزن Node.js (npm)

برای نصب بدون خطای پکیج‌های Node.js در زمان اختلال شبکه، می‌توانید از میرور npm پارس‌پک استفاده کنید. این سرویس درخواست‌های npm را از طریق زیرساخت پایدار داخلی پردازش می‌کند و پکیج‌ها را بدون وابستگی به اینترنت بین‌الملل، بدون ارورهای تایم‌اوت و با سرعت بالا دانلود در اختیار شما قرار می‌دهد.

تنظیم میرورهای npm

اگر صرفا قصد دارید یک پکیج خاص؛ مثلا express را با استفاده از میرور پارس‌پک نصب کنید و تنظیمات سیستم تغییر نکند، فلگ registry را به‌کار بگیرید:

npm install express --registry="https://mirror.abrha.net/repository/npm/"

برای هدایت دائمی و Global تمامی درخواست‌های npm در ویندوز، مک و لینوکس به سرورهای داخل کشور، دستور زیر را در ترمینال یا CMD وارد کنید:

npm config --global set registry https://mirror.abrha.net/repository/npm/

اکنون می‌توانید دستور npm install را اجرا کرده و از مخزن mirror پارس‌پک داخل کشور، داده‌ها را دریافت کنید.

برای بررسی وضعیت میرور و آدرس فعلی رجیستری از کد زیر استفاده کنید:

npm config get registry

برای غیرفعال‌کردن و بازگشت به حالت پیش‌فرض، می‌توانید از دستور زیر استفاده کنید:

npm config --global delete registry https://mirror.abrha.net/repository/npm/

۳. مخزن پایتون (pip - PyPI)

توسعه‌دهندگان پایتون برای دریافت کتابخانه‌ها از PyPI می‌توانند از تنظیمات زیر برای دور زدن محدودیت‌های فعلی شبکه استفاده کنند. این سرویس درخواست‌های pip را ابتدا به سرورهای داخلی پارس‌پک ارسال می‌کند و سپس نسخه‌ی موردنیاز پکیج را با سرعت بالا در اختیارتان قرار می‌دهد.

تنظیم میرورهای PyPI

برای نصب موقت یک پکیج؛ مثلا django از طریق میرور بدون تغییر در تنظیمات اصلی سیستم، دستور زیر را اجرا کنید:

pip install -i https://mirror.abrha.net/repository/pypi/simple django

برای اینکه ابزار pip همیشه و به‌صورت پیش‌فرض و Global از میرور پارس‌پک استفاده کند، دستورات زیر را وارد کنید:

pip config --user set global.index https://mirror.abrha.net/repository/pypi/simple pip config --user set global.index-url https://mirror.abrha.net/repository/pypi/simple pip config --user set global.trusted-host mirror.abrha.net

برای بررسی وضعیت میرور از کد زیر استفاده کنید:

pip config list

برای حذف میرور و بازگشت به تنظیمات پیش‌فرض، از کد زیر استفاده کنید:

pip config --user unset global.index pip config --user unset global.index-url pip config --user unset global.trusted-host

۴. مخزن PHP (Composer)

برای مدیریت وابستگی‌های پروژه‌های PHP که در مخزن Packagist قرار دارند، می‌توانید کامپوزر را روی میرور داخلی تنظیم کنید.

تنظیم میرورهای Composer

اگر می‌خواهید میرور فقط برای پروژه‌ی فعلی، به‌صورت لوکال در فایل کانفیگ همان پروژه اعمال شود، دستور زیر را اجرا کنید:

composer config repo.packagist composer https://mirror.abrha.net/repository/composer/

در صورتی که می‌خواهید تنظیمات به‌صورت Global روی سیستم ذخیره شود تا تمام پروژه‌ها از میرور پارس‌پک استفاده کنند، دستور زیر را وارد کنید:

composer config --global repo.packagist composer https://mirror.abrha.net/repository/composer/

برای بررسی وضعیت فعلی میروراز کد زیر استفاده کنید:

composer config --global --list | grep packagist

برای حذف میرور و بازگشت به تنظیمات پیش‌فرض، دستور زیر را وارد کنید:

composer config --global --unset repos.packagist

۵. مخزن Golang

برای دریافت سریع و بدون خطای ماژول‌های زبان Go، می‌توانید متغیرهای محیطی مربوط به پروکسی را تغییر دهید.

تنظیم میرورهای Golang

برای تنظیم میرور فوق کافی است صرفا دستورات زیر را اجرا کنید:

go env -w GOPROXY=https://mirror.abrha.net/repository/go/,direct go env -w GOSUMDB=off

برای بررسی میرورها، می‌توانید از دستور زیر استفاده کنید (متغیر GOPROXY را بررسی کنید):

go env GOPROXY GOSUMDB

برای حذف میرور و بازگشت به تنظیمات پیش‌فرض، دستور زیر را به‌کار بگیرید:

go env -u GOPROXY go env -u GOSUMDB

۶. مخزن دات‌نت (NuGet)

برای توسعه‌دهندگان دات‌نت، امکان بازگردانی و نصب پکیج‌ها (Restore) از طریق میرور پارس‌پک مهیا است.

تنظیم میرورهای NuGet

برای استفاده از میرور پارس‌پک روی فایل کانفیگ و بازگردانی پکیج‌ها، می‌توانید از دستور زیر استفاده کنید:

nuget restore packages.config -Source https://mirror.abrha.net/repository/nuget/index.json -PackagesDirectory ./packages

برای اضافه‌کردن مستقیم میرور به سورس‌های سیستم در دات‌نت، دستور زیر را اجرا کنید:

dotnet nuget add source https://mirror.abrha.net/repository/nuget/index.json --name ParspackMirror

برای بررسی وضعیت میرور، کد زیر را به‌کار بگیرید:

dotnet nuget list source

برای حذف میرور و بازگشت به تنظیمات پیش‌فرض، دستور زیر را وارد کنید:

dotnet nuget remove source ParspackMirror

۷. مخزن جاوا (Maven)

برای بیلد بدون خطای پروژه‌های جاوا در زمان اختلالات اینترنت، می‌توانید از میرور Maven پارس‌پک استفاده کنید.

تنظیم میرورهای Maven

برای هدایت درخواست‌های Maven به میرور داخلی، باید فایل پیکربندی آن را (معمولا در مسیر conf/settings.xml در دایرکتوری نصب ویندوز یا m2/.settings.xml~ در لینوکس) ویرایش کنید و قطعه‌کد زیر را در بلاک <mirrors> قرار دهید:

<mirrors> <mirror> <id>local-maven-mirror</id> <name>Local Maven Mirror</name> <url>https://mirror.abrha.net/repository/maven/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>

برای بررسی وضعیت میرور، کد زیر را وارد کنید:

mvn help:effective-settings

برای حذف میرور و بازگشت به تنظیمات پیش‌فرض نیز کافی است قطعه‌کد اضافه‌شده در بلاک <mirrors> را از فایل settings.xml پاک کنید.

نظرات