Você pode dar uma olhada no execute () função. Você pode usá-lo para sobrescrever quais hosts você executa uma tarefa e passar argumentos extras.
Você provavelmente precisará de algo nos moldes de
def createVM():
newhostname = local('/usr/bin/createVM')
execute(bootstrap, hosts=[newhostname])
def bootstrap():
run('puppet agent -t')