ansible_tasks.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435
  1. from collections import namedtuple
  2. from ansible.parsing.dataloader import DataLoader
  3. from ansible.vars import VariableManager
  4. from ansible.inventory import Inventory
  5. from ansible.executor.playbook_executor import PlaybookExecutor
  6. from core.NeuronModule import NeuronModule
  7. class Ansible_tasks(NeuronModule):
  8. def __init__(self, task_file, **kwargs):
  9. super(Ansible_tasks, self).__init__(**kwargs)
  10. Options = namedtuple('Options',
  11. ['connection', 'forks', 'become', 'become_method', 'become_user', 'check', 'listhosts',
  12. 'listtasks', 'listtags', 'syntax', 'module_path'])
  13. variable_manager = VariableManager()
  14. loader = DataLoader()
  15. options = Options(connection='local', forks=100, become=None, become_method=None, become_user=None, check=False,
  16. listhosts=False, listtasks=False, listtags=False, syntax=False, module_path="")
  17. passwords = dict(vault_pass='secret')
  18. inventory = Inventory(loader=loader, variable_manager=variable_manager, host_list='localhost')
  19. variable_manager.set_inventory(inventory)
  20. playbooks = [task_file]
  21. executor = PlaybookExecutor(
  22. playbooks=playbooks,
  23. inventory=inventory,
  24. variable_manager=variable_manager,
  25. loader=loader,
  26. options=options,
  27. passwords=passwords)
  28. executor.run()