summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/ansible-runner/files/playbook_example1.py
blob: 550c1857cb9ec3aa4878abb522c067540f57c88e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type

import json
import os
import sys
import ansible_runner


PLAYBOOK = '''
- hosts: localhost
  gather_facts: False
  tasks:
    - set_fact:
        foo: bar
'''

# the first positional arg should be where the artifacts live
output_dir = sys.argv[1]

invdir = os.path.join(output_dir, 'inventory')
if not os.path.isdir(invdir):
    os.makedirs(invdir)
with open(os.path.join(invdir, 'hosts'), 'w') as f:
    f.write('localhost\n')
pbfile = os.path.join(output_dir, 'test.yml')
with open(pbfile, 'w') as f:
    f.write(PLAYBOOK)

r = ansible_runner.run(private_data_dir=output_dir, playbook='test.yml')

data = {
    'rc': r.rc,
    'status': r.status,
    'events': [x['event'] for x in r.events],
    'stats': r.stats
}

# insert this header for the flask controller
print('#STARTJSON')
json.dump(data, sys.stdout)