{"id":14110522,"url":"https://github.com/kriansa/ansible-bundler","last_synced_at":"2025-07-14T13:03:54.868Z","repository":{"id":60720866,"uuid":"203009939","full_name":"kriansa/ansible-bundler","owner":"kriansa","description":"Turn Ansible playbooks into executable files","archived":false,"fork":false,"pushed_at":"2023-04-30T20:33:21.000Z","size":51,"stargazers_count":166,"open_issues_count":6,"forks_count":22,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-02T06:35:41.479Z","etag":null,"topics":["ansible","ansible-playbook-bundles"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kriansa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-08-18T13:49:48.000Z","updated_at":"2025-03-09T10:49:39.000Z","dependencies_parsed_at":"2024-01-08T07:59:20.545Z","dependency_job_id":"47038332-1e42-43d1-a4e1-9f6a65fbccea","html_url":"https://github.com/kriansa/ansible-bundler","commit_stats":{"total_commits":35,"total_committers":1,"mean_commits":35.0,"dds":0.0,"last_synced_commit":"3550e96dc13e8343d63d53380c2e56ad06080e61"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/kriansa/ansible-bundler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kriansa%2Fansible-bundler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kriansa%2Fansible-bundler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kriansa%2Fansible-bundler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kriansa%2Fansible-bundler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kriansa","download_url":"https://codeload.github.com/kriansa/ansible-bundler/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kriansa%2Fansible-bundler/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265297034,"owners_count":23742585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","ansible-playbook-bundles"],"created_at":"2024-08-14T10:02:53.112Z","updated_at":"2025-07-14T13:03:54.799Z","avatar_url":"https://github.com/kriansa.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# :package: Ansible Bundler\n\nAnsible Bundler embeds together a full playbook and its dependencies so you can run it it from a\nsingle binary on _any*_ computer, having just Python as a host dependency - you don't even need\nAnsible! Think of it as [`makeself`](https://makeself.io/) for Ansible playbooks.\n\nThe closest that Ansible provides natively for this is `ansible-pull`, but it requires the host to\nhave Ansible properly installed, and you need to manage the playbook location yourself.\n\nWhile playbooks were never meant to be used as standalone packages, Ansible offers tools to help on\nmore complex deployments, such as [Tower](https://www.ansible.com/products/tower) and\n[AWX](https://github.com/ansible/awx) _(Tower's open-source upstream project)_.\n\n\u003csub\u003e* Well, we currently only support Unix based OSes.\u003c/sub\u003e\n\n## Use case\n\nAnsible is awesome. It's so powerful and flexible that we can use from server provisioning to\nautomating mundane tasks such as bootstraping [your own](https://github.com/kriansa/dotfiles)\ncomputer. \n\nOne thing that it lacks though is the ability to be used for simple auto scaling deployments where\nyou just want to pull a playbook and run it easily. Currently, you need to setup Ansible, ensure you\nhave a repository to download the files, manage the right permissions to it and then run\n`ansible-pull`. This can get harder when you have more complex playbooks with several dependencies.\n\nAnsible Bundler makes these steps easier by having a single binary that takes care of setting up\nAnsible on the host and executing the playbook without having to do anything globally (such as\ninstalling ansible). You can simply pull the playbook binary and execute it right away.\n\n## Usage\n\n##### Generate a new self-contained playbook:\n\n```shell\n$ bundle-playbook -f playbook.yml\n```\n\n##### Run it on the host:\n\n```shell\n$ ./playbook.run\n```\n\n\u003e You will need Python on the host in order to run the final executable. :+1:\n\n##### Advanced build\n\n```shell\n$ bundle-playbook --playbook-file=playbook.yml \\\n  --requirements-file=requirements.yml \\\n  --vars-file=vars.yml \\\n  --ansible-version=2.8.0 \\\n  --python-package=boto3 \\\n  --extra-deps=files\n```\n\n\u003e By default, all files on `roles` folder in the same path as the playbook.yml are automatically\n\u003e included. If you need more dependent files, you can specify them using `--extra-deps` (short\n\u003e `-d`).\n\nRun `bundle-playbook --help` to get a list of all possible parameters.\n\n#### Binary interface\n\nThe built playbook binary has a few options that you can use at runtime. Here are the options you\ncan currently use:\n\n```\n--help            Show this help message and exit\n--debug           Run the packaged bundler with verbose logging\n--keep-temp       Keep extracted files into the tempfolder after finishing. This is \n                  useful for debugging purposes\n-e \u003cEXTRA_VARS\u003e, --extra-vars=\u003cEXTRA_VARS\u003e\n                  Set additional variables as key=value or YAML/JSON, or a filename if\n                  prepended with @. You can pass this parameter multiple times. This will\n                  take precedence on the variables that have been previously defined on\n                  the packaged playbook.\n```\n\n## Installation\n\nCurrently you can download and install it using the pre-built packages that are available in RPM and\nDEB formats on [Github releases](https://github.com/kriansa/ansible-bundler/releases). They should\nwork on most RHEL-based distros (CentOS, Fedora, Amazon Linux, etc) as well as on Debian-based\ndistros (Ubuntu, Mint, etc). There's also a [AUR\navailable](https://aur.archlinux.org/packages/ansible-bundler/) if you're using Arch.\n\nIf your distro is not compatible with the prebuilt packages, please refer to [Building](#building)\nbelow.\n\n## Building\n\nYou will need Docker installed on your machine. When you have it installed, you can proceed\ninstalling the dependencies with:\n\n```shell\n$ make deps\n```\n\nThis is only required once. After that you're good to go. You can currently build the package in a\ndirectory structure that you can later copy to your root filesystem. This is very useful as a base\nfor building OS packages for most package managers such as RPM or DEB.\n\n```shell\n$ make\n```\n\n\u003e The output will be at `build/pkg`\n\nIn fact, we offer support for building `deb` and `rpm` artifacts out of the box:\n\n```shell\n$ make deb rpm\n```\n\n\u003e The output will be at `build/dist`\n\n## Contributing\n\nPull requests are welcome. For major changes, please open an issue first to discuss what you would\nlike to change.\n\nPlease make sure to update tests as appropriate. For more information, please refer to\n[Contributing](CONTRIBUTING.md).\n\n## License\n\nThis project is licensed under the BSD 3-Clause License - see the [LICENSE.md](LICENSE.md) file for\ndetails.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkriansa%2Fansible-bundler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkriansa%2Fansible-bundler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkriansa%2Fansible-bundler/lists"}