مقدمه
Shipit ابزار جهانی اتوماسیون و استقرار برای توسعه دهندگان Node.js است. این ابزار شامل یک جریان کار بر اساس پکیج محبوب Orchestrator ، ورود به سیستم و دستورات SSH تعاملی از طریق OpenSSH و یک API قابل توسعه است. توسعه دهندگان می توانند از Shipit برای خودکار سازی جریان های کاری ساخت و استقرار در طیف گسترده ای از برنامه های Node.js استفاده کنند.
گردش کار Shipit به توسعه دهندگان اجازه می دهد تا نه تنها کارها را پیکربندی کنند ، بلکه ترتیب اجرای آنها را نیز مشخص کنند. و اینکه آیا باید همزمان یا ناهمزمان اجرا شوند و در کدام محیط قرار گیرند.
در این آموزش Shipit را برای به کارگیری برنامه Node.js از محیط توسعه محلی خود به محیط تولید خود نصب و پیکربندی می کنید. شما به وسیله موارد زیر از Shipit برای استقرار برنامه خود و پیکربندی سرور مجازی از راه دور استفاده میکنید:
• انتقال فایل های برنامه Node.js از محیط محلی خود به محیط تولید (با استفاده از rsync ، git و ssh).
• نصب متعلقات برنامه (ماژول های گره).
• پیکربندی و مدیریت فرآیندهای Node.js در حال اجرا بر روی سرور مجازی از راه دور با PM2.
پیش نیازها
قبل از شروع این آموزش به موارد زیر نیاز خواهید داشت:
⦁ دو سرور مجازی CentOS 7 (در این آموزش آنها را با app و web نامگذاری میکنیم) که توسط شبکه های خصوصی و طبق آموزش نحوه تنظیم برنامه Node.js برای تولید در CentOS 7 پیکربندی شده باشد.
⦁ Nginx (روی سرور مجازی وب خود) که با TLS / SSL همانطور که در آموزش نحوه ایمن سازی Nginx با رمزگذاری در CentOS 7 نشان داده شده ایمن شده باشد. توجه داشته باشید ، اگر پیش نیازها را به ترتیب دنبال می کنید ، فقط باید مراحل 1 ، 4 و 6 را در سرور مجازی وب خود انجام دهید.
⦁ Node.js و npm که در محیط توسعه شما نصب شده باشند. در این آموزش از نسخه 10.17.0 استفاده شده است. برای نصب این برنامه در macOS یا Ubuntu 18.04 ، مراحل نحوه نصب Node.js و ایجاد محیط توسعه محلی را در macOS یا نصب با استفاده از بخش PPA از نحوه نصب Node.js در اوبونتو 18.04 دنبال کنید. با نصب Node.js ، npm را نیز نصب خواهید کرد. این آموزش از نسخه 6.11.3 استفاده می کند.
⦁ یک کامپیوتر توسعه محلی که روی آن rsync و git نصب شده باشد.
⦁ در macOS می توانید این موارد را با Homebrew نصب کنید.
⦁ برای نصب git در توزیع های لینوکس ، آموزش نحوه نصب Git را دنبال کنید.
⦁ یک حساب کاربری با GitHub یا یک ارائه دهنده سرویس git میزبان دیگر. در این آموزش از GitHub استفاده می شود.
توجه: کاربران Windows برای اجرای دستورات موجود در این راهنما نیاز به نصب ساب سیستم ویندوز برای لینوکس دارند.

مرحله 1 – تنظیم منبع راه دور
Shipit برای همگام سازی بین دستگاه توسعه محلی و سرور مجازی از راه دور به یک منبع Git نیاز دارد. در این مرحله یک منبع از راه دور در Github.com ایجاد خواهید کرد. در حالی که هر ارائه دهنده (PROVIDER) کمی متفاوت است ، دستورات تا حدودی قابل انتقال هستند.
برای ایجاد یک منبع ، Github.com را در مرورگر وب خود باز کنید و وارد شوید. متوجه خواهید شد که در گوشه سمت راست و بالای هر صفحه یک نماد + وجود دارد. روی + کلیک کنید ، و سپس روی New repository کلیک کنید.

برای منبع خود ، یک نام کوتاه و قابل به خاطر سپردن مثلا HELLO WORLD انتخاب کنید. توجه داشته باشید که هر نامی را که در اینجا انتخاب می کنید به عنوان پوشه پروژه که از دستگاه محلی خود کار خواهید کرد ، تکرار می شود.

به صورت اختیاری ، توضیحی از منبع خود اضافه کنید.

نمایش منبع خود را بر اساس اولویت خود ، عمومی یا خصوصی تنظیم کنید.
اطمینان حاصل کنید که منبع با .gitignore آغاز شده است ، از لیست کشویی Add .gitignore ، node را انتخاب کنید. این مرحله برای جلوگیری از اضافه شدن فایل های غیر ضروری (مانند پوشه node_modules) به منبع شما مهم است.

