From ff48243c6ee4954f97b5c1525da811c7298afcfb Mon Sep 17 00:00:00 2001 From: Anders Ingemann Date: Fri, 14 Jul 2017 18:26:52 +0200 Subject: [PATCH] ansible: Check for ansible availability before running --- bootstrapvz/plugins/ansible/__init__.py | 8 +++++--- bootstrapvz/plugins/ansible/tasks.py | 10 ++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/bootstrapvz/plugins/ansible/__init__.py b/bootstrapvz/plugins/ansible/__init__.py index aed5ff9..f260281 100644 --- a/bootstrapvz/plugins/ansible/__init__.py +++ b/bootstrapvz/plugins/ansible/__init__.py @@ -7,6 +7,8 @@ def validate_manifest(data, validator, error): def resolve_tasks(taskset, manifest): - taskset.add(tasks.AddPackages) - taskset.add(tasks.CheckPlaybookPath) - taskset.add(tasks.RunAnsiblePlaybook) + taskset.update([tasks.AddPackages, + tasks.AddRequiredCommands, + tasks.CheckPlaybookPath, + tasks.RunAnsiblePlaybook, + ]) diff --git a/bootstrapvz/plugins/ansible/tasks.py b/bootstrapvz/plugins/ansible/tasks.py index edc2bca..11973e5 100644 --- a/bootstrapvz/plugins/ansible/tasks.py +++ b/bootstrapvz/plugins/ansible/tasks.py @@ -1,9 +1,19 @@ from bootstrapvz.base import Task +from bootstrapvz.common.tasks import host from bootstrapvz.common import phases from bootstrapvz.common.tools import rel_path import os +class AddRequiredCommands(Task): + description = 'Adding commands required for provisioning with ansible' + phase = phases.validation + successors = [host.CheckExternalCommands] + + @classmethod + def run(cls, info): + info.host_dependencies['ansible'] = 'ansible' + class CheckPlaybookPath(Task): description = 'Checking whether the playbook path exist' phase = phases.validation