Как получить значение зашифрованного пакета данных secret в тестовой кухне


Я добавил data_bags_path и encrypted_data_bag_secret_key_path в kitchen.yml следующим образом:

provisioner:
  name: chef_zero
  chef_omnibus_url: omni-url/chef/install.sh
  roles_path: 'test/integration/default/roles'
  data_bags_path: "test/integration/default/data_bags"
  encrypted_data_bag_secret_key_path: "test/integration/default/encrypted_data_bag_secret"

Я полагаю, что вышеописанное копирует encrypted_data_bag_secret в файл с именем encrypted_data_bag_secret под /tmp/kitchen/

Вот почему в моем рецепте я называю секрет следующим образом:
secret = Chef::EncryptedDataBagItem.load_secret("/tmp/kitchen/encrypted_data_bag_secret")
encryptkey = Chef::EncryptedDataBagItem.load("tokens", "encryptkey", secret)

Однако тестовая кухня терпит неудачу со следующей ошибкой:

No such file or directory - file not found '/tmp/kitchen/encrypted_data_bag_secret'

1 2

1 ответ:

В целом вы, вероятно, не захотите использовать зашифрованные пакеты данных в своих тестах. Если вы хотите использовать шифрование по какой-то причине (на самом деле, не используйте), используйте обычный data_bag_item() API, который выполняет загрузку ключа для вас.