Terraform

Como usar o Terraform com o Google Cloud Platform?

Como usar o Terraform com o Google Cloud Platform?
Terraform é uma ferramenta usada para gerenciar infraestrutura como códigos com facilidade. É desenvolvido pela HashiCorp como um projeto de código aberto para desenvolvedores de nuvem gerenciarem sua infraestrutura em linguagem de alto nível (HCL). A maior vantagem desta ferramenta é que ela abstrai os principais serviços de infraestrutura, como AWS, OpenStack, Vultr, Digital Ocean, Google Cloud e permite aos desenvolvedores unificar suas configurações em um único formato padrão. Além disso, a automação e a execução detalhada também são possíveis com o Terraform. Está disponível nas plataformas Windows, Linux, MacOS e pode ser usado com qualquer plataforma de nuvem importante com nível moderado de conhecimento técnico.

Este guia demonstra como usar o Terraform com a plataforma Google Cloud. Este guia pressupõe que o usuário tenha uma conta na plataforma Google Cloud e ela esteja pronta para usar, caso contrário, é possível criar uma conta de teste gratuita com facilidade por um ano. No entanto, o Google Cloud exige que um número de cartão de crédito válido seja enviado para acessar seu console; portanto, certifique-se de lidar com isso antes de prosseguir.

Requisitos e Condições

A plataforma Google Cloud consiste em um grande número de serviços; portanto, é difícil cobri-los todos em um único guia e, portanto, este guia cobre apenas a seção de instâncias de VM do Google. Ele demonstra como instalar um servidor da web Nginx em uma instância Ubuntu VM na infraestrutura do Google Cloud.

Uma vez que o guia é sobre o terreno, obviamente ele deve ser instalado no sistema. Além disso, uma chave SSH deve ser gerada para acessar a instância de VM.

Como instalar o Terraform no Ubuntu

O Terraform pode ser instalado de duas maneiras diferentes. O primeiro método é a forma manual, que requer que o usuário faça o download e instale no sistema, a alternativa e a forma mais recomendada é a forma automatizada, que baixa e instala o terraform no sistema com algumas linhas de código. Siga os seguintes comandos para que isso aconteça.

  1. Instale o pacote de descompactação no sistema para extrair o pacote do terraform assim que for baixado.
sudo apt-get install descompactar
  1. Baixe e instale o Terraform a partir do link fornecido. Observe que, no momento em que o artigo está sendo escrito, a última versão do terraform é 0.11.10. No futuro, a versão pode ser diferente. Portanto, sempre preste atenção ao site oficial para obter informações sobre o pacote de terraform mais recente.
wget https: // releases.Hashicorp.com / terraform / 0.11.10 / terraform_0.11.10_linux_amd64.fecho eclair
  1. Extraia o terrenoform para o diretório ativo no momento. Por padrão, é o diretório Home no Ubuntu.
descompacte terraform_0.11.10_linux_amd64.fecho eclair
  1. Mova o terraform para a pasta binária. O Terraform não possui um arquivo de configuração; portanto, seu arquivo binário deve ser colocado no arquivo bin manualmente.
sudo mv terraform / usr / local / bin /
  1. Use o seguinte comando para acessar o terraform a partir da linha de comando sem especificar seu diretório.
terraform --version

Como gerar sua própria chave SSH

Depois de instalar o terraform, a próxima etapa importante é gerar seu próprio par de chaves SSH pública / privada para se comunicar com a instância de VM que está prestes a ser criada. O par de chaves SSH fornece segurança forte sobre a autenticação tradicional de senha / nome de usuário; portanto, seguir esta opção é altamente recomendado, embora não seja obrigatório.

1. No shell do Ubuntu, digite o seguinte comando para gerar o par de chaves SSH.

ssh-keygen

2. No início, ele pede um nome para o par de chaves e, em seguida, a senha para a chave ssh. A chave pública é criada como .pub, enquanto a chave privada é criada como . Ambas as chaves são criadas no diretório atualmente ativo. Mantenha a chave privada segura em um local seguro, pois é importante acessar a instância de VM.

Configure o Google Cloud com Terraform

