Let's Go Further استقرار و میزبانی › ایجاد یک droplet در DigitalOcean
قبلی · فهرست مطالب · بعدی
فصل ۲۰.۱.

ایجاد یک droplet در DigitalOcean

اولین کاری که باید انجام دهیم این است که یک سرور در DigitalOcean برای میزبانی برنامه خود راه‌اندازی کنیم.

به طور دقیق‌تر، آنچه قرار است راه‌اندازی کنیم در واقع یک ماشین مجازی است که در اصطلاحات DigitalOcean به آن droplet گفته می‌شود.

اگر می‌خواهید در این مرحله از کتاب همراه ما باشید، باید اگر قبلاً حساب DigitalOcean ندارید، یک حساب DigitalOcean ثبت کنید. در فرآیند ثبت‌نام، از شما خواسته می‌شود آدرس ایمیل خود را تأیید کنید و سپس حداقل ۵ دلار اعتبار پیش‌پرداخت به حساب خود با استفاده از کارت اعتباری/دبیت یا PayPal اضافه کنید.

پس از تکمیل ثبت‌نام و اضافه کردن اعتبار، باید با پنل کنترل حساب خود مواجه شوید که ظاهری مشابه این خواهد داشت:

20.01-02.png

ایجاد یک کلید SSH

برای ورود به droplet‌ها در حساب DigitalOcean خود به یک جفت کلید SSH نیاز دارید.

اگر قبلاً یک جفت کلید SSH دارید که می‌خواهید برای این هدف استفاده کنید، عالی است و می‌توانید به بخش بعدی بروید.

اما اگر ندارید، باید با استفاده از دستور ssh-keygen روی ماشین محلی خود یک جفت کلید ایجاد کنید. مشابه این:

$ ssh-keygen -t rsa -b 4096 -C "greenlight@greenlight.alexedwards.net" -f $HOME/.ssh/id_rsa_greenlight
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/alex/.ssh/id_rsa_greenlight
Your public key has been saved in /home/alex/.ssh/id_rsa_greenlight.pub
The key fingerprint is:
SHA256:MXASjIyE1p2BAGZ70zkUV058rA65hm3sxdIcnWLGkwg greenlight@greenlight.alexedwards.net
The key's randomart image is:
+---[RSA 4096]----+
|o*+oo*Bo+o.      |
|+.oo=E++o. o     |
|.. o +. *.= .    |
|  . . .+ % o     |
|      + S +      |
|     . B *       |
|      + o        |
|       .         |
|                 |
+----[SHA256]-----+

این کار دو فایل جدید در پوشه $HOME/.ssh شما ایجاد می‌کند:

اگر فایل کلید عمومی خود را در یک ویرایشگر متن باز کنید، باید محتوایی مشابه این ببینید (شکست خطوط برای خوانایی اضافه شده است):

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDBheUdwyzUt056EsvUidpaGqL3zodDAffHbVVPPN7AJal5/oL6
hzmpPoCGIZueU3Fra2BPzrVtBTsNLOm0UwyQ3G8D474ETsWqlgtU3M3DBvdeI0sAaQdGxH8SkgUGswRUPNNzVG3V
xvu5aOludfZ0J1kKEkS1PzWXRll2YoKlzSO42Ne0Gzo++ZdbQWl0Y/C0sLb2sBBviIxXHU8dXmp3823yUErqkWrF
ZGGBhAco9t18gUe6MLei1+AyK+VHnRbCYvStrId7qExEs2dPzCmaEec01wCnLJ6LaRYZQnFpBRuzIZ9dTwwsJH+T
cXGo87x8MRnGY6nKNVoz8lupbSyjxkHw3PBTfkelJh+tNKiFzxs8J8WiHDfJKzrKDDQVUGbE3TYZXddGSxvi+rv0
Sfrf85zgvPjRVa2E6tjTl6nD8CnC+3wlU/01gRjVxVtPx7B9n51f+k8n2vMm8UozAv6+YruE1zZoHRHw9IvPCEy3
5B4l6GJxWzAqzjTns7kJR3Qk+xzcu2jOAehc+Do8MMx+xegzOzlgRY3mbPx8jbB3L1WmjNF6vV2BrJR/NxKoRgTf
nAQA44JaevaG4+KpbVZvkvSNoaI8uP6z8b5AptUHz/QO9Gc5M+n2EAPFjv/lNMN+0g5ZmMH8n6NpBXzP9Qmgujgn
hsGP+GmI4ZgvuUgjTQ== greenlight@greenlight.alexedwards.net

