ts7758258 发表于 2018-1-2 20:34:47

ansible-playbook api 2.0 运行项目

#!/bin/env python  
#
-*- coding:utf8 -*-  

  
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
  

  
loader = DataLoader()
  
variable_manager = VariableManager()
  
inventory = Inventory(loader=loader, variable_manager=variable_manager,host_list='hosts')
  
variable_manager.set_inventory(inventory)
  
passwords=None
  
Options = namedtuple('Options',
  
['connection',
  
'remote_user',
  
'ask_sudo_pass',
  
'verbosity',
  
'ack_pass',
  
'module_path',
  
'forks',
  
'become',
  
'become_method',
  
'become_user',
  
'check',
  
'listhosts',
  
'listtasks',
  
'listtags',
  
'syntax',
  
'sudo_user',
  
'sudo'])
  
options = Options(connection='smart',
  
remote_user='root',
  
ack_pass=None,
  
sudo_user='root',
  
forks=100,
  
sudo='yes',
  
ask_sudo_pass=False,
  
verbosity=5,
  
module_path=None,
  
become=True,
  
become_method='sudo',
  
become_user='root',
  
check=None,
  
listhosts=None,
  
listtasks=None,
  
listtags=None,
  
syntax=None)
  

  
# 多个yaml文件则以列表形式
  
playbook = PlaybookExecutor(playbooks=['test1.yaml'],inventory=inventory,
  
variable_manager=variable_manager,
  
loader=loader,options=options,passwords=passwords)
  
result = playbook.run()
  
print result
页: [1]
查看完整版本: ansible-playbook api 2.0 运行项目