Задача (Task)

class carnival.TaskBase

Задача это единица выполнения одного или несколькоих шагов на определенных хостах.

Именование задач.

Полное имя задачи состоит из двух частей. <module_name>.<name>. carnival автоматически генерирует имена задач из этих частей, но есть возможность управлять этим вручную, используя два атрибута класса Task.

name: module_name:

>>> class CheckDiskSpace(TaskBase):
>>> help = "Print server root disk usage"
>>>
>>> def run(self, disk: str = "/") -> None:
>>>    with connection.SetConnection(my_server):
>>>        cmd.cli.run(f"df -h {disk}", hide=False)
call_task(task_class: Type[TaskBase]) → Any

Запустить другую задачу Возвращает результат работы задачи

help = ''

Строка помощи при вызове carnival help

module_name = None

имя модуля. если назначить пустую строку, полное имя будет включать только название задачи.

name = ''

название задачи. если не определено имя будет сгенерировано автоматически.

run() → None

Реализация выполнения задачи

validate() → List[str]

Хук для проверки валидности задачи перед запуском, не вызывается автоматически

Простые задачи

class carnival.StepsTask

Запустить шаги steps на хостах hosts

>>> class InstallPackages(StepsTask):
>>>    help = "Install packages"
>>>
>>>    hosts = [my_server]
>>>    steps = [InstallStep()]
extend_host_context(host: Union[carnival.host.LocalHost, carnival.host.SSHHost]) → Dict[str, Any]

Метод для переопределения контекста хоста

Параметры:host – хост на котором готовится запуск
hosts = None

Список хостов

run() → None

Реализация выполнения задачи

steps = None

Список шагов в порядке выполнения

validate() → List[str]

Хук для проверки валидности задачи перед запуском, проверяет примеримость контекста хостов на шагах

Встроенные задачи

carnival имеет встроенные задачи для удобства использования

class carnival.internal_tasks.Help

Показать список доступных задач

class carnival.internal_tasks.Validate

Запустить валидацию доступых задач и напечатать список ошибок