Skip to content

Instantly share code, notes, and snippets.

@hari819
Forked from bcatubig/ansible multiprocessing
Created May 25, 2025 05:11
Show Gist options
  • Select an option

  • Save hari819/64016339282fd3bcd64c36a1ce850b63 to your computer and use it in GitHub Desktop.

Select an option

Save hari819/64016339282fd3bcd64c36a1ce850b63 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
import subprocess
import multiprocessing
from multiprocessing import Pool
import argparse
def execute_playbook(pb):
print("Now executing playbook: {}".format(pb))
p = subprocess.Popen("ansible-playbook -i localhost, -c local {}".format(pb), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = p.communicate()
return stdout, stderr
def main():
parser = argparse.ArgumentParser(description='Process ansible playbooks')
parser.add_argument('playbooks', metavar='PLAYBOOK', nargs='+',
help='The name of an Ansible playbook.')
args = parser.parse_args()
playbooks = args.playbooks
pool = Pool(len(playbooks))
print(len(playbooks))
print(pool.map(execute_playbook, playbooks))
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment