28 Perguntas e Respostas da Entrevista Terraform em Tempo Real

Aqui estão 28 perguntas e respostas em tempo real da entrevista do Terraform com uma lista e explicação de comandos importantes frequentemente solicitados em entrevistas.

O aumento do uso de tecnologias em nuvem abriu muitas oportunidades no mundo do DevOps. No futuro, as tecnologias de nuvem serão um tópico comum para perguntas de entrevistas e conhecimento básico de nuvem e infraestrutura como código, ferramentas de IAC serão obrigatórias para funções de DevOps.

últimas postagens

O que é Terraform?

Terraform é uma das ferramentas de IAC mais populares usadas por todos os engenheiros de nuvem. Ele nos permite definir recursos na nuvem e no local em arquivos de configuração legíveis por humanos e, assim, provisionar esses recursos programaticamente. O recurso mais notável do Terraform é que, diferentemente da maioria das ferramentas IAC existentes, ele não se limita a um único provedor de nuvem. Você pode usar o Terraform para executar seus aplicativos em várias plataformas de nuvem simultaneamente.

Caso você esteja se perguntando quais tecnologias o terraform suporta, aqui está uma pequena lista:

Para avançar em sua carreira como Engenheiros de DevOps, Arquitetos de Nuvem, Desenvolvedores ou Administradores, você terá que enfrentar as perguntas da entrevista do Terraform. Compilamos uma lista das principais perguntas da entrevista do Terraform que devem ajudá-lo a aprimorar seu conhecimento do Terraform.

  Não é possível compartilhar a tela no Microsoft Teams - correções para PC e dispositivos móveis

Perguntas e respostas gerais da entrevista do Terraform

#1. O que você entende por Terraform?

Terraform é uma ferramenta IAC de código aberto criada por HashiCorp. Ele é usado para criar, atualizar, excluir e versionar sua infraestrutura em várias plataformas de nuvem.

#2. Quais são as razões para escolher o Terraform para DevOps?

O uso do Terraform para provisionar infraestrutura não deixa espaço para erros humanos, melhorando assim a qualidade, consistência e eficiência da infraestrutura em nuvem e local. O Terraform usa a linguagem HCL, que é bastante semelhante ao JSON e fácil de aprender e usar. Ao contrário de outras ferramentas de IAC oferecidas por provedores de nuvem, como Cloudformation for AWS, podemos usar o Terraform com várias plataformas de nuvem simultaneamente. Isso evita a necessidade de aprender várias ferramentas IAC e melhora o escopo da colaboração.

#3. Como o Terraform funciona?

O Terraform usa plug-ins chamados provedores do Terraform para interagir com APIs em Cloud Platforms e provisionar nossos recursos. Como usuário final, o fluxo de trabalho do terraform tem três etapas.

Gravar: crie a infraestrutura como código.

Plano: Visualize as alterações que o Terraform fará antes de se inscrever.

Aplicar: provisione a infraestrutura e aplique as alterações.

#4. O que você quer dizer com nuvem do Terraform?

O Terraform Cloud é um ambiente remoto otimizado para o fluxo de trabalho do Terraform. Ele fornece recursos como espaços de trabalho e bloqueio de estado, o que permite que as pessoas em grandes equipes colaborem.

#5. O que você entende por Estado no Terraform?

Como ferramenta IAC, o terraform deve conhecer o estado atual das configurações e infraestrutura sob seu gerenciamento. O Terraform armazena essas informações em um arquivo chamado arquivo de estado.

#6. Qual é o benefício do Terraform State?

O Terraform State permite que o Terraform mapeie recursos do mundo real para sua configuração, acompanhe os metadados e melhore o desempenho ao planejar mudanças para infraestruturas complexas. É um componente crítico do Terraform.

#7. O que você entende por Terraform Backend?

O back-end do Terraform é a plataforma onde os instantâneos de estado do Terraform são armazenados. Por padrão, o Terraform usa um backend chamado local para armazenar o estado como um arquivo local em seu disco. Todos os outros back-ends suportados são algum tipo de serviço de armazenamento remoto.

#8. O que é um provedor no Terraform?

