Как использовать библиотеку Vultr Go для получения информации о сервере

Вступление

Официальная библиотека Vultr Go может использоваться для взаимодействия с API Vultr . API Vultr позволяет вам управлять ресурсами, связанными с вашей учетной записью, включая серверы, DNS, брандмауэр, снимки, сеть и многое другое. Из этого туториала вы узнаете, как использовать официальный клиент Go API, создав простое приложение для получения информации о ваших серверах.

Предпосылки

  • Компьютер под управлением Windows, Linux или macOS с установленной Go 1.12+.
  • Базовые знания программирования.
  • Необязательно: IDE, поддерживающая Go (например, код Visual Studio, emacs или 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 в разделе « Учетная запись » на панели инструментов . Вам также необходимо авторизовать свой IP-адрес для использования ключа API. Вы можете найти свой IP-адрес, перейдя на ifconfig.me . Обратите внимание, что вы ищете свой публичный IP, а не свой частный. Ваш частный IP-адрес - это то, что вы найдете в настройках сети на вашем компьютере, и находится в одном из следующих диапазонов CIDR: 10.0.0.0/8 , 172.16.0.0/12 или 192.168.0.0/16 .

Получив свой IP-адрес, добавьте его в разделе « Контроль доступа ». В поле после / введите 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Говорит Go , что мы создаем команду, а не библиотека. Оператор import объявляет зависимости, которые мы будем использовать. func main()это функция, вызываемая при запуске нашей программы

Шаг 5: Инициализация клиента API

Следующим шагом является инициализация API-клиента. Для этого нам нужно использовать функцию govultr.NewClient (http.Client, string) . Добавьте следующий код внутри функции main () :

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

Замените YOURAPIKEYключом API, который вы получили ранее.

Давайте посмотрим на этот код немного ближе. На левой стороне у :=нас есть client. Это имя переменной . Переменная хранит значения. На правой стороне у нас есть вызов функции govultr.NewClient . Первый параметр - nil, потому что нам не нужно менять HTTP-клиента по умолчанию. Второй параметр - это ключ API, который мы используем для аутентификации. :=Оператор присваивает правую сторону на левую сторону, в этом случае результат вызова функции к client.

Шаг 6: Использование API

Наша программа еще ничего не делает. Чтобы сделать его полезным, мы собираемся получить информацию о наших серверах от Vultr. Мы будем использовать функцию govultr.Client.Server.List (context.Context) ([] govultr.Server, error) . Добавьте следующий код в конец функции main () :

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 () возвращает пустой контекст . После того, как мы извлекаем информацию о сервере в две переменные, server и err , мы проверяем, была ли ошибка. Если это так, мы сообщаем пользователю сообщить об ошибке и завершаем работу с кодом 1 (ошибка).

Шаг 7: Отображение информации

Теперь, когда у нас есть массив серверов в переменной Servers ( [] govultr.Server ), мы можем его отобразить. Добавьте следующий код в конец функции main () :

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 . Вы также можете внести свой вклад в код, отправив запрос на извлечение .



Как получить доступ к Vultr VPS

Как получить доступ к Vultr VPS

Vultr предоставляет несколько различных способов доступа к вашему VPS для настройки, установки и использования. Учетные данные для доступа Учетные данные для доступа к вашему VPS по умолчанию

Windows Custom ISO с драйверами VirtIO

Windows Custom ISO с драйверами VirtIO

Создание Windows ISO (только для версий сервера) Получите последние двоичные драйверы VirtIO для Windows, упакованные в виде файла ISO, для

Запуск CoreOS на Vultr VPS

Запуск CoreOS на Vultr VPS

Пожалуйста, прочитайте: Vultr теперь предлагает CoreOS на странице заказа - это руководство объясняет, как настроить CoreOS вручную. Эти инструкции проведут вас через бег

Настройка BGP на Vultr

Настройка BGP на Vultr

Функция Vultrs BGP позволяет вам использовать свое собственное IP-пространство и использовать его в любом из наших мест. Начало работы Для использования BGP вам потребуется: развернутый Vult

Исправление времени на Windows Server

Исправление времени на Windows Server

По умолчанию системному времени Vultr VPS с Windows Server 2012 установлено значение часового пояса UTC. Вы можете изменить часовой пояс по своему желанию, но изменить его

Руководство по переносу данных Vultr

Руководство по переносу данных Vultr

Как я могу загрузить данные моего облака из Vultr? Переносимость данных на платформе Vultr Мы предлагаем вам ряд простых решений для загрузки.

Ubuntu 16.04 Изображения сообщают об ошибках в сервисе метаданных EC2

Ubuntu 16.04 Изображения сообщают об ошибках в сервисе метаданных EC2

При загрузке некоторые старые экземпляры Ubuntu 16.04 могут отображать следующее предупреждение: ************************************ **************************************

Vultr Firewall

Vultr Firewall

Vultr предлагает сетевое решение брандмауэра, которое можно включить для защиты одного или нескольких вычислительных экземпляров. Наличие набора правил брандмауэра для ваших серверов я

Доступ к однопользовательскому режиму (сброс пароля root)

Доступ к однопользовательскому режиму (сброс пароля root)

Чтобы сбросить пароль root вашего сервера, вам нужно будет загрузиться в однопользовательском режиме. Получите доступ к вашему серверу на портале для клиентов Vultr, затем выполните шаг

Высокая доступность на Vultr с плавающим IP и BGP

Высокая доступность на Vultr с плавающим IP и BGP

Vultr позволяет объединить две наши функции (плавающие IP-адреса и BGP) для достижения высокой доступности. Настройка Вам понадобятся два экземпляра в СЭМ

Пример авторизационного письма для объявлений BGP

Пример авторизационного письма для объявлений BGP

Пожалуйста, используйте следующий шаблон при запросе авторизации для объявлений BGP. АВТОРИЗАЦИОННОЕ ПИСЬМО [ДАТА] К кому это может относиться,

Как создать обратные записи DNS или PTR в панели управления Vultr

Как создать обратные записи DNS или PTR в панели управления Vultr

Введение в Vultr Обратный DNS Чтобы добавить PTR или Обратный DNS-запись для IP-адреса ваших экземпляров, вам необходимо выполнить шаги, описанные ниже:

Установите Nginx + PHP FPM + Caching + MySQL в Ubuntu 12.04

Установите Nginx + PHP FPM + Caching + MySQL в Ubuntu 12.04

Вероятно, многие люди будут использовать свои Vultr VPS в качестве веб-серверов, хорошим выбором будет Nginx в качестве веб-сервера. В этой теме я собираюсь описать

Vultr Object Storage

Vultr Object Storage

S3-совместимое * хранилище объектов теперь доступно в облаке Vultr. Наша технология хранения объектов является доступной, масштабируемой и легко интегрируемой в вас.

Единая точка входа

Единая точка входа

Ваша корпоративная система входа в систему может быть интегрирована с системой учетных записей Vultrs с помощью функции единого входа (SSO). SSO помогает упростить управление паролями

Как мне генерировать ключи SSH?

Как мне генерировать ключи SSH?

Ключ SSH позволяет вам войти на ваш сервер без пароля. Ключи SSH могут автоматически добавляться на серверы в процессе установки.

Включить звук Windows на экземпляре Windows Server

Включить звук Windows на экземпляре Windows Server

Примечание. Это руководство будет работать для экземпляров Windows 2012 R2 и Windows 2016. Серверы Windows по умолчанию не имеют включенной службы Windows Audio.

Использование двухфакторной аутентификации для входа в панель управления Vultr

Использование двухфакторной аутентификации для входа в панель управления Vultr

Двухфакторная аутентификация, или 2FA, - это метод, который добавляет уровень безопасности, требуя дополнительного шага аутентификации для входа в систему. Для надежной безопасности

Изменение исходящего IP-адреса Postfix

Изменение исходящего IP-адреса Postfix

Когда серверу назначено более одного IP-адреса, Postfix случайным образом выбирает IP-адрес для исходящих электронных писем. Это поведение Postfix по умолчанию может привести к

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше