суммарные данные ножа
Мешки данных хранят глобальные переменные в формате JSON. Мешки данных индексируются для поиска и могут загружаться кулинарией или использоваться во время поиска.
Элемент мешка данных может быть зашифрован с использованием шифрования общим секретом. Это позволяет каждому элементу мешка данных хранить конфиденциальную информацию (например, пароль базы данных) или управлять им в системе контроля версий (без появления данных в открытом виде в истории версий). Каждый элемент мешка данных может быть зашифрован индивидуально; если мешок данных содержит несколько зашифрованных элементов мешка данных, эти элементы не обязаны использовать одинаковые ключи шифрования.
Примечание
Поскольку содержимое зашифрованных элементов мешка данных не видно серверу Chef Infra, запросы поиска по мешкам данных с зашифрованными элементами не вернут никаких результатов.
Используйте подкоманду knife data bag для управления произвольными хранилищами глобально доступных данных в формате JSON.
Примечание
create
Используйте аргумент 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`. --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
Используйте аргумент 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
Используйте аргумент 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 Client в локальном режиме
Чтобы сгенерировать зашифрованный элемент мешка данных в файле JSON для использования при запуске Chef Infra Client в локальном режиме (через параметр --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
Используйте аргумент list для просмотра списка мешков данных, которые в настоящее время доступны на сервере Chef Infra.
Синтаксис
Этот аргумент имеет следующий синтаксис:
knife data bag list
Параметры
Этот аргумент имеет следующие параметры:
-
-w,--with-uri -
Показать соответствующие URI.
Примеры
В следующих примерах показано использование этой подкоманды `knife`:
Просмотр списка мешков данных
knife data bag list
show
Используйте аргумент 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/