نحوه استفاده از كتابخانه Vultr Go برای به دست آوردن اطلاعات سرور

معرفی

از کتابخانه رسمی Vultr Go می توان برای تعامل با API Vultr استفاده کرد . Vultr API به شما اجازه می دهد تا منابع مرتبط با حساب خود ، از جمله سرورها ، dns ، فایروال ، عکس های فوری ، شبکه و موارد دیگر را کنترل کنید. این آموزش با استفاده از یک سرویس گیرنده رسمی Go API با ایجاد یک برنامه ساده برای به دست آوردن اطلاعات در مورد سرورهای خود ، مقدماتی خواهد داد.

پیش نیازها

  • رایانه ای که ویندوز ، لینوکس یا macOS با Go 1.12+ نصب کرده است.
  • دانش پایه برنامه نویسی.
  • اختیاری: یک IDE که از Go پشتیبانی می کند (به عنوان مثال کد ویژوال استودیو ، emac ها یا Atom).

اهداف

  • برای یادگیری چگونگی استفاده از کتابخانه رسمی Vultr API.
  • برای نوشتن یک برنامه برای مشاهده اطلاعات سرور.

مرحله 1: ایجاد پروژه

ابتدا با ایجاد یک ماژول (پروژه) جدید شروع خواهیم کرد. معمولاً از URL به یک مخزن برای کد خود به عنوان نام ماژول استفاده می کنید ، اما این فراتر از محدوده این آموزش است. در حال حاضر ، ما از serverinfo به عنوان نام ماژول استفاده خواهیم کرد.

برای ایجاد پروژه ، دستورات زیر را اجرا کنید:

# Create the folder in the current directory.
mkdir serverinfo

# Enter the new folder.
cd serverinfo

# Initialize the module.
go mod init serverinfo

مرحله 2: بارگیری کتابخانه

در مرحله بعد ، کتابخانه API را از GitHub (یک سایت میزبانی کد) بارگیری خواهیم کرد. برای بارگیری کتابخانه ها ، باید از go getدستور استفاده کنید . این کار ضمن اضافه کردن آن به پرونده go.mod ، به طور خودکار کتابخانه و وابستگی های آن را بارگیری می کند. در همان ترمینالی که قبلاً افتتاح کرده اید ، دستور زیر را وارد کنید:

go get github.com/vultr/govultr

مرحله 3: گرفتن کلید API خود

برای استفاده از سرویس گیرنده API ، به کلید API خود نیاز دارید. می توانید کلید API خود را از برگه API بخش Account Dashboard خود بازیابی کنید . همچنین برای استفاده از کلید API باید به آدرس IP خود اجازه دهید. می توانید با مراجعه به ifconfig.me آدرس IP خود را پیدا کنید . توجه داشته باشید که شما به دنبال آی پی عمومی خود هستید ، نه خصوصی شما. IP خصوصی شما همان چیزی است که شما در تنظیمات شبکه در رایانه خود پیدا می کنید و در یکی از محدوده های CIDR زیر قرار دارد: 10.0.0.0/8 ، 172.16.0.0/12 یا 192.168.0.0/16 .

پس از آدرس IP خود ، آن را در قسمت Access Control اضافه کنید . در کادر بعد از / ، تایپ کنید 32. /32معنای خالص 255.255.255.255است این بدان معنی است که فقط IP شما در محدوده موجود است.

هشدار: از کلید API خود محافظت کنید مانند رمز عبور خود محافظت می کند. کلید API به کل حساب شما ، از جمله صورتحساب ، سرورها و ذخیره سازی دسترسی دارد.

مرحله 4: ایجاد پرونده برنامه

اکنون ، ما قصد داریم کار را روی برنامه شروع کنیم. پوشه ای را که در انتخاب ویرایشگر شما ایجاد کرده ایم باز کنید و یک پرونده با نام ایجاد کنید main.go.

در داخل پرونده ، کد زیر را تایپ یا کپی کنید:

package main

import (
    "context"
    "fmt"
    "os"

    "github.com/vultr/govultr"
)

func main() {

}

package mainمی گوید برو که ما در حال ایجاد یک دستور، نه یک کتابخانه است. بیانیه واردات وابستگی هایی را که ما استفاده خواهیم کرد اعلام می کند. func main()تابعی است که برنامه خود را اجرا می کنیم.

مرحله 5: اولیه سازی مشتری API

قدم بعدی اولیه سازی مشتری API است. برای این کار باید از تابع govultr.NewClient (http.Client ، string) استفاده کنیم. کد زیر را درون عملکرد اصلی () اضافه کنید:

client := govultr.NewClient(nil, "YOURAPIKEY")

YOURAPIKEYبا کلید API که قبلاً بازیابی کرده اید جایگزین کنید .

بیایید کمی به این کد نگاه کنیم. در سمت چپ :=، ما داریم client. این نام متغیر است . مقادیر متغیر را ذخیره می کند. در سمت راست ، ما یک فراخوان عملکردی به govultr.NewClient داریم . پارامتر اول صفر است ، زیرا نیازی به تغییر سرویس گیرنده HTTP پیش فرض نداریم. پارامتر دوم کلید API است که ما برای تأیید اعتبار خود از آن استفاده می کنیم. :=اپراتور اختصاص به سمت راست به سمت چپ، در این مورد، در نتیجه از فراخوانی تابع به client.