و اگر دستور ssh-add -l را اجرا کنید، باید کلید SSH جدید خود را در خروجی ببینید، مشابه این:

$ ssh-add -l
4096 SHA256:MXASjIyE1p2BAGZ70zkUV058rA65hm3sxdIcnWLGkwg greenlight@greenlight.alexedwards.net (RSA)

اگر کلید خود را در لیست نمی‌بینید، لطفاً آن را به SSH agent خود اضافه کنید، به این صورت:

$ ssh-add $HOME/.ssh/id_rsa_greenlight
Enter passphrase for /home/alex/.ssh/id_rsa_greenlight: 
Identity added: /home/alex/.ssh/id_rsa_greenlight (greenlight@greenlight.alexedwards.net)

اضافه کردن کلید SSH به DigitalOcean

حالا که یک جفت کلید SSH دارید که می‌توانید استفاده کنید، به پنل کنترل DigitalOcean خود برگردید و به تب Settings › Security بروید.

20.01-03.png

روی دکمه Add SSH Key کلیک کنید، سپس در پنجره بازشو که ظاهر می‌شود، متن فایل کلید عمومی $HOME/.ssh/id_rsa_greenlight.pub خود را وارد کنید، یک نام به یاد ماندنی به آن بدهید و فرم را ارسال کنید، مشابه اسکرین‌شات زیر.

20.01-04.png

صفحه باید به‌روز شود و تأیید کند که کلید SSH شما با موفقیت اضافه شده است، به این صورت:

20.01-05.png

ایجاد یک droplet

حالا که یک کلید SSH معتبر به حساب خود اضافه کرده‌اید، زمان آن رسیده که واقعاً یک droplet ایجاد کنیم.

چند راه مختلف برای این کار وجود دارد. امکان انجام آن به صورت برنامه‌نویسی از طریق DigitalOcean API یا با استفاده از ابزار خط فرمان رسمی وجود دارد، و اگر نیاز به ایجاد یا مدیریت تعداد زیادی سرور دارید، توصیه می‌کنم از این‌ها استفاده کنید.

یا به جای آن، می‌توانید یک droplet را به صورت دستی از طریق پنل کنترل خود در وب‌سایت DigitalOcean ایجاد کنید. این رویکردی است که در این کتاب استفاده خواهیم کرد، تا حدی به این دلیل که به عنوان یک کار یک‌باره به اندازه کافی ساده است، و تا حدی به این دلیل که دید کلی از تنظیمات droplet در دسترس را ارائه می‌دهد اگر قبلاً از DigitalOcean استفاده نکرده باشید.

روی دکمه سبز Create در گوشه بالا سمت راست کلیک کنید و Droplets را از منوی کشویی انتخاب کنید:

20.01-06.png

این شما را به صفحه گزینه‌ها برای ایجاد یک droplet جدید می‌برد. اولین چیزی که باید انتخاب کنید مرکز داده‌ای است که droplet شما به صورت فیزیکی در آن میزبانی خواهد شد. من Frankfurt را انتخاب می‌کنم، اما در صورت تمایل می‌توانید مکان دیگری انتخاب کنید.

20.01-07.png

چیز بعدی که باید انتخاب کنید سیستم‌عامل برای droplet شماست. اگر همراه ما هستید، لطفاً Ubuntu 22.04 (LTS) x64 را انتخاب کنید.

20.01-08.png

سپس باید یک plan انتخاب کنید که با مشخصات فنی مورد نیاز شما برای droplet مطابقت داشته باشد. در این مورد plan Basic Regular را با قیمت $4/month انتخاب خواهیم کرد، که به ما یک ماشین مجازی با 512MB RAM، 10GB فضای دیسک و 500GB انتقال داده خروجی در ماه می‌دهد (انتقال داده ورودی محدودیتی ندارد).

20.01-09.png

گزینه بعدی به ما امکان می‌دهد block storage به droplet اضافه کنیم. این در اصل یک volume ذخیره‌سازی مستقل از droplet است که مانند یک هارد دیسک محلی عمل می‌کند و می‌تواند بین droplet‌های مختلف جابجا شود. این چیزی نیست که الان نیاز داشته باشیم، بنابراین می‌توانید این بخش را رد کنید.

در بخش Authentication Method، مطمئن شوید که SSH keys به عنوان روش احراز هویت انتخاب شده و کلید SSH که به تازگی آپلود کرده‌اید تیک خورده باشد.

20.01-10.png

