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