knife xargs
Используйте подкоманду knife xargs для получения шаблонов из стандартного ввода, загрузки в формате JSON, выполнения команды над загруженным JSON и последующей загрузки любых изменений.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
knife xargs [PATTERN...] (options)
Параметры
Примечание
Эта подкоманда имеет следующие параметры:
-0Значение по умолчанию:
false.--chef-repo-path PATHПуть к chef-repo. Этот параметр переопределит путь к chef-repo по умолчанию. Значение по умолчанию: то же, что указано в
chef_repo_pathв файле client.rb.--concurrencyКоличество разрешенных одновременных подключений. Значение по умолчанию:
10.--[no-]diffОтображать разницу, когда файл меняется. Значение по умолчанию:
--diff.--dry-runЗапретить загрузку изменений на сервер Chef Infra. Значение по умолчанию:
false.--[no-]forceПринудительно загрузить файлы, даже если они не были изменены. Значение по умолчанию:
--no-force.-
-I REPLACE_STRING,--replace REPLACE_STRING Определить строку, которая будет использоваться для замены всех вхождений имени файла. Значение по умолчанию:
nil.-
-J REPLACE_STRING,--replace-first REPLACE_STRING Определить строку, которая будет использоваться для замены первого вхождения имени файла. Значение по умолчанию:
nil.--localСкомпилировать или выполнить командную строку над локальным файлом. Установите в
falseдля компиляции или выполнения над удалённым файлом. Значение по умолчанию:false.-
-n MAX_ARGS,--max-args MAX_ARGS Максимальное количество аргументов в командной строке. Значение по умолчанию:
nil.-
-p [PATTERN...],--pattern [PATTERN...] Один (или более) шаблонов для командной строки. Если этот параметр не указан, список шаблонов может ожидать ввода со стандартного ввода. Значение по умолчанию:
nil.--repo-mode MODEСтруктура локального chef-repo. Возможные значения:
static,everything, илиhosted_everything. Используйтеstaticтолько для ролей, сред, кулинарных книг и мешков данных. По умолчанию,everythingиhosted_everythingдинамически выбираются в зависимости от типа сервера. Значение по умолчанию:default.-
-s LENGTH,--max-chars LENGTH Максимальный размер (в символах) командной строки. Значение по умолчанию:
nil.-tВыполнить команду print в командной строке. Значение по умолчанию:
nil.
Примечание
Примеры
В следующих примерах показано, как использовать эту подкоманду knife:
Поиск и замена данных
Следующий пример пройдёт по всем узлам на сервере и заменит слово foobar на baz:
knife xargs --pattern /nodes/* "perl -i -pe 's/foobar/baz'"
Использование вывода knife list и Perl
Следующие примеры демонстрируют различные способы вывода списка всех узлов на сервере и последующего использования Perl для замены grantmc на gmc:
knife list 'nodes/*' | knife xargs "perl -i -pe 's/grantmc/gmc'"
или без кавычек и с экранированным обратным слешем:
knife list /nodes/\* | knife xargs "perl -i -pe 's/grantmc/gmc'"
или с использованием параметра --pattern:
knife xargs --pattern '/nodes.*' "perl -i -pe 's/grantmc/gmc'"
Просмотр данных групп безопасности
Следующий пример показывает, как отобразить содержимое всех групп на сервере:
knife xargs --pattern '/groups/*' cat
и вернёт что-то вроде:
{
"name": "4bd14db60aasdfb10f525400cdde21",
"users": [
"grantmc"
]
}{
"name": "62c4e268e15fasdasc525400cd944b",
"users": [
"robertf"
]
}{
"name": "admins",
"users": [
"grantmc",
"robertf"
]
}{
"name": "billing-admins",
"users": [
"dtek"
]
}{
"name": "clients",
"clients": [
"12345",
"67890",
]
}{
"name": "users",
"users": [
"grantmc"
"robertf"
"dtek"
],
"groups": [
"4bd14db60aasdfb10f525400cdde21",
"62c4e268e15fasdasc525400cd944b"
]
}
© 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_xargs/