Criando instantâneos com o Packer

O que é o Packer?

O Packer é uma ferramenta de criação de imagens de servidor desenvolvida pela HashiCorp. Imagem de servidor; ou, alternativamente, infraestrutura imutável; é uma alternativa popular às ferramentas de configuração de tempo de execução, como Ansible ou Puppet. É baseado na ideia de que, uma vez implantado um servidor, você nunca o altera; em vez disso, você implanta um novo servidor com suas alterações e desativa o antigo. Isso facilita a manutenção do servidor e permite dimensionar com mais eficiência um grande número de máquinas.

Embora o Packer não suporte o Vultr imediatamente, há um plug - in que adiciona esse suporte. Instruções para instalar o Packer com suporte ao Vultr podem ser encontradas no README do plug-in. O restante deste artigo pressupõe que você tenha o Packer instalado, bem como o plug-in Vultr.

Como funciona

O objetivo do Packer é produzir imagens do servidor ou artefatos que podem ser usados ​​para criar um novo servidor exatamente como era no momento da criação de imagens. Para o Vultr, esses artefatos são chamados de Instantâneos. O plug-in funciona implantando um novo VPS, executando os provisionadores definidos nele, criando um instantâneo e, em seguida, derrubando o VPS. Quando você deseja criar um novo servidor a partir da sua imagem, basta chamar a API do Vultr para implantar um novo VPS com o Snapshot desejado como seu sistema operacional.

Usando o Packer

O Packer utiliza um arquivo JSON que define a construção que deve ser executada como entrada. Aqui está um arquivo de amostra que define uma compilação do Vultr:

{
  "variables": {
    "vultr_api_key": "{{env `VULTR_API_KEY`}}"
  },
  "builders": [
    {
      "type": "vultr",
      "api_key": "{{user `vultr_api_key`}}",
      "snapshot_description": "My Awesome App",
      "region_id": "2",
      "plan_id": "201",
      "os_id": "167",
      "ssh_username": "root"
    }
  ]
}

Este arquivo possui duas chaves de nível superior variablese builders. A variableschave é usada para definir variáveis ​​personalizadas e, nesse caso, para incorporar a VULTR_API_KEYvariável de ambiente de uma maneira que possa ser usada posteriormente. A builderschave contém uma lista de compilações a serem executadas, neste caso apenas nossa compilação Vultr. Vamos quebrar um pouco essa construção:

  • type: Define o construtor a ser realmente usado e, para o Vultr, deve ser sempre vultr.
  • api_key: Para executar a construção, você precisa de uma chave de API, definida aqui. Este exemplo define como o valor da vultr_api_keyvariável do usuário, que é posteriormente definida como o valor da VULTR_API_KEYvariável de ambiente.
  • snapshot_description: A descrição do instantâneo resultante.
  • region_id: A região na qual implantar um VPS. Isso não afeta o instantâneo final, apenas o servidor do qual o instantâneo é criado.
  • plan_id: O plano a ser usado para o VPS. Os usos futuros desse instantâneo devem definir um plano que seja pelo menos tão grande.
  • os_id: O sistema operacional no qual basear o instantâneo.
  • ssh_username: O nome de usuário que será usado ao fazer o SSH no servidor para provisionamento. Para servidores Linux, isso geralmente será root.

Para usá-lo, salve este arquivo com um nome como server.jsone execute o comando packer build server.json. Você verá alguma saída indicando o status da compilação, o que levará alguns minutos.

Quando você executa essa compilação, um novo servidor nomeado Snapshotting: My Awesome Appserá criado, capturado instantaneamente e destruído. Sem provisionadores definidos, é tudo o que acontece. Para obter mais informações sobre a definição de provisionadores, consulte a documentação do Packer .

Após a conclusão da compilação, o Packer emitirá o ID da captura instantânea resultante.

Definindo região, plano e SO

Esses três valores são necessários para cada compilação do Vultr, mas podem ser definidos de uma de várias maneiras. Para cada um, você deve especificar exatamente uma de suas variações para evitar ambiguidade:

Região

As informações da região podem ser consultadas por meio da API: https://www.vultr.com/api/#regions_region_list

  • region_id: O ID da região, por exemplo 2
  • region_code: O código da região, por exemplo ORD

Plano

As informações do plano podem ser consultadas por meio da API: https://www.vultr.com/api/#plans_plan_list

  • plan_id: O ID do plano, por exemplo 201

OS

As informações do sistema operacional podem ser consultadas através da API: https://www.vultr.com/api/#os_os_list

  • os_id: O ID do sistema operacional, por exemplo 167


