Оборудование (Host)

Объект, представляющий единицу оборудования.

Carnival не предоставляет никаких сложных абстракций для работы с группами хостов, подразумевая что вы будете использовать встроенные коллекции python и организуете работу так, как будет удобно для вашей задачи. В простом случае, можно передавать хосты прямо в коде файла carnival_tasks.py. В более сложных, создать списки в отдельном файле, например inventory.py

class carnival.hosts.base.Host(**context)

Базовый класс для хостов

addr = None

Адрес хоста

connect() → carnival.hosts.base.Connection

Создать конект с хостом

class carnival.hosts.base.Result(return_code: int, ok: bool, stdout: str, stderr: str)

Результат выполнения команды

Базовые типы

class carnival.hosts.base.Host

Базовый класс для хостов

addr = None

Адрес хоста

connect() → carnival.hosts.base.Connection

Создать конект с хостом

class carnival.hosts.base.Connection
host = None

Хост с которым связан конект

run(command: str, hide: bool = False, warn: bool = True, cwd: Optional[str] = None) → carnival.hosts.base.Result

Запустить команду

Параметры:
  • command – Команда для запуска
  • hide – Скрыть вывод команды
  • warn – Вывести stderr
  • cwd – Перейти в папку при выполнении команды

Локалхост

class carnival.hosts.local.LocalHost

Локальный хост, работает по локальному терминалу

__init__(**context) → None
Параметры:context – Контекст хоста
addr = 'local'

Адрес хоста, всегда local

connect() → carnival.hosts.local.LocalConnection

Создать конект с хостом

class carnival.hosts.local.LocalConnection
run(command: str, hide: bool = False, warn: bool = True, cwd: Optional[str] = None) → carnival.hosts.base.Result

Запустить команду

Параметры:
  • command – Команда для запуска
  • hide – Скрыть вывод команды
  • warn – Вывести stderr
  • cwd – Перейти в папку при выполнении команды

SSH

class carnival.hosts.ssh.SshHost

SSH хост

__init__(addr: str, ssh_user: Optional[str] = None, ssh_password: Optional[str] = None, ssh_port: int = 22, ssh_gateway: Optional[SshHost] = None, ssh_connect_timeout: int = 10, missing_host_key_policy: Type[<sphinx.ext.autodoc.importer._MockObject object at 0x7fd9798a3220>] = <sphinx.ext.autodoc.importer._MockObject object>, **context)
Параметры:
  • addr – Адрес сервера
  • ssh_user – Пользователь SSH
  • ssh_password – Пароль SSH
  • ssh_port – SSH порт
  • ssh_connect_timeout – SSH таймаут соединения
  • ssh_gateway – Gateway
  • context – Контекст хоста
addr = None

Домен либо ip хоста

connect() → carnival.hosts.ssh.SshConnection

Создать конект с хостом

class carnival.hosts.ssh.SshConnection
run(command: str, hide: bool = False, warn: bool = True, cwd: Optional[str] = None) → carnival.hosts.base.Result

Запустить команду

Параметры:
  • command – Команда для запуска
  • hide – Скрыть вывод команды
  • warn – Вывести stderr
  • cwd – Перейти в папку при выполнении команды