2015-06-29 3 views
0

В моем рецепте повар, я в основном дешифрования пару мешков данных:Chef - создать пакеты тестовых данных во время компиляции

1. test.json 2. sample.json

Данные, полученные после расшифровки будет затем использоваться для создания файлов на моем кухонном узле. В основном, test.json и sample.json шифруются с помощью секретного ключа у меня есть (test.json был получен из test.txt и sample.json была получена из sample.txt которые обоего текстовых файлов), в рамках сценария под названием gendatabags.rb, который создает эти файлы и помещает их в соответствующих местах. Обратите внимание, что gendatabags.rb принимает входные параметры secret key path и input file path. Теперь, когда я хочу интегрировать-протестировать этот поток, я с нетерпением жду использования секретного секретного ключа, который я сгенерировал. Я хотел бы предоставить тестовые версии как test.txt, так и sample.txt, которые содержат некоторые фиктивные строки. Уловка, теперь я хотел бы запустить этот скрипт автоматически во время compile time моего рецепта. Может кто-то, пожалуйста, предоставьте некоторую информацию о том, как этого достичь?

Спасибо!

+0

См. [Это] (https://docs.chef.io/resource_common.html#run-in-compile-phase) – Tensibai

ответ

0

Настоятельно не рекомендуется. Технически вы могли бы сделать это с помощью ресурса execute, но у вас были бы всевозможные проблемы с синхронизацией, и это в любом случае победит цель иметь зашифрованный пакет данных.

Теперь, если вы пытаетесь протестировать фиктивную зашифрованную базу данных, которая проста. Вы будете делать сумку данных в обычном режиме, но с добавлением -z переключателя

knife data bag create <data bag name> -z 
knife data bag from file <data bag name> <path to .json file> --secret-file <path to encryption key file> -z 

Это сделает локальный каталог с именем вашей сумки данных и поместить зашифрованный элемент мешка данных внутри него, с имя «id» значения json-файла.

-z по умолчанию положить сумку данных и элементов в/пользователей // data_bags

Оттуда вы можете редактировать .kitchen.yml указывать в сторону как сумку данных и секретного ключа Thusly

Suites: 
    - name: default 
    run_list: 
    data_bags_path: <path to data_bags dir> 
    encrypted_data_bag_secret_key_path: <path to secret_file> 

и если у вас есть несколько сьютов, используя путь же data_bags вы можете переместить декларацию

provisioner: 
    name: chef_zero 
    data_bags_path: <path to data_bags dir> 
    encrypted_data_bag_secret_key_path: <path to secret_file> 

Надеется, что это помогает.