Spec-Zone.ru › Chef 16

knife ssh

[edit on GitHub]

Используйте подкоманду knife ssh для вызова команд SSH (параллельно) для подмножества узлов в организации на основе результатов запроса поиска, выполненного на Chef Infra Server.

Синтаксис

Эта подкоманда имеет следующий синтаксис:

knife ssh SEARCH_QUERY SSH_COMMAND (options)

Параметры

Примечание

Ознакомьтесь со списком общих параметров, доступных для этой (и всех) подкоманд и плагинов knife.

Эта подкоманда имеет следующие параметры:

-a SSH_ATTR, --attribute SSH_ATTR

Атрибут, используемый при открытии подключения SSH. По умолчанию используется FQDN хоста. Другие возможные значения включают общедоступный IP-адрес, частный IP-адрес или имя хоста.

-A, --forward-agent

Включить перенаправление агента SSH.

-C NUM, --concurrency NUM

Количество разрешенных одновременных подключений.

-e, --exit-on-error

Выйти немедленно при ошибке.

-G GATEWAY, --ssh-gateway GATEWAY

SSH туннель или шлюз, используемый для выполнения действия bootstrap на машине, недоступной из рабочей станции.

--ssh-gateway-identity SSH_GATEWAY_IDENTITY

Файл идентификатора SSH, используемый для подключения к SSH шлюзу.

Новое в Chef Client 13.0.

-i IDENTITY_FILE, --ssh-identity-file IDENTIFY_FILE

Файл идентификатора SSH, используемый для аутентификации. Рекомендуется аутентификация на основе ключей.

-m, --manual-list

Определите запрос поиска как список серверов, разделенных пробелами. Если в списке более одного элемента, заключите весь список в кавычки. Например: --manual-list "server01 server02 server03"

--[no-]host-key-verify

Используйте --no-host-key-verify для отключения проверки ключа хоста. Значение по умолчанию: --host-key-verify.

OTHER

Тип оболочки. Возможные значения: interactive, screen, tmux, macterm, или cssh. (csshx устарел в пользу cssh.)

-p PORT, --ssh-port PORT

Порт SSH.

-P PASSWORD, --ssh-password PASSWORD

Пароль SSH. Можно использовать для передачи пароля непосредственно в командной строке. Если этот параметр не указан (и требуется пароль), knife запрашивает пароль.

SEARCH_QUERY

Запрос поиска, используемый для возврата списка серверов, которые будут обработаны с помощью SSH и указанного SSH_COMMAND. Этот параметр использует тот же синтаксис, что и подкоманда поиска. Если в SEARCH_QUERY нет символа двоеточия (:), то шаблоном запроса по умолчанию является tags:*#{@query}* OR roles:*#{@query}* OR fqdn:*#{@query}* OR addresses:*#{@query}*, что означает, что следующие два запроса поиска фактически одинаковы:

knife search ubuntu

или:

knife search node "tags:*ubuntu* OR roles:*ubuntu* OR fqdn:*ubuntu* (etc.)"
SSH_COMMAND

Команда, которая должна быть выполнена по результатам запроса поиска.

-t SECONDS, --ssh-timeout SECONDS

Время ожидания (в секундах) для таймаута подключения SSH.

--tmux-split

Разделить окно Tmux. Значение по умолчанию: false.

-x USER_NAME, --ssh-user USER_NAME

Имя пользователя SSH.

Примечание

См. config.rb для получения дополнительной информации о добавлении определенных параметров knife в качестве параметров в файле config.rb.

Примеры

Следующие примеры показывают, как использовать эту подкоманду knife:

Определение времени работы сервера

Чтобы определить время работы всех веб-серверов, работающих под Ubuntu на платформе Amazon EC2, введите:

knife ssh "role:web" "uptime" -x ubuntu -a ec2.public_hostname

для возврата чего-то вроде:

ec2-174-129-127-206.compute-1.amazonaws.com  13:50:47 up 1 day, 23:26,  1 user,  load average: 0.25, 0.18, 0.11
ec2-67-202-63-102.compute-1.amazonaws.com    13:50:47 up 1 day, 23:33,  1 user,  load average: 0.12, 0.13, 0.10
ec2-184-73-9-250.compute-1.amazonaws.com     13:50:48 up 16:45,  1 user,  load average: 0.30, 0.22, 0.13
ec2-75-101-240-230.compute-1.amazonaws.com   13:50:48 up 1 day, 22:59,  1 user,  load average: 0.24, 0.17, 0.11
ec2-184-73-60-141.compute-1.amazonaws.com    13:50:48 up 1 day, 23:30,  1 user,  load average: 0.32, 0.17, 0.15

Запуск Chef Infra Client на всех узлах

knife ssh 'name:*' 'sudo chef-client'

Принудительный запуск Chef Infra Client

Чтобы принудительно запустить Chef Infra Client на всех веб-серверах, работающих под Ubuntu на платформе Amazon EC2, введите:

knife ssh "role:web" "sudo chef-client" -x ubuntu -a ec2.public_hostname

