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

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

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

>>> class SetupFrontend(Task):
>>>    def run(self, **kwargs):
>>>        self.step(Frontend(), SSHHost("1.2.3.4", packages=["htop", ]))

В более сложных, создать списки в файле inventory.py

>>> # inventory.py
>>> frontends = [
>>>     LocalHost(),
>>>     SSHHost("1.2.3.5"),
>>> ]
>>> # carnival_tasks.py
>>> import inventory as i
>>> class SetupFrontend(Task):
>>>    def run(self, **kwargs):
>>>        self.step(Frontend(), i.frontends)
carnival.host.AnyConnection = typing.Union[<sphinx.ext.autodoc.importer._MockObject object>, <sphinx.ext.autodoc.importer._MockObject object>]

Список адресов которые трактуются как локальное соединение .. deprecated:: 1.4

Host is deprecated, use LocalHost or SSHHost explicitly
class carnival.host.Host(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: <sphinx.ext.autodoc.importer._MockObject object at 0x7fd62b8be640> = <sphinx.ext.autodoc.importer._MockObject object>, **context)
Параметры:
  • addr – Адрес сервера для SSH или «local» для локального соединения
  • ssh_user – Пользователь SSH
  • ssh_password – Пароль SSH
  • ssh_port – SSH порт
  • ssh_connect_timeout – SSH таймаут соединения
  • ssh_gateway – Gateway
  • context – Контекст хоста

Не рекомендуется, начиная с версии 1.4: Host is deprecated, use LocalHost or SSHHost explicitly

class carnival.host.LocalHost(**context)

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

host

Remove user and port parts, return just address

class carnival.host.SSHHost(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: <sphinx.ext.autodoc.importer._MockObject object at 0x7fd62b8be640> = <sphinx.ext.autodoc.importer._MockObject object>, **context)

Удаленный хост, работает по SSH

is_connection_local() → bool

Check if host’s connection is local

host.LOCAL_ADDRS = ['local', 'localhost']
class carnival.host.Host(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: <sphinx.ext.autodoc.importer._MockObject object at 0x7fd62b8be640> = <sphinx.ext.autodoc.importer._MockObject object>, **context)
Параметры:
  • addr – Адрес сервера для SSH или «local» для локального соединения
  • ssh_user – Пользователь SSH
  • ssh_password – Пароль SSH
  • ssh_port – SSH порт
  • ssh_connect_timeout – SSH таймаут соединения
  • ssh_gateway – Gateway
  • context – Контекст хоста

Не рекомендуется, начиная с версии 1.4: Host is deprecated, use LocalHost or SSHHost explicitly

__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: <sphinx.ext.autodoc.importer._MockObject object at 0x7fd62b8be640> = <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 – Контекст хоста
class carnival.host.SSHHost(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: <sphinx.ext.autodoc.importer._MockObject object at 0x7fd62b8be640> = <sphinx.ext.autodoc.importer._MockObject object>, **context)

Удаленный хост, работает по 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: <sphinx.ext.autodoc.importer._MockObject object at 0x7fd62b8be640> = <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 – Контекст хоста
is_connection_local() → bool

Check if host’s connection is local

class carnival.host.LocalHost(**context)

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

__init__(**context) → None

Initialize self. See help(type(self)) for accurate signature.

host

Remove user and port parts, return just address