Parallelize WEBRUNNER node provisioning

All Linode creates fire simultaneously via async/poll:0 loop instead of
serial include_tasks. One shared root pass + SSH key generated before
the loop eliminates per-node credential races. async_status collects
all create confirmations before add_host. Play 2 runs with strategy:free
and -f 50 so all nodes configure, scan, and collect results concurrently.

Per-node serial provision file retired — logic is now inline.
This commit is contained in:
n0mad1k
2026-04-30 23:21:23 -04:00
parent e96bbab2b8
commit 4c60ba114d
3 changed files with 197 additions and 5 deletions
+4
View File
@@ -164,6 +164,10 @@ def execute_playbook(playbook, config):
'--extra-vars', create_extra_vars(config)
]
# Webrunner runs many nodes in parallel — increase fork count
if 'webrunner' in playbook:
cmd += ['-f', '50']
# Write sensitive vars to a temp file (0o600) so they reach Ansible as
# variables without appearing in process listings or the main extra-vars JSON.
# Read from environment (set by set_provider_environment) so this works even