Como usar a biblioteca Vultr Go para obter informações sobre o servidor

Introdução

A biblioteca oficial do Vultr Go pode ser usada para interagir com a API do Vultr . A API do Vultr permite controlar os recursos associados à sua conta, incluindo servidores, DNS, firewall, instantâneos, rede e muito mais. Este tutorial fornece uma introdução ao uso do cliente oficial da API Go, criando um aplicativo simples para obter informações sobre seus servidores.

Pré-requisitos

  • Um computador executando o Windows, Linux ou macOS com o Go 1.12+ instalado.
  • Conhecimento básico de programação.
  • Opcional: Um IDE que suporte o Go (por exemplo, Visual Studio Code, emacs ou Atom).

Metas

  • Para aprender a usar a biblioteca oficial da API Vultr.
  • Para escrever um programa para visualizar informações do servidor.

Etapa 1: Criando o Projeto

Primeiro, começaremos criando um novo módulo (projeto). Normalmente, você usaria a URL para um repositório para o seu código como o nome do módulo, mas isso está além do escopo deste tutorial. Por enquanto, usaremos serverinfo como o nome do módulo.

Para criar o projeto, execute os seguintes comandos:

# Create the folder in the current directory.
mkdir serverinfo

# Enter the new folder.
cd serverinfo

# Initialize the module.
go mod init serverinfo

Etapa 2: baixando a biblioteca

Em seguida, faremos o download da biblioteca da API no GitHub (um site de hospedagem de código). Para baixar bibliotecas, você precisa usar o go getcomando Isso fará o download automático da biblioteca e de suas dependências, enquanto a adiciona ao arquivo go.mod . No mesmo terminal que você abriu anteriormente, digite o seguinte comando:

go get github.com/vultr/govultr

Etapa 3: obtendo sua chave de API

Para usar o cliente da API, você precisará da sua chave de API. Você pode recuperar sua chave de API na guia API da seção Conta do seu Painel . Você também precisará autorizar seu endereço IP para usar a chave da API. Você pode encontrar seu endereço IP em ifconfig.me . Observe que você está procurando seu IP público , não o seu IP privado. Seu IP privado é o que você encontraria nas configurações de rede do seu computador e está em um dos seguintes intervalos de CIDR: 10.0.0.0/8 , 172.16.0.0/12 ou 192.168.0.0/16 .

Depois de obter seu endereço IP, adicione-o na seção Controle de acesso . Na caixa após o / , digite 32. /32é um significado de máscara de rede 255.255.255.255. Isso significa que apenas o seu IP está incluído no intervalo.

Aviso: proteja sua chave de API como se protegesse sua senha. A chave da API tem acesso a toda a sua conta, incluindo cobrança, servidores e armazenamento.

Etapa 4: Criando o Arquivo do Programa

Agora, vamos começar a trabalhar no programa. Abra a pasta que criamos na sua escolha de editor e crie um arquivo chamado main.go.

Dentro do arquivo, digite ou copie e cole o seguinte código:

package main

import (
    "context"
    "fmt"
    "os"

    "github.com/vultr/govultr"
)

func main() {

}

O package mainTell diz que estamos criando um comando, não uma biblioteca. A declaração de importação declara as dependências que usaremos. func main()é a função chamada quando executamos nosso programa.

Etapa 5: inicializando o cliente da API

A próxima etapa é inicializar o cliente da API. Para fazer isso, precisamos usar a função govultr.NewClient (http.Client, string) . Adicione o seguinte código dentro da função main () :

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

Substitua YOURAPIKEYpela chave da API que você recuperou anteriormente.

Vejamos esse código um pouco mais de perto. No lado esquerdo do :=, temos client. Esse é o nome de uma variável . Uma variável armazena valores. No lado direito, temos uma chamada de função para govultr.NewClient . O primeiro parâmetro é nulo, porque não precisamos alterar o cliente HTTP padrão. O segundo parâmetro é a chave da API que estamos usando para nos autenticarmos. O :=operador atribui o lado direito ao lado esquerdo, neste caso, o resultado da chamada de função para client.

Etapa 6: usando a API

