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

host.LOCAL_ADDRS = ['local', 'localhost']
class carnival.Host(addr: str, ssh_user: str = None, ssh_password: str = None, ssh_port=22, ssh_gateway: Optional[Host] = None, ssh_connect_timeout: int = 10, **context)

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

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

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

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

>>> # inventory.py
>>> frontends = [
>>>     Host("1.2.3.4"),
>>>     Host("1.2.3.5"),
>>> ]
>>> # carnival_tasks.py
>>> import inventory as i
>>> class SetupFrontend(Task):
>>>    def run(self, **kwargs):
>>>        self.step(Frontend(), i.frontends)
__init__(addr: str, ssh_user: str = None, ssh_password: str = None, ssh_port=22, ssh_gateway: Optional[Host] = None, ssh_connect_timeout: int = 10, **context)

В простом случае, можно передавать хосты прямо в коде файла carnival_tasks.py.

Параметры:
  • addr – Адрес сервера
  • ssh_user – Пользователь SSH
  • ssh_password – Пароль SSH
  • ssh_port – SSH порт
  • ssh_connect_timeout – SSH таймаут соединения
  • ssh_gateway – Gateway
  • context – Контекст хоста
host

Remove user and port parts, return just address

is_connection_local() → bool

Check if host’s connection is local