Получить содержимое файла как вывод Terraform

У меня есть конфигурация Terraform, в которой я запускаю службу systemd на экземпляре AWS EC2. Мне нужно найти журнал этой службы и экспортировать его в выходной файл Terraform.

Когда hello.service запускается, он регистрирует такую ​​строку (среди многих других):

Root Key: F4BF9F7FCBEDABA0392F108C59D8F4A38B38

Мне нужно, чтобы эта строка была выходом Terraform. Что-то вроде этого:

resource "aws_instance" "instance" {

    provisioner "remote-exec" {
        //start hello.service
    }

}

output "rootKey" {
    value = "${}" //??
}

Я хочу, чтобы вывод rootKey был результатом:

journalctl -u hello.service | grep "Root Key "

исполняется на aws_instance.instance

Как я могу это получить?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
784
2

Ответы 2

Один из способов сделать это - использовать внешний источник данных и сценарий оболочки, который выполняет часть journalctl -u hello.service | grep "Root Key", чтобы вернуть вам корневой ключ.

https://www.terraform.io/docs/providers/external/data_source.html

Кажется, программа во внешних источниках данных выполняется на машине, на которой запущен terraform, не так ли? Мне нужно выполнить на удаленном экземпляре. Вы можете помочь мне?

Héctor 11.08.2018 12:32

Вы также можете использовать модуль github, созданный Матти Паксулой: https://github.com/matti/terraform-shell-resource

репо имеет хорошее описание и много примеров для начала

Другие вопросы по теме