روی دکمه Create repository کلیک کنید.
اکنون منبع باید از Github.com به دستگاه محلی شما کلون شود.
ترمینال خود را باز کرده و به محلی که می خواهید فایلهای پروژه Node.js خود را ذخیره کنید ، بروید. توجه داشته باشید که این فرآیند یک زیر پوشه را در دیرکتوری اصلی ایجاد می کند. برای کلون کردن منبع به دستگاه محلی خود ، دستور زیر را اجرا کنید:
⦁ $ git clone https://github.com/your-github-username/your-github-repository-name.git
برای بازتاب نام کاربری Github و نام منبع قبلاً عرضه شده خود ، باید your-github-username و your-github-repository-name را جایگزین کنید.
توجه: اگر تأیید صحت دو عاملی (2FA) را در Github.com فعال کرده اید ، هنگام دسترسی به Github در خط فرمان ، باید از یک نشانه دسترسی شخصی یا کلید SSH به جای رمزعبور استفاده کنید. صفحه راهنما Github مربوط به 2FA اطلاعات بیشتری را ارائه می دهد.

خروجی مشابه با این خواهید دید:
Output
Cloning into ‘your-github-repository-name’…
remote: Enumerating objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3
Unpacking objects: 100% (3/3), done.

با اجرای دستور زیر به منبع بروید:
⦁ $ cd your-github-repository-name

در داخل منبع یک فایل تکی و پوشه وجود دارد که هر دو فایل مورد استفاده Git برای مدیریت منبع هستند. می توانید این موضوع را با این دستور زیر تأیید کنید:
⦁ $ ls -la

خروجی مشابه زیر را مشاهده خواهید کرد:
Output
total 8
0 drwxr-xr-x 4 asciant staff 128 22 Apr 07:16 .
0 drwxr-xr-x 5 asciant staff 160 22 Apr 07:16 ..
0 drwxr-xr-x 13 asciant staff 416 22 Apr 07:16 .git
8 -rw-r–r– 1 asciant staff 914 22 Apr 07:16 .gitignore

