Я использую настроенную версию такой функции Puppet vault_lookup для интеграции с Vault. Изменены некоторые логи c, чтобы войти через AppRole, а не с сертификатами, как это было в оригинальной версии. И пытаюсь автоматизировать установку Vault с помощью этого модуля: puppet-vault .
Итак, этот код из примера работает отлично:
$d = Deferred('vault_lookup::lookup', ["secret/test", 'https://vault.hostname:8200'])
node default {
notify { example :
message => $d
}
}
Но я пытаюсь чтобы достичь чего-то подобного:
class { '::vault':
storage => {
postgresql => {
connection_url => "postgres://postgres_user:${d}@IP:5432/vault_db_user",
ha_enabled => 'true',
ha_table => 'vault_ha_locks',
}
}
}
И это содержимое переменной $d
внутри ::vault class
:
Deferred('vault_lookup::lookup', ["secret/test", 'https://vault.hostname:8200'])
Да, я могу получить правильное содержимое переменной с помощью использование таких call
:
connection_url => "postgres://postgres_user:${d.call()}@IP:5432/vault_db_user",
Это круто, но я не могу использовать тип Sensitive
для этой переменной для скрытия содержимого в журналах запуска Puppet :( Кроме того, я легко могу получить содержимое $d
переменная (даже с типом Sensitive
) при использовании стандартных ресурсов Puppet, таких как file
.
Может быть, кто-то уже реализовал vault_lookup
и может подсказать, как передать содержимое переменной в другие классы внутри манифеста?