<p>我写这篇文章时没有看到你想要版本2。留下来,尽管这不是正确的答案。</p>
<p>这将在1.9中起作用。您可以修改createcluster()命令来调用它。</p>
<pre><code>def run_ansible():
vaultpass = "password"
inventory = ansible.inventory.Inventory("provisioning/inventory/hosts", vault_password=vaultpass)
stats = callbacks.AggregateStats()
playbook_cb = callbacks.PlaybookCallbacks(verbose=3)
pb = ansible.playbook.PlayBook(
playbook=playbook,
inventory=inventory,
extra_vars=parsed_extra_vars,
#private_key_file="/path/to/key.pem",
vault_password=vaultpass,
stats=stats,
callbacks=playbook_cb,
runner_callbacks=callbacks.PlaybookRunnerCallbacks(stats, verbose=3)
)
pb.run()
hosts = sorted(pb.stats.processed.keys())
failed_hosts = []
unreachable_hosts = []
for h in hosts:
t = pb.stats.summarize(h)
if t['failures'] > 0:
failed_hosts.append(h)
if t['unreachable'] > 0:
unreachable_hosts.append(h)
print("failed hosts: ", failed_hosts)
print("unreachable hosts: ", unreachable_hosts)
retries = failed_hosts + unreachable_hosts
print("retries:", retries)
if len(retries) > 0:
return 1
return 0
</code></pre>