сохранение выходных данных terraform в файл

#terraform #terraform-provider-aws

#terraform #terraform-поставщик-aws

Вопрос:

Я использую terraform для создания сертификатов. Ищу информацию о том, как сбросить значения pem и cert в файл на диске с помощью terrafrom. вот выходная переменная. я хочу сбросить их в переменную. любой ссылочный фрагмент кода??

 output "private_key" {
  description = "The venafi private key"
  value       = venafi_certificate.this.private_key_pem
}

output "certificate_body" {
  description = "The acm certificate body"
  value       = venafi_certificate.this.certificate
}

output "certificate_chain" {
  description = "The acm certificate chain"
  value       = venafi_certificate.this.chain
}
'''
  

Ответ №1:

Одним из способов было бы использовать local_file. Например:

 resource "local_file" "private_key" {
    content  = venafi_certificate.this.private_key_pem
    filename = "private_key.pem"
}
  

Комментарии:

1. Попробую использовать этот ресурс «local_file». Приветствую Марчина!

2. @CharlesD Нет проблем. Рад, что смог помочь:-)

3. Проблема в том, что «local_file» — это файл, который исчезнет во время «terraform apply»

Ответ №2:

Это старый вопрос, но позвольте мне оставить свой ответ здесь, если кто-нибудь столкнется с такой же проблемой. Вы можете отправить все свои выходные данные в файл, подобный этому

  terraform output > file.txt
  

где file.txt это файл, содержащий выходные данные

Комментарии:

1. что, если файл еще не создан? Будет ли эта команда автоматически создавать этот файл?

2. Да, это создаст его.

3. Это приведет к выводу всего содержимого «вывода terraform» в file.txt . В случае, если требуется один или несколько отдельных выходных данных, таких как тело сертификата или закрытый ключ, используйте блок ресурсов, как указано выше @Marcin

4. Это не работает с конфиденциальными выводами. terraform output -raw myvariable выводит единственную переменную, даже если она помечена как чувствительная. terraform output -json выводит все переменные, даже если они помечены как чувствительные, в формате json.