Базовые команды (cmd)¶
Модуль carnival.cmd содержит базовые команды для взаимодействия с сервером. Его цель - оставаться простым и помогать в написании шагов (Step).
Для написания сложных сценариев предполагается использовать шаги(Step).
Основные шаги доступны в отдельном репозитории: <https://github.com/carnival-org/carnival-contrib>.
Cli¶
-
carnival.cmd.cli.
is_cmd_exist
(c: carnival.hosts.base.Connection, cmd_name: str) → bool¶ Проверить есть ли команда в $PATH
Параметры: - c – Конект с хостом
- command – Команда
-
carnival.cmd.cli.
run
(c: carnival.hosts.base.Connection, command: str, warn: bool = True, hide: bool = False, cwd: Optional[str] = None) → carnival.hosts.base.Result¶ Запустить команду
Параметры: - c – Конект с хостом
- command – Команда для запуска
- warn – Вывести stderr
- hide – Скрыть вывод команды
- cwd – Перейти в папку при выполнении команды
Filesystem¶
-
carnival.cmd.fs.
ensure_dir_exists
(c: carnival.hosts.base.Connection, path: str, user: Optional[str] = None, group: Optional[str] = None, mode: Optional[str] = None) → None¶ Проверить что директория существует и параметры соответствуют заданным
Параметры: - c – Конект с хостом
- path – путь до директории
- user – владелец
- group – группа
- mode – права
-
carnival.cmd.fs.
is_dir_exists
(c: carnival.hosts.base.Connection, dir_path: str) → bool¶ Узнать существует ли директория
Параметры: - c – Конект с хостом
- dir_path – путь до директории
-
carnival.cmd.fs.
is_file_contains
(c: carnival.hosts.base.Connection, filename: str, text: str, exact: bool = False, escape: bool = True) → bool¶ Содержит ли файл текст
Параметры: - c – Конект с хостом
- filename – путь до файла
- text – текст который нужно искать
- exact – точное совпадение
- escape – экранировать ли текст
-
carnival.cmd.fs.
is_file_exists
(c: carnival.hosts.base.Connection, path: str) → bool¶ Проверить существует ли файл
Параметры: - c – Конект с хостом
- path – путь до файла
-
carnival.cmd.fs.
mkdirs
(c: carnival.hosts.base.Connection, *dirs) → List[carnival.hosts.base.Result]¶ Создать директории
Параметры: - c – Конект с хостом
- dirs – пути которые нужно создать
System¶
-
carnival.cmd.system.
get_current_user_id
(c: carnival.hosts.base.Connection) → int¶ Получить id текущего пользователя
Параметры: c – Конект с хостом
-
carnival.cmd.system.
get_current_user_name
(c: carnival.hosts.base.Connection) → str¶ Получить имя текущего пользователя
Параметры: c – Конект с хостом
-
carnival.cmd.system.
is_current_user_root
(c: carnival.hosts.base.Connection) → bool¶ Проверить что текущий пользователь - root
Параметры: c – Конект с хостом
-
carnival.cmd.system.
set_password
(c: carnival.hosts.base.Connection, username: str, password: str) → carnival.hosts.base.Result¶ Установить пароль пользователю
Параметры: - c – Конект с хостом
- username – Пользователь
- password – Новый пароль
Transfer¶
-
carnival.cmd.transfer.
get
(c: carnival.hosts.base.Connection, remote: str, local: str, preserve_mode: bool = True) → None¶ Скачать файл с сервера <http://docs.fabfile.org/en/2.5/api/transfer.html#fabric.transfer.Transfer.get>
Параметры: - c – Конект с хостом
- remote – путь до файла на сервере
- local – путь куда сохранить файл
- preserve_mode – сохранить права
-
carnival.cmd.transfer.
put
(c: carnival.hosts.base.Connection, local: str, remote: str, preserve_mode: bool = True) → None¶ Закачать файл на сервер <http://docs.fabfile.org/en/2.5/api/transfer.html#fabric.transfer.Transfer.put>
Параметры: - c – Конект с хостом
- local – путь до локального файла
- remote – путь куда сохранить на сервере
- preserve_mode – сохранить права
-
carnival.cmd.transfer.
put_template
(c: carnival.hosts.base.Connection, template_path: str, remote: str, **context) → None¶ Отрендерить файл с помощью jinja-шаблонов и закачать на сервер См раздел templates.
<http://docs.fabfile.org/en/2.5/api/transfer.html#fabric.transfer.Transfer.put>
Параметры: - c – Конект с хостом
- template_path – путь до локального файла jinja
- remote – путь куда сохранить на сервере
- context – контекс для рендеринга jinja2
-
carnival.cmd.transfer.
rsync
(host: carnival.hosts.base.Host, source: str, target: str, rsync_opts: str = '--progress -pthrvz --timeout=60', ssh_opts: str = '', rsync_command: str = 'rsync', hide: bool = False) → carnival.hosts.base.Result¶ Залить папку с локального диска на сервер по rsync
Параметры: - host – сервер куда заливать
- source – локальный путь до папки
- target – путь куда нужно залить
- rsync_opts – параметры команды rsync
- ssh_opts – параметры ssh
- rsync_command – путь до rsync
- hide – скрыть результаты выполнения