Как правильно добавить секретный файл по умолчанию в knife.rb?
Каков правильный формат для добавления секретного файла в мой knife.rb? Я прочитал документы и, похоже, не могу правильно отформатировать, или, возможно, он не работает.
Я попытался добавить оба:
knife[:secret_file] = "/path/to/data_bag_secret"
а также
secret_file "/path/to/data_bag_secret"
Ни один из них, кажется, не шифрует мои секреты, когда я использую knife data bag create bag key
Если я использую knife data bag create bag key --secret-file /path/to/data_bag_secret
однако он правильно шифрует.
Кажется, он не зашифрован, когда я смотрю на пакеты данных на https://manage.chef.io/, поэтому я думаю, что это не шифрование. Когда я вручную передаю ключ, он шифруется правильно на https://manage.chef.io/.
2 ответа
tl;dr: дополнительно передать аргумент командной строки --encrypt
флаг, если вы используете Chef 12+. например knife data bag from file foo ./data_bags/foo.json --encrypt
Поскольку шеф-повар 12, вы должны пройти в --encrypt
флаг при использовании knife data bag [create|from file]
Команды для того, чтобы ваш knife[secret]
или же knife[secret_file
Варианты конфигурации в knife.rb. Основная проблема здесь заключается в том, что документы шеф-повара еще не были обновлены, чтобы указывать как таковые. Если вы позвоните knife data bag [create|from file] --help
вы увидите объяснение опции флага --encrypt там.
Ответ получен здесь: https://github.com/chef/chef/issues/3223.
Так что это немного странно, но --secret-file
не заполняет свое собственное значение конфигурации. Если вы загляните в https://github.com/chef/chef/blob/master/lib/chef/knife/data_bag_secret_options.rb#L48 вы увидите, что вместо этого он запускает пользовательский процесс, который определен ниже. настройка knife[:secret_file]
все еще должен работать, хотя весь код, связанный с шифрованием пакетов, использует оба. В общем, вы не будете использовать data bag create
для этого, хотя, это для начального создания сумки / пункта. Для общего использования обновлений data bag from file
, Также помните, что вам нужно удалить это значение из вашего конфигурационного файла, чтобы фактически увидеть зашифрованные данные, в противном случае knife data bag show
расшифрует его для вас автоматически.