Os provedores no Terraform são plug-ins que permitem que o Terraform interaja com provedores de nuvem, provedores de SaaS e outras APIs. Por exemplo, se planejamos usar o Terraform para provisionar infraestrutura na AWS, precisaremos declarar um provedor da AWS em nossos arquivos de configuração.

#9. Quem mantém os provedores do Terraform?

Os provedores são distribuídos separadamente do próprio Terraform. Como usuário do Terraform, qualquer pessoa pode desenvolver seus próprios provedores. Existem alguns provedores padrão que são mantidos explicitamente pela Hashicorp.

#10. O que é Sentinela?

Sentinela é uma política como uma ferramenta de código usada para impor configurações padrão para recursos que estão sendo implantados pelo Terraform. Ele pode ser usado por organizações para fins de conformidade e governança.

#11. O que você entende por módulos no Terraform?

Um módulo Terraform é um contêiner padrão para vários recursos usados ​​juntos para provisionar e configurar recursos. Por exemplo, você pode criar um “módulo VPC” para sua organização que provisiona uma VPC padrão e outros recursos como sub-redes e gateways de Internet. Os módulos podem ser compartilhados publicamente por meio do registro de módulo público e de forma privada por meio do registro de módulo privado.

  Como usar seu iPhone como uma webcam

#12. Qual é o benefício de usar módulos no terraform?

Os módulos do Terraform nos permitem criar abstração lógica no topo de um conjunto de recursos. O uso de módulos nos permite manter e reutilizar uma configuração padrão de recursos. Eles podem ser versionados e compartilhados com membros de suas equipes para provisionar recursos de maneira padrão.

#13. O que é o Registro de Módulo Privado?

Um recurso Terraform Cloud de registro de módulo privado nos permite compartilhar módulos do Terraform em toda a nossa organização.

Perguntas e respostas avançadas da entrevista do Terraform

#14. Como podemos exportar dados de um módulo para outro?

Podemos exportar dados de um módulo definindo blocos de saída nos arquivos de configuração do módulo. Esses dados podem então ser transferidos como um parâmetro para o módulo de destino.

#13. Como você pode definir dependências no Terraform?

O Terraform possui gerenciamento de dependência integrado. O Terraform tem dois tipos de dependências entre recursos – dependências implícitas e explícitas.

Dependências implícitas, como o nome sugere, são detectadas pelo Terraform automaticamente. É quando a saída de um “recurso A” é usada no “recurso B”. O Terraform detecta automaticamente que o “recurso B” precisa ser criado somente após o “recurso A”

As dependências explícitas podem ser especificadas nos casos em que dois recursos são internamente dependentes um do outro sem compartilhar nenhuma saída. Isso pode ser feito usando o parâmetro Depends_on no bloco de configuração.

#14. O que são Provisionadores no Terraform?

Provisionadores são recursos do Terraform usados ​​para executar scripts como parte da criação ou destruição de recursos. Existem dois tipos de Provisionadores no Terraform:

  • local-exec: invoca um script na máquina que executa o Terraform.
  • remote-exec: Invoca um script em um recurso remoto após sua criação.

Os provisionadores devem ser usados ​​apenas como último recurso no Terraform.

#15. O que é o bloco de dados externo no Terraform?

Assim como o provisionador local-exec, o data bock externo pode ser usado para executar scripts em máquinas que executam o Terraform. A diferença entre um provisionador e o bloco de dados externo é que os scripts no bloco de dados externo podem retornar dados no formato JSON, enquanto os provisionadores não podem retornar nenhuma saída. É importante observar que os blocos de dados externos também devem ser um último recurso e não devem ser usados ​​se houver uma alternativa melhor.

#16. Como duas pessoas usando a nuvem do Terraform podem criar dois conjuntos diferentes de infraestrutura usando o mesmo diretório de trabalho?

Usando diferentes áreas de trabalho. Esses usuários podem iniciar as execuções do Terraform em duas áreas de trabalho separadas. Cada espaço de trabalho tem um arquivo de estado próprio, portanto, desde que os recursos não se sobreponham, ambos os usuários podem provisionar com êxito dois conjuntos diferentes de infraestrutura usando o mesmo código.

