Понимание ткани

Я только что наткнулся на Fabric, и документация на самом деле не делает очевидным, как это работает.

Моя образованная догадка заключается в том, что вам необходимо установить ее как на стороне клиента, так и на стороне сервера. Код Python хранится на стороне клиента и передается через проводной протокол Fabric при выполнении команды. Сервер принимает соединения с использованием демона SSSS OpenSSH через файл ~/.ssh/authorized_keys для текущего пользователя (или специального пользователя или указанного в имени узла для команды fab).

Правильно ли это? Если нет, как это работает?

Ответы

Ответ 1

Из документов:

Fabric - это библиотека Python (2.5 или выше) и средство командной строки для оптимизации использования SSH для задач развертывания приложений или системного администрирования.

Он предоставляет базовый набор операций для выполнения локальных или удаленных команд оболочки (обычно или через sudo) и загрузки/загрузки файлов, а также вспомогательных функций, таких как запрос текущего пользователя для ввода или прерывание выполнения.

Итак, это просто как ssh'ing в поле и запуск команд, которые вы ввели в run()/sudo().

Передача кода отсутствует, поэтому вам нужно всего лишь запустить ssh на удаленном компьютере и иметь какую-то оболочку (по умолчанию предполагается bash).

Если вам нужен удаленный доступ к интерпретатору python, вы больше смотрите на что-то вроде execnet,

Если вам нужна дополнительная информация о том, как работа на удаленной машине (-ах) работает с в этом разделе документов.

Ответ 2

Большинство, что вы говорите, являются правильными, за исключением того, что файл "fabfile.py" должен храниться только на вашем клиенте. На вашем сервере должен быть установлен SSH-сервер, такой как OpenSSH, и на вашем клиенте должен быть установлен клиент SSH.

Затем Fabric регистрируется на одном или нескольких серверах по очереди и выполняет команды оболочки, определенные в "fabfile.py" . Если вы находитесь в том же каталоге, что и "fabfile.py" , вы можете перейти к "fab -list", чтобы просмотреть список доступных команд, а затем "fab [COMMAND_NAME]", чтобы выполнить команду.

Пользователь на сервере не нужно добавлять в "~/.ssh/authorized_keys", но если вам не нужно вводить пароль каждый раз, когда вы хотите выполнить команду.