Leave a Comment

Como instalar o Foreman no Ubuntu 16.04 LTS

Como instalar o Foreman no Ubuntu 16.04 LTS

Usando um sistema diferente? O Foreman é uma ferramenta gratuita e de código aberto que ajuda na configuração e gerenciamento de servidores físicos e virtuais. Forema

Como instalar e configurar o Concourse CI no CentOS 7

Como instalar e configurar o Concourse CI no CentOS 7

Usando um sistema diferente? Introdução A Integração Contínua é uma prática de desenvolvimento de software DevOps que permite que os desenvolvedores mesclem frequentemente

Introdução ao SaltStack no Ubuntu 17.04

Introdução ao SaltStack no Ubuntu 17.04

O SaltStack é um programa de gerenciamento de configurações baseado em python, otimizado para a automação de arquivos de configuração, implantações e qualquer outra coisa

Usando SaltStack com pilares no Ubuntu 17.04

Usando SaltStack com pilares no Ubuntu 17.04

Embora o SaltStack seja uma ótima ferramenta para executar operações em muitos servidores simultaneamente, ele também suporta predefinições de configuração definidas por host armazenadas em um servidor.

Balanceadores de carga Vultr

Balanceadores de carga Vultr

O que é um Balanceador de Carga Os balanceadores de carga ficam em frente ao seu aplicativo e distribuem o tráfego recebido por várias instâncias do seu aplicativo. Fo

Usando Chef-solo para configurar um aplicativo Django no Ubuntu

Usando Chef-solo para configurar um aplicativo Django no Ubuntu

Existem várias maneiras de automatizar o processo de instalação e configuração de uma caixa. Por qualquer motivo, se todo o nosso sistema neste momento compreender apenas

Como instalar e configurar o Ansible no CentOS 7 para uso com o Windows Server

Como instalar e configurar o Ansible no CentOS 7 para uso com o Windows Server

Usando um sistema diferente? O Ansible é uma ferramenta de código aberto para automatizar tarefas. Ele gerencia a configuração dos seus servidores Linux e Windows. Funciona

Como instalar o Strider CD no Ubuntu 18.04

Como instalar o Strider CD no Ubuntu 18.04

Introdução O Strider CD é uma plataforma de implantação contínua de código aberto. O aplicativo está escrito em Node.js e usa o MongoDB como um back-end de armazenamento. Stride

Como instalar e configurar o Concourse CI no Ubuntu 16.04

Como instalar e configurar o Concourse CI no Ubuntu 16.04

Usando um sistema diferente? Introdução A Integração Contínua é uma prática de desenvolvimento de software DevOps que permite que os desenvolvedores mesclem frequentemente

Como instalar e configurar o Ansible no Debian 9 para uso com o Windows Server

Como instalar e configurar o Ansible no Debian 9 para uso com o Windows Server

Usando um sistema diferente? O Ansible é uma ferramenta de código aberto para automatizar tarefas. Ele gerencia a configuração dos seus servidores Linux e Windows. Funciona

Como instalar o Jenkins no CentOS 7

Como instalar o Jenkins no CentOS 7

O Jenkins é uma ferramenta popular de CI (integração contínua) de código aberto, amplamente usada para desenvolvimento, implantação e automação de projetos. Este artigo será

Como instalar e configurar o GoCD no CentOS 7

Como instalar e configurar o GoCD no CentOS 7

Usando um sistema diferente? O GoCD é um sistema de entrega e automação contínua de código aberto. Permite modelar fluxos de trabalho complexos usando seu paralelo e

Usando o Chocolatey Package Manager no Windows

Usando o Chocolatey Package Manager no Windows

Introdução O Chocolatey traz para Windows o gerenciamento de pacotes que facilita a administração de software e dependências no Linux. Você pode rapidamente e facilitar

Como instalar o Foreman no CentOS 7

Como instalar o Foreman no CentOS 7

Usando um sistema diferente? O Foreman é uma ferramenta gratuita e de código aberto que ajuda na configuração e gerenciamento de servidores físicos e virtuais. Forema

Como instalar o SaltStack no CentOS 7

Como instalar o SaltStack no CentOS 7

O SaltStack, ou Salt, é uma solução popular de gerenciamento de configuração de código aberto que pode ser usada para implementar execução remota, gerenciamento de configuração,

Como instalar o Drone CI no Ubuntu 18.04

Como instalar o Drone CI no Ubuntu 18.04

Introdução O Drone é uma plataforma automatizada e contínua de testes e entrega, que roda em sua própria infraestrutura. O Drone suporta qualquer idioma, serviço ou

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.