супер данные ножа
Мешки данных хранят глобальные переменные в формате JSON. Мешки данных индексируются для поиска и могут загружаться кулинарной книгой или доступны во время поиска.
Элемент мешка данных может быть зашифрован с помощью симметричного шифрования. Это позволяет каждому элементу мешка данных хранить конфиденциальную информацию (например, пароль базы данных) или управлять им в системе контроля версий (без появления данных в открытом виде в истории ревизий). Каждый элемент мешка данных может быть зашифрован индивидуально; если мешок данных содержит несколько зашифрованных элементов мешка данных, эти элементы мешка данных не обязаны использовать одни и те же ключи шифрования.
Примечание
Поскольку содержимое зашифрованных элементов мешка данных не видно для сервера Chef Infra, запросы поиска по мешкам данных с зашифрованными элементами не будут возвращать никаких результатов.
Используйте подкоманду knife data bag для управления произвольными хранилищами глобально доступных данных в формате JSON.
Примечание
создать
Используйте аргумент create для добавления мешка данных на сервер Chef Infra.
Синтаксис
Этот аргумент имеет следующий синтаксис:
knife data bag create DATA_BAG_NAME [DATA_BAG_ITEM] (options)
Параметры
Этот аргумент имеет следующие параметры:
DATA_BAG_ITEMИмя конкретного элемента внутри мешка данных.
DATA_BAG_NAMEне может бытьclient,environment,nodeилиrole, так как эти слова зарезервированы для knife search.--secret SECRETКлюч шифрования, используемый для значений, содержащихся в элементе мешка данных. Если
secretне указан, клиент Chef Infra ищет секрет по пути, указанному в настройкеencrypted_data_bag_secretв файле client.rb. Для зашифрованных элементов мешка данных используйте либо--secretили--secret-file, а не оба.--secret-file FILEПуть к файлу, содержащему ключ шифрования.
Примечание
Примеры
Следующие примеры показывают, как использовать эту подкоманду knife:
Создание мешка данных
Чтобы создать мешок данных с именем «admins», введите:
knife data bag create admins
чтобы получить:
Created data_bag[admins]
удалить
Используйте аргумент delete для удаления мешка данных или элемента мешка данных с сервера Chef Infra.
Синтаксис
Этот аргумент имеет следующий синтаксис:
knife data bag delete DATA_BAG_NAME [DATA_BAG_ITEM] (options)
Параметры
Этот аргумент имеет следующие параметры:
DATA_BAG_ITEMИмя конкретного элемента внутри мешка данных.
Примеры
Следующие примеры показывают, как использовать эту подкоманду knife:
Удаление мешка данных
knife data bag delete data_bag_name
Удаление элемента мешка данных
Чтобы удалить элемент с именем «charlie», введите:
knife data bag delete admins charlie
Введите Y для подтверждения удаления.
редактировать
Используйте аргумент edit для редактирования данных в мешке данных. Если используется шифрование, мешок данных будет расшифрован, данные будут доступны в $EDITOR, а затем снова зашифрованы перед сохранением на сервере Chef Infra.
Синтаксис
Этот аргумент имеет следующий синтаксис:
knife data bag edit DATA_BAG_NAME [DATA_BAG_ITEM] (options)
Параметры
Этот аргумент имеет следующие параметры:
DATA_BAG_ITEMИмя конкретного элемента внутри мешка данных.
--secret SECRETКлюч шифрования, используемый для значений, содержащихся в элементе мешка данных. Если
secretне указан, клиент Chef Infra ищет секрет по пути, указанному в настройкеencrypted_data_bag_secretв файле client.rb.--secret-file FILEПуть к файлу, содержащему ключ шифрования.
Примечание
--secret или --secret-file, а не оба.Примечание
Примеры
Следующие примеры показывают, как использовать эту подкоманду knife:
Редактирование мешка данных
Чтобы отредактировать содержимое мешка данных, введите:
knife data bag edit dogs tibetanspaniel
где dogs — имя мешка данных, а tibetanspaniel — имя элемента мешка данных. Это вернёт что-то похожее на следующее в редакторе knife:
{
"name":"data_bag_item_dogs_tibetanspaniel",
"json_class":"Chef::DataBagItem",
"chef_type":"data_bag_item",
"data_bag":"dogs",
"raw_data":
{
"description":"small dog that likes to sit in windows",
"id":"tibetanspaniel"
}
}
Внесите необходимые изменения в пары ключ-значение в raw_data и сохраните их.
Редактирование элемента мешка данных
Чтобы отредактировать элемент с именем «charlie», который содержится в мешке данных с именем «admins», введите:
knife data bag edit admins charlie
чтобы открыть $EDITOR. После открытия вы можете обновить данные перед сохранением их на сервер Chef Infra. Например, изменив:
{
"id": "charlie"
}
на:
{
"id": "charlie",
"uid": 1005,
"gid": "ops",
"shell": "/bin/zsh",
"comment": "Crazy Charlie"
}
из файла
Используйте аргумент from file для:
- Добавления элемента мешка данных в мешок данных
- Обновления содержимого существующего элемента мешка данных
Сам мешок данных должен уже существовать на сервере Chef Infra и должен быть указан в команде. Содержимое элемента мешка данных указывается с помощью файла JSON. Этот файл JSON может находиться по относительному или абсолютному пути; его расположение должно быть указано в команде. Файл JSON, определяющий содержимое элемента мешка данных, должен, по крайней мере, содержать имя элемента мешка данных — "id": "name".
Синтаксис
Этот аргумент имеет следующий синтаксис:
knife data bag from file DATA_BAG_NAME_or_PATH JSON_FILE
Параметры
Этот аргумент имеет следующие параметры:
-
-a,--all Загрузка всех мешков данных, найденных по указанному пути.
--secret SECRETКлюч шифрования, используемый для значений, содержащихся в элементе мешка данных. Если
secretне указан, клиент Chef Infra ищет секрет по пути, указанному в настройкеencrypted_data_bag_secretв файле client.rb.--secret-file FILEПуть к файлу, содержащему ключ шифрования.
Примечание
--secret или --secret-file, а не оба.Примечание
Примеры
Следующие примеры показывают, как использовать эту подкоманду knife:
Создание мешка данных из файла
Чтобы создать мешок данных на сервере Chef Infra из файла:
knife data bag from file "path to JSON file"
Создание зашифрованного мешка данных из файла
Чтобы создать мешок данных с именем «devops_data», содержащий зашифрованные данные, введите:
knife data bag from file devops_data --secret-file "path to decryption file"
Создание зашифрованного мешка данных для использования с клиентом Chef Infra в локальном режиме
Чтобы сгенерировать зашифрованный элемент мешка данных в файле JSON для использования, когда клиент Chef Infra запускается в локальном режиме (через опцию --local-mode), введите:
knife data bag from file my_data_bag /path/to/data_bag_item.json -z --secret-file /path/to/encrypted_data_bag_secret
это создаст зашифрованный файл JSON в:
data_bags/my_data_bag/data_bag_item.json
список
Используйте аргумент list для просмотра списка мешков данных, которые в настоящее время доступны на сервере Chef Infra.
Синтаксис
Этот аргумент имеет следующий синтаксис:
knife data bag list
Параметры
Этот аргумент имеет следующие параметры:
-
-w,--with-uri Показать соответствующие URI.
Примеры
Следующие примеры показывают, как использовать эту подкоманду knife:
Просмотр списка мешков данных
knife data bag list
показать
Используйте аргумент show для просмотра содержимого мешка данных.
Синтаксис
Этот аргумент имеет следующий синтаксис:
knife data bag show DATA_BAG_NAME (options)
Параметры
Этот аргумент имеет следующие параметры:
DATA_BAG_ITEMИмя конкретного элемента внутри мешка данных.
--secret SECRETКлюч шифрования, используемый для значений, содержащихся в элементе мешка данных. Если
secretне указан, клиент Chef Infra ищет секрет по пути, указанному в настройкеencrypted_data_bag_secretв файле client.rb.--secret-file FILEПуть к файлу, содержащему ключ шифрования.
Примечание
--secret или --secret-file, а не оба.Примечание
Примеры
Следующие примеры показывают, как использовать эту подкоманду knife:
Показать мешок данных
knife data bag show admins
чтобы получить что-то вроде:
charlie
Показать элемент мешка данных
Чтобы отобразить содержимое определенного элемента внутри пакета данных, введите:
knife data bag show admins charlie
что вернёт:
comment: Crazy Charlie
gid: ops
id: charlie
shell: /bin/zsh
uid: 1005
Отображение пакета данных, зашифрованного
Чтобы отобразить содержимое пакета данных с именем passwords с элементом, содержащим зашифрованные данные с именем mysql, введите:
knife data bag show passwords mysql
что вернёт:
{
"id": "mysql",
"pass": "trywgFA6R70NO28PNhMpGhEvKBZuxouemnbnAUQsUyo=\n",
"user": "e/p+8WJYVHY9fHcEgAAReg==\n"
}
Отображение пакета данных, расшифрованного
Чтобы отобразить расшифрованное содержимое того же пакета данных, введите:
knife data bag show --secret-file /path/to/decryption/file passwords mysql
что вернёт:
{
"id": "mysql",
"pass": "thesecret123",
"user": "fred"
}
Отображение пакета данных в формате JSON
Чтобы просмотреть информацию в формате JSON, используйте общий параметр -F как часть команды следующим образом:
knife data bag show admins -F json
Другие доступные форматы включают text, yaml, и pp.
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/knife_data_bag/