Nosso programa ainda não faz nada ainda. Para torná-lo útil, vamos recuperar informações sobre nossos servidores do Vultr. Usaremos a função govultr.Client.Server.List (context.Context) ([] govultr.Server, erro) . Adicione o seguinte código no final da função main () :

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

Neste código, estamos chamando a função API para recuperar as informações do servidor. Não se preocupe com o significado do contexto ainda, pois esse é um tópico mais avançado. Por enquanto, tudo o que precisamos saber é que o contexto controla como o cliente da API é executado. context.Background () retorna um contexto vazio . Depois de recuperar as informações do servidor nas duas variáveis server e err , verificamos se houve algum erro. Nesse caso, informamos ao usuário o erro e saímos com o código 1 (erro).

Etapa 7: Mostrando as informações

Agora que temos uma matriz de servidores na variável servers ( [] govultr.Server ), podemos realmente exibi-la. Adicione o seguinte código no final da função 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,
    )
}

Primeiro, imprimimos (exibimos) um cabeçalho Servers:,. Em seguida, fazemos um loop na matriz de servidores , ignorando o índice atribuindo-o _e atribuindo o servidor atual à variável de servidor . Dentro do loop, exibimos o rótulo do servidor, o endereço IP, o local, as cobranças pendentes, a largura de banda atual e a largura de banda permitida. Para fazer isso com eficiência, usamos strings de formato , a string que se parece " %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n". Os %s meios para substituir a próxima string, enquanto os %.2fmeios para imprimir o próximo float (número decimal) arredondado para 2 casas decimais. O restante da string de formato é impresso literalmente (como está).

Etapa 8: executando

Neste ponto, seu código deve se parecer com o seguinte:

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,
        )
    }
}

Agora podemos executar o código. Voltar à que o terminal abriu no início e digite o comando go run. A saída será semelhante ao seguinte:

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

Se você receber um erro, verifique se a chave da API e o endereço IP estão corretos.

Conclusão

Neste ponto, você terá aprendido com êxito o básico sobre como usar o cliente oficial da API e gravado um programa que exibirá informações sobre os servidores em sua conta.

Passos adicionais

A partir daqui, você pode fazer muito mais. Por exemplo, você pode escrever um programa para provisionar um novo servidor quando estiver com pouca memória. Você pode escrever um aplicativo para atualizar automaticamente o servidor quando estiver com pouca largura de banda ou armazenamento. Você pode até escrever uma ferramenta para atualizar automaticamente os registros DNS com base no seu IP atual.

Para mais informações sobre a biblioteca govultr, você pode encontrar a documentação da biblioteca govultr em godoc .

O govultr é um projeto de código aberto . Se você encontrar algum erro no govultr, poderá denunciá-lo no GitHub . Você também pode contribuir diretamente com o código enviando uma solicitação de recebimento .



Leave a Comment

ISO personalizado em metal desencapado

ISO personalizado em metal desencapado

Introdução No momento, o Vultr não possui um sistema para permitir o upload e a montagem de ISOs personalizados no bare metal. No entanto, isso não o impede

Como criar registros DNS ou PTR reversos no painel de controle do Vultr

Como criar registros DNS ou PTR reversos no painel de controle do Vultr

Introdução ao DNS reverso do Vultr Para adicionar um registro PTR ou DNS reverso para o endereço IP da sua instância, você precisa seguir as etapas descritas abaixo:

Corrigindo o tempo no Windows Server

Corrigindo o tempo no Windows Server

Por padrão, um Vultr VPS com Windows Server 2012 tem seu horário do sistema definido para o fuso horário UTC. Você pode alterar o fuso horário como desejar, mas alterá-lo t

Automatizando as atualizações do Ubuntu 16 com scripts de inicialização do Vultr

Automatizando as atualizações do Ubuntu 16 com scripts de inicialização do Vultr

O Ubuntu 16 e versões mais recentes executam tarefas periódicas relacionadas ao apt (como atualizar a lista de pacotes e aplicar atualizações autônomas) usando um timer do systemd. Thi

Como restaurar um instantâneo

Como restaurar um instantâneo