для возврата чего-то вроде:

ec2-67-202-63-102.compute-1.amazonaws.com   [Fri, 22 Oct 2010 14:18:37 +0000] INFO: Starting Chef Run (Version 0.9.10)
ec2-174-129-127-206.compute-1.amazonaws.com [Fri, 22 Oct 2010 14:18:37 +0000] INFO: Starting Chef Run (Version 0.9.10)
ec2-184-73-9-250.compute-1.amazonaws.com    [Fri, 22 Oct 2010 14:18:38 +0000] INFO: Starting Chef Run (Version 0.9.10)
ec2-75-101-240-230.compute-1.amazonaws.com  [Fri, 22 Oct 2010 14:18:38 +0000] INFO: Starting Chef Run (Version 0.9.10)
ec2-184-73-60-141.compute-1.amazonaws.com   [Fri, 22 Oct 2010 14:18:38 +0000] INFO: Starting Chef Run (Version 0.9.10)
ec2-174-129-127-206.compute-1.amazonaws.com [Fri, 22 Oct 2010 14:18:39 +0000] INFO: Chef Run complete in 1.419243 seconds
ec2-174-129-127-206.compute-1.amazonaws.com [Fri, 22 Oct 2010 14:18:39 +0000] INFO: cleaning the checksum cache
ec2-174-129-127-206.compute-1.amazonaws.com [Fri, 22 Oct 2010 14:18:39 +0000] INFO: Running report handlers
ec2-174-129-127-206.compute-1.amazonaws.com [Fri, 22 Oct 2010 14:18:39 +0000] INFO: Report handlers complete
ec2-67-202-63-102.compute-1.amazonaws.com   [Fri, 22 Oct 2010 14:18:39 +0000] INFO: Chef Run complete in 1.578265 seconds
ec2-67-202-63-102.compute-1.amazonaws.com   [Fri, 22 Oct 2010 14:18:39 +0000] INFO: cleaning the checksum cache
ec2-67-202-63-102.compute-1.amazonaws.com   [Fri, 22 Oct 2010 14:18:39 +0000] INFO: Running report handlers
ec2-67-202-63-102.compute-1.amazonaws.com   [Fri, 22 Oct 2010 14:18:39 +0000] INFO: Report handlers complete
ec2-184-73-9-250.compute-1.amazonaws.com    [Fri, 22 Oct 2010 14:18:40 +0000] INFO: Chef Run complete in 1.638884 seconds
ec2-184-73-9-250.compute-1.amazonaws.com    [Fri, 22 Oct 2010 14:18:40 +0000] INFO: cleaning the checksum cache
ec2-184-73-9-250.compute-1.amazonaws.com    [Fri, 22 Oct 2010 14:18:40 +0000] INFO: Running report handlers
ec2-184-73-9-250.compute-1.amazonaws.com    [Fri, 22 Oct 2010 14:18:40 +0000] INFO: Report handlers complete
ec2-75-101-240-230.compute-1.amazonaws.com  [Fri, 22 Oct 2010 14:18:40 +0000] INFO: Chef Run complete in 1.540257 seconds
ec2-75-101-240-230.compute-1.amazonaws.com  [Fri, 22 Oct 2010 14:18:40 +0000] INFO: cleaning the checksum cache
ec2-75-101-240-230.compute-1.amazonaws.com  [Fri, 22 Oct 2010 14:18:40 +0000] INFO: Running report handlers
ec2-75-101-240-230.compute-1.amazonaws.com  [Fri, 22 Oct 2010 14:18:40 +0000] INFO: Report handlers complete
ec2-184-73-60-141.compute-1.amazonaws.com   [Fri, 22 Oct 2010 14:18:40 +0000] INFO: Chef Run complete in 1.502489 seconds
ec2-184-73-60-141.compute-1.amazonaws.com   [Fri, 22 Oct 2010 14:18:40 +0000] INFO: cleaning the checksum cache
ec2-184-73-60-141.compute-1.amazonaws.com   [Fri, 22 Oct 2010 14:18:40 +0000] INFO: Running report handlers
ec2-184-73-60-141.compute-1.amazonaws.com   [Fri, 22 Oct 2010 14:18:40 +0000] INFO: Report handlers complete

Выполнение команды на основе запроса поиска

Чтобы запросить все узлы, имеющие роль webserver, а затем использовать SSH для выполнения команды sudo chef-client, введите:

knife ssh "role:webserver" "sudo chef-client"

Обновление всех узлов

knife ssh name:* "sudo aptitude upgrade -y"

Указание типа оболочки

Чтобы указать тип оболочки, используемый на узлах, возвращаемых запросом поиска:

knife ssh roles:opscode-omnitruck macterm

где screen имеет одно из следующих значений: cssh, interactive, macterm, screen, или tmux. Если на узле не установлен тип оболочки, knife вернет ошибку, подобную следующей:

you need the rb-appscript gem to use knife ssh macterm.
`(sudo) gem    install rb-appscript` to install
ERROR: LoadError: cannot load such file -- appscript

© 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_ssh/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API