I have installed ansible and ansible-runn I tried the following, just something simple
import ansible_runner r =ansible_runner.run(playbook="asg_elb_example.yml",private_data_dir="demo" ) However ansible-runner is complaining about: *pexpect.exceptions.ExceptionPexpect: The command was not found or was not executable: ansible-playbook.* I am not sure what the issue is since I can run ansible-playbook from the command line with no issues. On Friday, May 25, 2018 at 1:57:51 PM UTC-4, Matt Martz wrote: > > We do not recommend interfacing directly with the ansible playbook python > API. It is not a public interface and is not guaranteed to be stable. > > Instead, I'd recommend looking at the ansible-runner project, which > provides a python API for executing playbooks: > https://github.com/ansible/ansible-runner > > On Fri, May 25, 2018 at 11:56 AM, Richard O'Hara <[email protected] > <javascript:>> wrote: > >> I have a python application that calls the code below with the plan to >> run an Ansible playbook programmatically via the Ansible API versus using >> something like subprocess. >> >> The code below runs but nothing actually seems to get executed. Grabbing >> the output of results just gives me a dictionary that looks like: >> >> [{'plays': [localhost], 'playbook': 'playbooks/asg_elb_example.yml'}] >> >> >> >> I am not sure where I am going wrong or what I am missing. Here is the >> code I am running. >> >> import os >> import sys >> SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) >> ROOT_DIR = os.path.dirname(SCRIPT_DIR) >> >> >> import json >> from collections import namedtuple >> from ansible.parsing.dataloader import DataLoader >> from ansible.vars.manager import VariableManager >> from ansible.inventory.manager import InventoryManager >> from ansible.playbook.play import Play >> from ansible.executor.playbook_executor import PlaybookExecutor >> >> >> def ansible_part(): >> playbook_path = "playbooks/asg_elb_example.yml" >> inventory_path = "hosts" >> >> >> Options = namedtuple('Options', ['connection', 'module_path', 'forks' >> , 'become', 'become_method', 'become_user', 'check', 'diff', 'listhosts', >> 'listtasks', 'listtags', 'syntax']) >> loader = DataLoader() >> options = Options(connection='local', module_path='%s/' % (ROOT_DIR), >> forks=100, become=None, become_method=None, become_user=None, check=False >> , >> diff=False, listhosts=True, listtasks=False, listtags >> =False, syntax=False) >> passwords = dict(vault_pass='secret') >> >> >> inventory = InventoryManager(loader=loader, sources=[inventory_path]) >> variable_manager = VariableManager(loader=loader, inventory=inventory >> ) >> executor = PlaybookExecutor( >> playbooks=[playbook_path], inventory=inventory, >> variable_manager=variable_manager, loader=loader, >> options=options, passwords=passwords) >> results = executor.run() >> print results >> >> >> def main(): >> ansible_part() >> sys.exit(main()) >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ansible Project" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/ansible-project/809aebf4-79ae-4554-812e-2148d08aa806%40googlegroups.com >> >> <https://groups.google.com/d/msgid/ansible-project/809aebf4-79ae-4554-812e-2148d08aa806%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > Matt Martz > @sivel > sivel.net > -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/7657a1ee-8ea3-494c-8388-efb83dff66bb%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