Assim que os dois segmentos mencionados acima forem concluídos, vá em frente e crie uma conta de teste gratuita no Google Cloud. Como criar uma conta é um processo simples, não é descrito aqui. Depois de obter acesso ao console do Google Cloud, siga as etapas a seguir para configurar o Google Cloud com o terraform.

  1. Navegue até o seguinte URL.
    https: // console.nuvem.Google.com
  1. Clique no botão “Meus Projetos” no canto superior esquerdo do console.
  2. Crie um novo projeto ou use um projeto existente para este guia. O objetivo do “projeto” é agrupar vários serviços no Google Cloud. O projeto é o nó mais alto dessa hierarquia de serviços e o restante dos serviços está sob ele. Um serviço criado em um projeto não está acessível a partir de outro projeto. Uma vez que o projeto foi criado, copie e guarde seu ID em algum lugar seguro. Na captura de tela a seguir, o id do projeto é carismático-soma-202020, e pode ser diferente em seu console de nuvem. 
  3. Navegue até o seguinte url da web para baixar o arquivo de credencial no formato JSON para autenticar o usuário ao se conectar com a plataforma de nuvem do Google. Esta é a conta do administrador; portanto, certifique-se de que este arquivo de credencial esteja seguro em um local seguro. https: // console.nuvem.Google.com / apis / credentials / serviceaccountkey 
  4. Crie um arquivo e renomeie-o como principal.tf. Este arquivo é o arquivo de configuração para o terraform, então use o seguinte bloco de código como suas primeiras linhas de código. O nome do provedor é para indicar o provedor com o qual se conectar. O Terraform oferece suporte a um grande número de plataformas em nuvem; portanto, o nome da plataforma em nuvem deve ser explicitamente declarado. Aqui é o Google, o que significa que ele se conecta à plataforma de nuvem do Google. Além do título, existem 3 atributos no bloco, o atributo “credenciais” é para especificar o nome do arquivo de credencial baixado acima, o nome do projeto é o local no google cloud onde a instância VM é criada. O id criado na etapa 3 é usado como o nome do projeto aqui. Região é a localização geográfica onde a instância VM é criada. Existem várias regiões. Use este link para se referir a todas as regiões disponíveis. https: // nuvem.Google.com / appengine / docs / locations provedor "google"
    credenciais = "$ arquivo (" CREDENTIALS_FILE.json ")"
    projeto = "PROJECT_NAME"
    região = "REGION_NAME"

  1. Use o seguinte comando para instalar plug-ins para o terraform. O seguinte comando verifica automaticamente o arquivo de configuração do terraform e identifica quais plugins devem ser instalados, além disso, ele também baixa as informações do provedor para o terraform. Este guia usa a plataforma Google Cloud; portanto, ele baixa as informações do provedor de terraform do Google Cloud. O comando identifica o provedor a partir do nome indicado na palavra-chave “provedor” no arquivo de configuração do terraform. Terraform init
  1. Use os dois blocos de código a seguir para definir mais informações para a instância de VM. Desde o início, ele usa o plug-in de id aleatório para gerar um número aleatório com 8 dígitos, em seguida, atribui esse número à variável instance_id para usar como um prefixo para o nome da instância VM. No segundo bloco de código, ele cria uma instância de VM com o nome “nucuta-vm-. O tipo de máquina é o pacote do servidor usado para hospedar a instância de VM. Consulte este URL da web para encontrar os tipos de máquina disponíveis. https: // nuvem.Google.com / compute / docs / machine-types. Zona é a localização exata da região. Existem principalmente 3 zonas disponíveis em cada região, a, b, c. Cada zona tem sua própria configuração de hardware / software. Use este URL da web para se referir a todas as zonas disponíveis e suas configurações de hardware. https: // nuvem.Google.com / compute / docs / region-zones / resource "random_id" "instance_id"
    byte_length = 8

    recurso "google_compute_instance" "nucuta"
    nome = "nucuta-vm - $ random_id.instance_id.hex "
    machine_type = "f1-micro"
    zone = "asia-south1-a"
  1. Use o seguinte bloco de código dentro do bloco de código “google_compute_instance”. Ele especifica o sistema operacional a ser usado. Use este URL da web para encontrar todos os sistemas operacionais disponíveis para a plataforma em nuvem do Google. https: // nuvem.Google.com / compute / docs / images. Diz imagem, porque os sistemas operacionais são armazenados como arquivos de “imagem”. Quando o arquivo de configuração do terraform está sendo executado, o arquivo de imagem é extraído e seu sistema operacional é instalado na instância da VM como em um computador normal. O atributo de imagem está neste formato, projeto de imagem / família de imagens. boot_disk
    initialize_params
    imagem = "ubuntu-os-cloud / ubuntu-1604-lts"

  1. Use o seguinte código no bloco de código “google_compute_instance”. Ele especifica o script de inicialização a ser executado na instância de VM recém-criada. Este script é executado assim que a instância VM é criada. No exemplo a seguir, ele atualiza o repositório de informações do pacote local com as informações mais recentes, em seguida, atualiza todos os pacotes com dist-upgrade e instala o pacote nginx. Certifique-se de usar o sinalizador -y para tornar o processo não interativo, o que significa que ele executa e realiza automaticamente o processo sem exigir a intervenção do usuário. metadata_startup_script = "sudo apt-get -y update;
    sudo apt-get -y dist-upgrade;
    sudo apt-get -y install nginx "
  1. Use o seguinte bloco de código no bloco de código “google_compute_instance”. O bloco de código a seguir especifica a interface de rede, que é usada para conectar a instância de VM atual com outras instâncias de VM, dispositivos e redes. O bloco Access_config é usado para alocar à instância de VM um endereço IP externo para acessá-la da Internet. network_interface
    rede = "padrão"
    access_config

  1. Por fim, use o seguinte bloco de código no bloco de código “google_compute_instance”. Ele especifica o nome de usuário e a chave SSH pública. Certifique-se de que a chave SSH pública gerada esteja na mesma pasta que o arquivo de configuração do terraform. O nome de usuário deve ser o nome da conta de onde a chave SSH foi criada, por exemplo, se o nome da conta é root, então seu nome de usuário é root. metadata
    sshKeys = "dilanga: $ file (" dilanga.bar")"

  1. O bloco de código final deve ser semelhante a este 
  2. Use o seguinte bloco de código fora de bloco de código “google_compute_instance”. Por padrão, a instância de VM bloqueia todo o tráfego de entrada e saída. Uma vez que este guia cria um servidor web, as portas 80 e 443 devem ser abertas para permitir que os usuários o acessem pela Internet. Desde o início, o atributo name cria um perfil no google compute firewall para esta regra, o atributo network especifica a qual interface de rede a regra se aplica, allow block permite os protocolos e suas portas especificadas sob ele. O protocolo Icmp é usado para fazer ping no servidor da web para garantir que esteja disponível ao público. O ping é frequentemente usado por muitos serviços para descobrir a disponibilidade de um site. recurso "google_compute_firewall" "default"
    nome = "nginx-firewall"
    rede = "padrão"
     
    permitir
    protocolo = "tcp"
    portas = ["80", "443"]

     
    permitir
    protocolo = "icmp"

  3. Use o seguinte bloco de código fora de “google_compute_instance” para imprimir o endereço IP público da instância VM atual. output "ip"
    value = "$ google_compute_instance.nucuta.network_interface.0.access_config.0.nat_ip "
  4. Use o seguinte comando para verificar o arquivo de configuração e o arquivo de credencial. Também mostra como será o resultado final depois que o arquivo de configuração for executado. plano de terraformar
  5. em seguida, use o seguinte comando para executar o arquivo de configuração. terraform aplicar
  6. Agora use o endereço IP público em qualquer navegador da web para acessar o servidor da web da instância de VM.
  7. Use o seguinte comando para acessar a instância de VM por SSH para gerenciar o servidor. Certifique-se de que a chave privada está no diretório atual ou especifique o caminho para a chave privada.
  8. ssh -i @

    Conclusão

    Isso deve ser o suficiente para você começar.  O arquivo de configuração completo, principal.tf, é mostrado abaixo. Os textos destacados podem ser alterados de acordo com os requisitos do usuário.

    provedor "google"
    credentials = "$ file (" dilannga_credentials.json ")"
    projeto = "charismatic-sum-202020"
    region = "asia-south1"

     
    recurso "random_id" "instance_id"
    byte_length = 8

     
    recurso "google_compute_instance" "nucuta"
    nome = "nucuta-vm - $ random_id.instance_id.hex "
    machine_type = "f1-micro"
    zone = "asia-south1-a"
     
    boot_disk
    initialize_params
    imagem = "ubuntu-os-cloud / ubuntu-1604-lts"


     
    metadata_startup_script = "sudo apt-get -y update; sudo apt-get -y dist-upgrade;
    sudo apt-get -y install nginx "
     
    network_interface
    rede = "padrão"
     
    access_config
     


     
    metadata
    sshKeys = "dilanga: $ file (" dilanga.bar")"


     
    recurso "google_compute_firewall" "default"
    nome = "nginx-firewall"
    rede = "padrão"
     
    permitir
    protocolo = "tcp"
    portas = ["80", "443"]

     
    permitir
    protocolo = "icmp"


     
    output "ip"
    value = "$ google_compute_instance.nucuta.network_interface.0.access_config.0.nat_ip "
Como aumentar o FPS no Linux?
FPS significa Quadros por segundo. A tarefa do FPS é medir a taxa de quadros em reproduções de vídeo ou desempenho de jogos. Em palavras simples, o nú...
Top jogos do Oculus App Lab
Se você é proprietário de um fone de ouvido Oculus, deve estar informado sobre o carregamento lateral. Sideload é o processo de instalação de conteúdo...
Os 10 melhores jogos para jogar no Ubuntu
A plataforma Windows tem sido uma das plataformas dominantes para jogos devido à grande porcentagem de jogos que estão sendo desenvolvidos hoje para o...