Como obter log utilizando Terraform Scripts
Olá Pessoal,
Após a notificação de alguns posts, pensei em compartilhar um ponto importante antes como troubleshooting consumindo o serviço Terraform.
Como sabemos, após executar o comando terraform plan
ou terraform apply
muitos comandos são executados em background, bem como identificar as variáveis, provider e gráficos de caminhos de execução.
Lembrando que esses parâmetros não são específicos de Netscaler ou qualquer outro vendor, e sim são caminhos que o próprio Terraform oferece para obter mais dados/logs da execução de seu script.
Introdução
O Terraform oferece um registro detalhado, que fornece muito mais informações, facilitando a depuração do problema. Para ativar os diferentes níveis de registro, é necessário configurar duas variáveis de ambiente, TF_LOG
e TF_LOG_PATH
. A variável de ambiente TF_LOG define o nível de verbosidade do registro. Cinco níveis de registro podem ser usados para fins de depuração:
- TRACE = Tem a verbosidade mais elaborada e mostra cada passo dado pelo Terraform.
- DEBUG = Descreve o que está acontecendo internamente de forma mais concisa em comparação com o TRACE.
- INFO = Mostra mensagens gerais de alto nível sobre o processo de execução.
- WARN = Registra avisos que podem indicar erros de configuração ou erros, mas que não são críticos para a execução.
- ERROR = Exibe erros que impedem o Terraform de continuar.
O próximo item que você precisa definir é o caminho do arquivo de registro, para isso, você deve usar a variável de ambiente TF_LOG_PATH
. Essa variável criará o arquivo especificado e anexará os registros gerados pelo Terraform. Se TF_LOG_PATH
não for definida, a saída será enviada para a saída padrão e para o erro no terminal.
Visualização e Execução
No meu caso eu prefiro no momento de execução do script definir essas variáveis baseado no que você deseja naquele momento de log, portanto segue abaixo exemplo de comandos:
$ TF_LOG=DEBUG TF_LOG_PATH=./tf_debug.log terraform plan
$ TF_LOG=INFO TF_LOG_PATH=./tf_debug_1.log terraform apply
Segue o resumo do arquivo gerado por essa demanda. Logo abaixo, podemos observar os resultados sendo executados diretamente para executar o comando do terraform.
Definição da criação do nome do arquivo feito na execução anterior.
Logo abaixo um exemplo da função sendo executada pelo definição TRACE
.
Conclusão
De fato, podemos obter informações para investigar os eventos e os erros de execução no background, facilitando assim uma forma de identificação do erro ou muitas vezes de uma biblioteca que está faltando parâmetro.
Atte, Rodrigo