#17. O que acontece quando vários engenheiros começam a implantar a infraestrutura usando o mesmo arquivo de estado?

O Terraform possui um recurso muito importante chamado “bloqueio de estado”. Esse recurso garante que nenhuma alteração seja feita no arquivo de estado durante uma execução e evita que o arquivo de estado seja corrompido. É importante observar que nem todos os backends do Terraform suportam o recurso de bloqueio de estado. Você deve escolher o back-end certo se esse recurso for um requisito.

  Como configurar o Quassel Core no servidor Ubuntu

#18. O que é um recurso nulo no Terraform?

Um recurso nulo terraform é uma configuração que é executada como um bloco de recursos terraform padrão, mas não cria nenhum recurso. Isso pode parecer um recurso estranho e inútil, mas pode ser útil em várias situações para contornar as limitações do Terraform.

#19. Como você pode usar o mesmo provedor no Terraform com configurações diferentes?

Usando o argumento de alias no bloco do provedor.

#20. Você tem um arquivo de configuração do Terraform sem recursos. O que acontece quando você executa o comando terraform apply?

O Terraform destruirá todos os recursos. Iniciar uma corrida vazia com o comando terraform apply é exatamente o mesmo que iniciar a corrida terraform destroy.

#21. O que acontece se um recurso foi criado com sucesso no terraform, mas falhou durante o provisionamento?

Este é um cenário improvável, mas quando isso acontece, o recurso é marcado como corrompido e pode ser recriado reiniciando a execução do terraform.

#22. Qual valor da variável TF_LOG fornece o log mais detalhado?

TRACE é o valor mais detalhado e padrão da variável TF_LOG.

#23. Como você pode importar recursos existentes no Terraform Management?

Usando o comando de importação do terraform.

#24. Qual comando pode ser usado para visualizar o plano de execução do terraform?

O comando terraform plan gera o plano de execução das mudanças que o Terraform fará na infraestrutura.

#25. Qual comando pode ser usado para reconciliar o estado do Terraform com a infraestrutura real do mundo real?

O comando terraform apply -refresh-only é usado para reconciliar o estado do Terraform com a infraestrutura real do mundo real. É a nova alternativa ao comando terraform refresh, que agora está obsoleto.

#26. Qual comando pode ser usado para alternar entre workspaces ao usar o Terraform Cloud?

O comando terraform workspace select é usado para escolher uma área de trabalho diferente.

#27. Qual comando é usado para realizar a validação de sintaxe nos arquivos de configuração do terraform?

O comando terraform validate é usado para verificar se uma configuração é sintaticamente válida e internamente consistente.

#28. Qual comando é usado para criar novos espaços de trabalho na nuvem do Terraform?

O comando terraform workspace new é usado para criar uma nova área de trabalho.

Alguns outros comandos terraform importantes para entrevistas técnicas.

  • terraform init: Inicializa backends remotos; provedores de downloads e módulos remotos definidos em sua configuração.
  • terraform init -upgrade: usado para atualizar os provedores baixados existentes.
  • plano terraform: gera o plano de execução para a criação ou atualização da infraestrutura.
  • terraform apply: cria ou atualiza a infraestrutura após solicitar a confirmação do usuário.
  • terraform apply –auto-approve: cria ou atualiza a infraestrutura; etapa de aprovação do usuário é ignorada.
  • terraform destroy: exclui a infraestrutura após solicitar a confirmação do usuário.
  • terraform destroy –auto-approve: exclui a infraestrutura; etapa de aprovação do usuário é ignorada.
  • terraform fmt: verifica o diretório atual em busca de arquivos de configuração e os formata de acordo com o estilo e formato canônico do HCP.
  • terraform fmt –recursive: verifica o diretório atual, bem como os subdiretórios em busca de arquivos de configuração e os formata de acordo com o estilo e formato canônico do HCP.
  • terraform show: fornece uma saída legível por humanos de um arquivo de estado ou plano.

Espero que as informações acima ajudem você a conseguir um emprego no Terraform.