commit 949158f81d380fef8e077dcf335f4c17dea65719
Author: Asher Morgan <asher@ashermorgan.net>
Date: Fri, 14 Aug 2026 18:31:34 -0700
Add basic flask app that calls ansible-runner
Diffstat:
4 files changed, 43 insertions(+), 0 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -0,0 +1,3 @@
+.venv
+private
+!private/.gitkeep
diff --git a/demo/playbook.yml b/demo/playbook.yml
@@ -0,0 +1,4 @@
+- name: My play
+ hosts: localhost
+ tasks:
+ - ping:
diff --git a/main.py b/main.py
@@ -0,0 +1,34 @@
+import os
+
+import ansible_runner
+from flask import Flask, abort, redirect, session
+
+
+DATA = {}
+PLAYBOOK = os.path.abspath('./demo/playbook.yml') # TODO
+
+app = Flask(__name__)
+app.secret_key = b'_5#y2L"F4Q8z\n\xec]/' # TODO
+
+
+@app.route('/runners/new')
+def job_new():
+ _, r = ansible_runner.run_async(private_data_dir='private',
+ playbook=PLAYBOOK)
+ id = r.config.ident
+ DATA[id] = r
+ session['runner'] = id
+
+ return redirect(f'/runners/{id}')
+
+
+@app.route('/runners/<id>')
+def job_status(id):
+ if id != session.get('runner'):
+ abort(401)
+
+ return DATA[id].status
+
+
+if __name__ == '__main__':
+ app.run(debug=True)
diff --git a/requirements.txt b/requirements.txt
@@ -0,0 +1,2 @@
+ansible_runner
+flask