# Playbook into python

**URL:** <https://forum.ansible.com/t/playbook-into-python/26169>\
**Category:** Ansible Project\
**Created:** [November 29, 2017, 6:27pm UTC](https://forum.ansible.com/t/playbook-into-python/26169 "2017-11-29T18:27:07Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Fabio\_Santos](https://avatars.discourse-cdn.com/v4/letter/f/ee59a6/32.png) [@Fabio\_Santos](https://forum.ansible.com/u/Fabio_Santos)\
**Post date:** [November 29, 2017, 6:27pm UTC](https://forum.ansible.com/t/playbook-into-python/26169/1 "2017-11-29T18:27:07Z")

</div>

Hi all,

I’m newer in ansible, so I made some playbooks (working fine). But now I want to call these playbooks inside python script and record the output from ansible playbook in python variable. How can i do that?  
See thats playbook works:

[root@vmcaiosyscolprod01 playbooks]# ansible --version  
ansible 2.4.2.0  
config file = /etc/ansible/ansible.cfg  
configured module search path = [‘/root/.ansible/plugins/modules’, ‘/usr/share/ansible/plugins/modules’]  
ansible python module location = /usr/local/lib/python3.5/site-packages/ansible-2.4.2.0-py3.5.egg/ansible  
executable location = /usr/local/bin/ansible  
python version = 3.5.3 (default, Apr 17 2017, 12:33:06) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]  
[root@vmcaiosyscolprod01 playbooks]#

[root@vmcaiosyscolprod01 playbooks]# /usr/bin/ansible-playbook QOS\_S1.yml -i S1\_QOS\_inventory.yml

PLAY [GET STRUCTURED DATA BACK FROM CLI DEVICES] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

TASK [GET INTERFACES in S1 VRF] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [RJJAC77-RMP01]

TASK [debug] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [RJJAC77-RMP01] =\> {  
“result”: {  
“changed”: false,  
“failed”: false,  
“response”: [  
{  
“address”: “10.205.12.162”,  
“dead\_time”: “00:00:36”,  
“interface”: “GigabitEthernet0/24”,  
“neighbor\_id”: “10.205.12.132”,  
“priority”: “0”,  
“state”: “FULL/ -”  
},  
{  
“address”: “10.205.12.153”,  
“dead\_time”: “00:00:38”,  
“interface”: “Vlan171”,  
“neighbor\_id”: “10.205.12.130”,  
“priority”: “0”,  
“state”: “FULL/ -”  
}  
],  
“response\_list”:   
}  
}

PLAY RECAP \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
RJJAC77-RMP01 : ok=2 changed=0 unreachable=0 failed=0

[root@vmcaiosyscolprod01 playbooks]#

In Internet I found some directions see;

from ansible.playbook import Playbook  
from ansible import inventory  
from ansible.plugins import callback  
from ansible import utils  
import jinja2  
from tempfile import NamedTemporaryFile  
import os

#callbacks for stdout/stderr and log output  
utils.VERBOSITY = 0  
playbook\_cb = callback.PlaybookCallbacks(verbose=utils.VERBOSITY)  
stats = callbacks.AggregateStats()  
runner\_cb = callbacks.PlaybookRunnerCallbacks(stats, verbose=utils.VERBOSITY)

pb = PlayBook(  
playbook=‘/usr/local/caiosys/ansible/playbooks/QOS\_S1.yml’,  
host\_list=‘/usr/local/caiosys/ansible/playbooks/S1\_QOS\_inventory.yml’,  
become=True,  
callbacks=playbook\_cb,  
runner\_callbacks=runner\_cb,  
stats=stats,  
)

results = pb.run()

# Ensure on\_stats callback is called for callback modules

playbook\_cb.on\_stats(pb.stats)

print results

But I fount some isues see:

[root@vmcaiosyscolprod01 playbooks]# python3  
Python 3.5.3 (default, Apr 17 2017, 12:33:06)  
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux  
Type “help”, “copyright”, “credits” or “license” for more information.

> > > from ansible.playbook import Playbook  
> > > from ansible import inventory  
> > > from ansible.plugins import callback  
> > > from ansible import utils  
> > > import jinja2  
> > > from tempfile import NamedTemporaryFile  
> > > import os  
> > > utils.VERBOSITY = 0  
> > > playbook\_cb = callback.PlaybookCallbacks(verbose=utils.VERBOSITY)  
> > > Traceback (most recent call last):  
> > > File “”, line 1, in   
> > > AttributeError: module ‘ansible.plugins.callback’ has no attribute ‘PlaybookCallbacks’

Where is PlaybookCallbacks???

Thanks  
Fábio