مرحله ششم: استفاده از API

برنامه ما هنوز هیچ کاری انجام نمی دهد. برای استفاده از آن ، ما می خواهیم اطلاعات مربوط به سرورهای خود را از Vultr بازیابی کنیم. ما از تابع govultr.Client.Server.List (ext.Context) ([] govultr.Server ، خطا) استفاده خواهیم کرد. کد زیر را در انتهای عملکرد اصلی () اضافه کنید:

servers, err := client.Server.List(context.Background())
if err != nil {
    fmt.Fprintf(os.Stderr, "Error: %v\n", err)
    os.Exit(1)
}

در این کد ، ما برای بازیابی اطلاعات سرور از عملکرد API فراخوانی می کنیم. در مورد معنی متن نگران نباشید ، زیرا این یک موضوع پیشرفته تر است. در حال حاضر ، همه آنچه ما باید بدانیم این است که زمینه کنترل نحوه اجرای مشتری API را کنترل می کند. context.Background () زمینه خالی را برمی گرداند . بعد از اینکه اطلاعات سرور را به دو متغیر ، سرور و خطا بازگردانیم ، بررسی می کنیم که آیا خطایی رخ داده است. در این صورت ، ما به خطا و خروج با کد 1 (خطا) به کاربر اطلاع می دهیم.

مرحله 7: نمایش اطلاعات

اکنون که در متغیر سرورها آرایه ای از سرورها ( [] govultr.Server ) داریم ، می توانیم در واقع آن را نمایش دهیم. کد زیر را در انتهای عملکرد اصلی () اضافه کنید:

fmt.Println("Servers:")
for _, server := range servers {
    fmt.Printf("  %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n",
        server.Label,
        server.MainIP,
        server.Location,
        server.PendingCharges,
        server.CurrentBandwidth,
        server.AllowedBandwidth,
    )
}

ابتدا ، یک هدر چاپ می کنیم (نمایش می دهیم) Servers:. سپس ، ما آرایه سرورها را حلقه می زنیم ، با اختصاص آن به ایندکس _، و اختصاص سرور فعلی به متغیر سرور ، شاخص را نادیده می گیریم . در داخل حلقه ، ما برچسب سرور ، آدرس IP ، مکان ، هزینه های در انتظار ، پهنای باند فعلی و پهنای باند مجاز را نمایش می دهیم. برای انجام این کار ، از رشته های قالب استفاده می کنیم ، رشته ای که به نظر می رسد " %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n". %s یعنی به جای رشته بعدی، در حالی که %.2fوسیله ای برای چاپ شناور بعدی (عدد اعشاری) گرد به 2 رقم اعشار. بقیه رشته فرمت به معنای واقعی کلمه چاپ می شود (به عنوان).

مرحله 8: در حال اجرا

در این مرحله ، کد شما باید به شکل زیر باشد:

package main

import (
    "context"
    "fmt"
    "os"

    "github.com/vultr/govultr"
)

func main() {
    client := govultr.NewClient(nil, "YOURAPIKEY")

    servers, err := client.Server.List(context.Background())
    if err != nil {
        fmt.Fprintf(os.Stderr, "Error: %v\n", err)
        os.Exit(1)
    }

    fmt.Println("Servers:")
    for _, server := range servers {
        fmt.Printf("  %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n",
            server.Label,
            server.MainIP,
            server.Location,
            server.PendingCharges,
            server.CurrentBandwidth,
            server.AllowedBandwidth,
        )
    }
}

اکنون می توانیم کد را اجرا کنیم. به ترمینالی که قبلاً افتتاح شده بود بازگردید و دستور را وارد کنید go run. خروجی شبیه به موارد زیر خواهد بود:

Servers:
  server1 (198.51.100.4) - New Jersey - $3.70 pending charges - 17.64/1000 GB bandwidth
  server2 (198.51.100.9) - Toronto - $1.70 pending charges - 3.24/500 GB bandwidth

اگر خطایی دریافت کردید ، از صحت کلید API و آدرس IP اطمینان حاصل کنید.

نتیجه

در این مرحله ، شما با موفقیت اصول اولیه نحوه استفاده از مشتری رسمی API را یاد گرفته و برنامه ای را نوشتید که اطلاعات مربوط به سرورها را در حساب خود نمایش می دهد.

مراحل بعدی

از اینجا ، شما می توانید کارهای بیشتری انجام دهید. به عنوان مثال ، وقتی در حافظه کم هستید ، می توانید برای تهیه سرور جدید برنامه ای بنویسید. وقتی پهنای باند یا حافظه کم دارید می توانید یک برنامه بنویسید تا به طور خودکار سرور خود را ارتقا دهد. شما حتی می توانید ابزاری بنویسید تا به طور خودکار سوابق DNS را بر اساس IP فعلی خود به روز کنید.

برای اطلاعات بیشتر در مورد کتابخانه govultr ، می توانید اسناد کتابخانه govultr را در مورد Godoc پیدا کنید .

govultr یک پروژه منبع باز است . اگر در govultr اشکالی مشاهده کردید ، می توانید آنها را در GitHub گزارش دهید . همچنین می توانید با ارسال درخواست کشش به طور مستقیم به کد کمک کنید .

یک نظر بگذارید

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

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

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

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.