blob: 83cb19ff26bd7e566038685643ea91618852468b (
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
|
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)
|