اکنون که یک منبع git کاری را پیکربندی کرده اید ، فایل shipit.js را ایجاد خواهید کرد که روند استقرار شما را مدیریت می کند.
مرحله 2 – ادغام shipit در یک پروژه Node.js
در این مرحله ، یک نمونه پروژه Node.js ایجاد می کنید و سپس پکیج های Shipit را اضافه می کنید. این آموزش یک برنامه مثال را ارائه می دهد – سرور مجازی وب Node.js که درخواست HTTP را می پذیرد و با Hello World در متن ساده پاسخ می دهد. برای ایجاد برنامه ، دستور زیر را اجرا کنید:
⦁ $ nano hello.js
کد برنامه مثال زیر را به hello.js اضافه کنید (به روزرسانی متغیر APP_PRIVATE_IP_ADDRESS به آدرس IP شبکه خصوصی سرور مجازی برنامه خود(:
hello.js
var http = require(‘http’);
http.createServer(function (req, res) {
res.writeHead(200, {‘Content-Type’: ‘text/plain’});
res.end(‘Hello World\n’);
}).listen(8080, ‘APP_PRIVATE_IP_ADDRESS’);
console.log(‘Server running at http://APP_PRIVATE_IP_ADDRESS:8080/’);

اکنون فایل pack.json خود را برای برنامه تان ایجاد کنید:
⦁ $ npm init -y
این دستور یک فایل pack.json ایجاد می کند ، که شما برای پیکربندی برنامه Node.js خود استفاده خواهید کرد. در مرحله بعد ، با رابط خط فرمان npm ، به این فایل متعلقات را اضافه خواهید کرد.
Output
Wrote to ~/hello-world/package.json:
{
“name”: “hello-world”,
“version”: “1.0.0”,
“description”: “”,
“main”: index.js”,
“scripts”: {
“test”: “echo \”Error: no test specified\” && exit 1″
},
“keywords”: [],
“author”: “”,
“license”: “ISC”
}

سپس ، بسته های npm لازم را با دستور زیر نصب کنید:
⦁ $ npm install –save-dev shipit-cli shipit-deploy shipit-shared
از فلگ –save-dev استفاده می کنید زیرا بسته های Shipit فقط در دستگاه محلی شما مورد نیاز است. خروجی مشابه زیر را مشاهده خواهید کرد:
Output
+ shipit-shared@4.4.2
+ shipit-cli@4.2.0
+ shipit-deploy@4.1.4
updated 4 packages and audited 21356 packages in 11.671s
found 62 low severity vulnerabilities run `npm audit fix` to fix them, or `npm audit` for details

این کار همچنین سه بسته را به عنوان بسته های توسعه به فایل pack.json شما اضافه میکند:
package.json
. . .
“devDependencies”: {
“shipit-cli”: “^4.2.0”,
“shipit-deploy”: “^4.1.4”,
“shipit-shared”: “^4.4.2”
},
. . .

با پیکربندی محیط محلی خود ، اکنون می توانید به سراغ آماده سازی سرور مجازی برنامه از راه دور برای استقرار مبتنی بر Shipit بروید.
مرحله 3 – تهیه سرور مجازی برنامه از راه دور
در این مرحله از ssh برای اتصال به سرور مجازی برنامه خود و نصب متعلقات از راه دور rsync استفاده خواهید کرد. Rsync ابزاری برای انتقال کارآمد و همگام سازی فایل ها بین درایوهای رایانه های محلی و در سراسر رایانه های شبکه با مقایسه زمان و اندازه تغییر فایل ها است.
Shipit از rsync برای انتقال و همگام سازی فایل ها بین رایانه محلی و سرور مجازی برنامه از راه دور استفاده می کند. شما دستوراتی را به صورت مستقیم به rsync صادر نمی کنید ؛ Shipit آن را برای شما مدیریت می کند.
توجه: راهنمای نحوه راه اندازی یک برنامه Node.js برای تولید در CentOS 7 ، دو سرور مجازی app و web را به شما معرفی میکند. این دستورات باید فقط در app اجرا شوند.

از طریق sshبه سرور مجازی برنامه راه دور خود متصل شوید:
⦁ $ ssh deployer@your_app_server_ip
rsync را با اجرای دستور زیر بر روی سرور مجازی خود نصب کنید:
⦁ $ sudo yum install rsync
نصب را با دستور زیر تایید کنید:
⦁ $ rsync –version
خط مشابهی را در خروجی این دستور مشاهده خواهید کرد:
Output
rsync version 3.1.2 protocol version 31
. . .

می توانید بخش ssh خود را با تایپ کردن exit پایان دهید.
با نصب و دسترسی rsync در خط فرمان ، می توانید به سراغ کارهای استقرار و ارتباط آنها با رویدادها بروید.
مرحله 4 – پیکربندی و اجرای کارهای استقرار
هم events و هم tasks مؤلفه های اصلی استقرار Shipit هستند و درک چگونگی تکمیل استقرار برنامه شما توسط آن ها مهم است. رویدادهای (events) ناشی از Shipit بیانگر نقاط خاصی در چرخه عمر استقرار هستند. کارها (tasks) بر اساس توالی چرخه زندگی Shipit در پاسخ به این رویدادها اجرا خواهند شد.
یک نمونه متداول از این که این سیستم وظیفه / رویداد در یک برنامه Node.js چگونه مفید است ، نصب متعلقات برنامه (node_modules) روی سرور مجازی راه دور است. بعداً در این مرحله ، شما باید Shipit را برای بررسی و گوش دادن به رویداد آپدیت شده (که بعد از انتقال فایل های برنامه صادر می شود) به کار بگیرید و یک task را برای نصب متعلقات برنامه (نصب npm) بر روی سرور مجازی راه دور اجرا کنید.
برای گوش دادن به رویدادها و اجرای وظایف ، Shipit به یک فایل پیکربندی نیاز دارد که اطلاعات مربوط به سرور مجازی راه دور شما (سرور مجازی app) را در اختیار داشته باشد و شنوندگان رویدادها و دستوراتی را که باید توسط این وظایف اجرا شوند را ثبت می کند. این فایل در رایانه توسعه محلی شما ، در دیرکتوری برنامه Node.js شما قرار دارد.
برای شروع ، این فایل را ایجاد کنید ، از جمله اطلاعاتی درباره سرور مجازی راه دور خود ، شنوندگان رویدادی که می خواهید تایید کنید و برخی از تعریف های مربوط به کارهایتان. با اجرای دستور زیر shipitfile.js را در دیرکتوری اصلی برنامه خود در دستگاه محلی خود ایجاد کنید:
⦁ $ nano shipitfile.js
اکنون که فایلی را ایجاد کرده اید ، باید اطلاعات اولیه محیطی مورد نیاز Shipit را جمع کند. در درجه اول مکان منبع Git از راه دور شما و مهمتر از همه ، آدرس IP عمومی سرور مجازی برنامه شما و حساب کاربری SSH میباشد.

شما Shipit را پیکربندی کرده اید تا 5 نسخه را از طریق KeepReleases حفظ کند: 5 پیکربندی در shipitfile.js. Shipit این نسخه ها را به صورت داخلی ردیابی می کند تا در صورت لزوم بتواند به عقب برگردد. Shipit همچنین با ایجاد دایرکتوری به نام timestamp (YYYYMMDDHHmmss – مثال: / home / deployer / your-domain / Releases / 20190420210548) راهی مفید برای شناسایی نسخه ها ارائه می دهد.
اگر می خواهید فرآیند برگشت را سفارشی کنید ، می توانید وقایع خاص مربوط به عملیات برگشت را شنود کنید. سپس می توانید از این رویدادها برای اجرای کارهایی استفاده کنید که برگشت شما را تکمیل می کند. می توانید به لیست رویدادهای ارائه شده در تجزیه چرخه shipit مراجعه کرده و tasks/listeners را در shipitfile.js خود پیکربندی کنید.
قابلیت برگشت به معنای این است که شما همیشه می توانید یک نسخه کاربردی برنامه خود را در اختیار کاربران خود قرار دهید حتی اگر یک استقرار با مشکلات یا باگ غیرمنتظره مواجه شود.
نتیجه
در این آموزش ، شما یک گردش کاری را پیکربندی کرده اید که به شما امکان می دهد یک جایگزین بسیار قابل تنظیم برای Platform را به عنوان یک سرویس ایجاد کنید، که همه از چند سرور مجازی ایجاد میشوند . این گردش کار امکان استقرار و پیکربندی سفارشی ، نظارت بر فرآیند با PM2 ، امکان مقیاس و اضافه کردن خدمات یا سرور مجازی های اضافی یا محیط های مورد نیاز را در صورت لزوم فراهم می کند.
اگر علاقه دارید که ویژگی های Node.js خود را بیشتر بدانید، محتوای vpsgol Node.js و همچنین نحوه رمزگذاری در سری Node.js را بررسی کنید.

 

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

نحوه نصب Nginx در CentOS 8  –  استفاده از Cron برای خودکارسازی کارها در اوبونتو 18

پکیج کردن و انتشار برنامه Snap در اوبونتو 18 – نصب و استفاده ازRadamsa برای فوز کردن برنامه ها روی Ubuntu 18

استقرارهای تولید Node.js خود را با Shipit در CentOS 7 –  نحوه راه اندازی Eclipse Theia Cloud IDE Platform در Debian 10

چگونگی استفاده از migrations و seeders دیتابیس  –  نحوه نصب Docker Compose در Debian 10

نحوه نصب R روی اوبونتو 18.04 – چگونه می توان با کتابخانه (library) درخواست ها در پایتون شروع به کار کرد

چگونه می توان هاست های مجازی Apache را در اوبونتو 18.04  –  نحوه اجرای صفحه گذاری در MySQL با PHP روی اوبونتو 18.04

نصب پشته Nginx، MySQL، PHP LEMP در CentOS 8 – نحوه تنظیم پلتفرم Eclipse Theia Cloud IDE در CentOS 7

نحوه نصب پشته یا استک Nginx ، MySQL ، PHP LEMP  –  بسته بندی برنامه Laravel 6 برای توسعه با Docker Compose

مراحل ایمن سازی Apache HTTP در FreeBSD 12  – بهینه سازی درخواست های MySQL با ذخیره سازی ProxySQL در اوبونتو 16

درک Objectهای Map و Set در JavaScript  –  استفاده از Ansible برای نصب و راه اندازی وردپرس با LAMP در اوبونتو 18

نحوه راه اندازی Eclipse Theia Cloud IDE در اوبونتو  –  چگونه می توان پلتفرم کد سرور Cloud IDE را در اوبونتو 18.04

نحوه استفاده از Cron برای خودکارسازی کارها در CentOS 8   –  چگونه می توان از رول های ansible برای انتزاع محیط زیرساختی

نحوه نوشتن کد ناهمگام (غیر همزمان) در Node.js –  نحوه پیکربندی یک خوشه Galera با MySQL در سرورهای اوبونتو 18

راه اندازی اولیه سرور با CentOS 8 –   تهیه نسخه پشتیبان و بازیابی یک خوشه Kubernetes

نحوه تنظیم کلیدهای SSH در CentOS 8 –  نحوه نصب و استفاده از PostgreSQL در CentOS 7

نحوه ساختن یک برنامه Node.js با Docker  Quickstart  –  چگونه می توان پلتفرم Eclipse Theia Cloud IDE را روی اوبونتو

چگونه می توان هاست های مجازی Apache را در اوبونتو  –  مدیریت DNS با استفاده از DNSControl در Debian 10

نحوه تایید صحت رمز عبور با Apache در اوبونتو 18.04 –  چگونه می توان پلتفرم Cloud IDE کد سرور را روی CentOS 7

نحوه نصب و استفاده از TimescaleDB در CentOS 7 – نحوه نصب Apache Kafka در Debian 10

نحوه تایید صحت رمز عبور با Apache در اوبونتو 18.04  –  نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

 

 

کلمات کلیدی خرید سرور

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –