ansible 2.0之后没有了run这个api,在网上找了很多官员2.0的API,发现调用的时候,返回结果居然只是0和1,无法获取想running一样的结果,经过研究,终于用下面的代码可以获取结果了,这个是我封装好的API。直接看代码
ansible_api.py
# coding=utf-80
#!/bin/env python
"""
@version: 1.0
@author: hogan
@project: CloudManage
@file: ansible_api.py
@time: 2016/7/5 11:16
"""
import os
import sys
import json
from collections import namedtuple
from ansible.parsing.dataloader import DataLoader
from ansible.vars import VariableManager
from ansible.inventory import Inventory
from ansible.executor.playbook_executor import PlaybookExecutor
from ansible.playbook.play import Play
from ansible import constants as C
from ansible.plugins.callback import CallbackBase
from ansible.executor.task_queue_manager import TaskQueueManager
def Playbook_Run(host, playbook_path):
variable_manager = VariableManager()
loader = DataLoader()
inventory = Inventory(loader=loader, variable_manager=variable_manager, host_list=host)
Options = namedtuple('Options', ['listtags', 'listtasks', 'listhosts', 'syntax', 'connection','module_path', 'forks', 'remote_user', 'private_key_file&#