Os instantâneos são uma maneira eficaz de fazer um backup completo do seu servidor. Você não poderá restaurar arquivos individuais, mas todo o servidor. Thi

Introdução ao Cloud-Init

Introdução ao Cloud-Init

O Cloud-init é um projeto de código aberto compatível com a maioria das distribuições Linux. Instâncias do Vultr criadas antes de 2017 tinham esse software instalado por padrão. º

Exemplo de carta de autorização para anúncios do BGP

Exemplo de carta de autorização para anúncios do BGP

Use o modelo a seguir ao solicitar autorização para anúncios do BGP. CARTA DE AUTORIZAÇÃO [DATA] A quem possa interessar, Thi

Configurando rede privada

Configurando rede privada

Se você estiver atribuindo uma rede privada a uma máquina existente (ou implantando seu próprio sistema operacional), precisará configurar os endereços IP no privat

Instale Nginx + PHP FPM + Cache + MySQL no Ubuntu 12.04

Instale Nginx + PHP FPM + Cache + MySQL no Ubuntu 12.04

Provavelmente muitas pessoas usarão seus VPS Vultr como servidores da web, uma boa opção seria o Nginx como servidor da web. Neste tópico, vou descrever o

Vultr Block Storage

Vultr Block Storage

A tecnologia Vultrs Cloud Block Storage permite montar armazenamento escalável de alto desempenho em sua instância, tornando o gerenciamento de espaço significativamente mais

Executando o CoreOS em um Vultr VPS

Executando o CoreOS em um Vultr VPS

Leia: O Vultr agora oferece o CoreOS na página de pedidos - Este guia explica como configurar o CoreOS manualmente. Estas instruções orientarão você na execução

Requisitos para o upload de um ISO do sistema operacional para o Vultr

Requisitos para o upload de um ISO do sistema operacional para o Vultr

O Vultr oferece uma ampla variedade de sistemas operacionais para você escolher. Às vezes, no entanto, convém fazer upload de seu próprio ISO do sistema operacional personalizado, como o Kal

Adicione um endereço IPv4 secundário ao seu VPS

Adicione um endereço IPv4 secundário ao seu VPS

Este tutorial explica como configurar um endereço IPv4 adicional no seu Vultr VPS. Vamos assumir o seguinte: O endereço IP principal do seu VPS é 1.2.3.4.

RPKI

RPKI

RPKI (Resource Public Key Infrastructure) é uma maneira de ajudar a impedir o seqüestro de BGP. Ele usa assinaturas criptográficas para validar que um ASN é permitido t

Habilitar áudio do Windows em uma instância do Windows Server

Habilitar áudio do Windows em uma instância do Windows Server

Nota: Este guia funcionará para instâncias do Windows 2012 R2 e Windows 2016. Servidores Windows, por padrão, não têm o serviço Windows Audio ativado.

Clonando um servidor virtual com o Vultr

Clonando um servidor virtual com o Vultr

Ocasionalmente, você precisará clonar um servidor virtual para fins de dimensionamento ou para alterar a região do servidor, por exemplo. No Vultr, isso é fácil, um

Alta disponibilidade no Vultr com IP flutuante e BGP

Alta disponibilidade no Vultr com IP flutuante e BGP

O Vultr permite combinar dois de nossos recursos (IPs flutuantes e BGP) para obter alta disponibilidade. Instalação Você precisará de duas instâncias no sam

Como acessar o seu Vultr VPS

Como acessar o seu Vultr VPS

O Vultr fornece várias maneiras diferentes de acessar seu VPS para configurar, instalar e usar. Credenciais de acesso As credenciais de acesso padrão para o seu sistema VPS

ISO personalizado do Windows com drivers VirtIO

ISO personalizado do Windows com drivers VirtIO

Construindo a ISO do Windows (somente versões do servidor) Obtenha os drivers binários VirtIO mais recentes para Windows, compactados como um arquivo ISO, para

Reparando um VPS do Windows após instalar atualizações de driver

Reparando um VPS do Windows após instalar atualizações de driver

A Microsoft lançou recentemente drivers via Windows Update que podem impedir que as instâncias do Vultr VPS executando o Windows sejam inicializadas corretamente. Esses drivers são chamados:

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.