بعد از آن می‌توانیم برخی از ویژگی‌های «افزودنی» را برای droplet خود انتخاب کنیم. در مورد ما Monitoring را انتخاب خواهیم کرد، که به شما امکان می‌دهد بعداً نمودارهایی از آمار مختلف droplet (مانند CPU، حافظه و استفاده از دیسک) را در پنل کنترل DigitalOcean خود ببینید — و همچنین می‌توانید هشدارهایی تنظیم کنید اگر استفاده از منابع از یک آستانه خاص فراتر رود.

همچنین می‌توانید با پرداخت ۲۰٪ هزینه اضافی، droplet backups خودکار را فعال کنید. اگر این گزینه را انتخاب کنید، DigitalOcean هر هفته یک «اسنپ‌شات» از droplet شما می‌گیرد و آن را به مدت ۴ هفته ذخیره می‌کند. سپس می‌توانید در صورت نیاز، droplet را از طریق پنل کنترل به حالت اسنپ‌شات بازگردانید. فعال کردن backups کاملاً به تصمیم شماست — اما یک شبکه ایمنی ساده و بدون دردسر است.

20.01-11.png

سپس به تنظیمات نهایی می‌رسیم.

الان فقط به یک droplet نیاز داریم، بنابراین می‌توانید آن را به حالت پیش‌فرض بگذارید.

همچنین باید یک hostname برای droplet اضافه کنید. در میان سایر موارد، hostname به عنوان شناسه اصلی droplet در پنل کنترل DigitalOcean استفاده می‌شود و همچنین چیزی است که وقتی بعداً با SSH وارد droplet می‌شوید تا آن را مدیریت کنید خواهید دید. بنابراین باید نامی انتخاب کنید که منطقی و قابل تشخیص باشد. من از hostname greenlight-production استفاده خواهم کرد، اما در صورت تمایل می‌توانید چیز متفاوتی استفاده کنید.

اضافه کردن tags به droplet شما کاملاً اختیاری است، اما اگر کار زیادی با DigitalOcean انجام می‌دهید، می‌توانند راه مفیدی برای کمک به فیلتر کردن و مدیریت droplet‌ها باشند. من از تگ‌های greenlight و production استفاده خواهم کرد.

20.01-12.png

وقتی همه چیز تنظیم شد، روی دکمه Create Droplet در پایین صفحه کلیک کنید. باید یک نوار پیشرفت ببینید در حالی که droplet برای شما در حال راه‌اندازی است، و پس از یکی دو دقیقه droplet باید فعال و آماده استفاده باشد.

20.01-13.png

مهم‌ترین چیز در این مرحله توجه به آدرس IP برای droplet است، که در مورد من 161.35.71.158 است.

در صورت تمایل، می‌توانید روی hostname droplet کلیک کنید تا اطلاعات دقیق‌تری درباره droplet ببینید (شامل آمار monitoring) و هرگونه تغییر پیکربندی و مدیریت دیگری را در صورت نیاز اعمال کنید.

20.01-14.png

خب، حالا که droplet راه‌اندازی شده، زمان لحظه حقیقت فرا رسیده است!

یک پنجره ترمینال جدید باز کنید و سعی کنید از طریق SSH به عنوان کاربر root با استفاده از آدرس IP droplet متصل شوید. به این صورت…

$ ssh root@161.35.71.158
The authenticity of host '161.35.71.158 (161.35.71.158)' can't be established.
ED25519 key fingerprint is SHA256:pBVp+W/Sb/BZkQy5JnsGQ0+QOr6clTtB3CFoEOFPKTk.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '161.35.71.158' (ED25519) to the list of known hosts.
Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.15.0-50-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Thu Feb 23 15:17:11 UTC 2023

  System load:  0.05615234375     Users logged in:       0
  Usage of /:   16.8% of 9.51GB   IPv4 address for eth0: 161.35.71.158
  Memory usage: 43%               IPv4 address for eth0: 10.19.0.5
  Swap usage:   0%                IPv4 address for eth1: 10.114.0.2
  Processes:    105

112 updates can be applied immediately.
66 of these updates are standard security updates.
To see these additional updates run: apt list --upgradable

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law

root@greenlight-production:~#

عالی به نظر می‌رسد که خوب کار می‌کند. droplet Ubuntu Linux ما فعال و در حال اجراست و ما توانسته‌ایم با موفقیت به عنوان کاربر root از طریق SSH به آن متصل شویم.

می‌توانید exit را تایپ کنید تا اتصال SSH را قطع کرده و به ترمینال ماشین محلی خود برگردید، به این صورت:

root@greenlight-production:~# exit
logout
Connection to 161.35.71.158 closed.