# ansible-bender
[![PyPI version](https://badge.fury.io/py/ansible-bender.svg)](https://badge.fury.io/py/ansible-bender)
![GitHub Release Date](https://img.shields.io/github/release-date/ansible-community/ansible-bender?label=Latest%20release)
![PyPI - Status](https://img.shields.io/pypi/status/ansible-bender)
![GitHub](https://img.shields.io/github/license/ansible-community/ansible-bender)
![PyPI - Downloads](https://img.shields.io/pypi/dm/ansible-bender)
This tool bends containers using
[Ansible](https://github.com/ansible/ansible)
[playbooks](https://docs.ansible.com/ansible/latest/user_guide/playbooks.html)
and turns them into container images. It has a pluggable builder selection —
it is up to you to pick the tool which will be used to construct your container
image. Right now the only supported builder is
[buildah](https://github.com/containers/buildah).
[More](http://github.com/ansible-community/ansible-bender/issues/25) [to
come](http://github.com/ansible-community/ansible-bender/issues/26) in the future.
Ansible-bender (ab) relies on [Ansible connection
plugins](https://docs.ansible.com/ansible/latest/plugins/connection.html) for
performing builds.
tl;dr Ansible is the frontend, buildah is the backend.
The concept is described in following blog posts:
* [Building containers with buildah and ansible](https://blog.tomecek.net/post/building-containers-with-buildah-and-ansible/).
* [Ansible and Podman Can Play Together Now](https://blog.tomecek.net/post/ansible-and-podman-can-play-together-now/).
## Looking for maintainers ❤
[This project doesn't have an active maintainer right now that](https://github.com/ansible-community/ansible-bender/issues/282) would watch issues daily.
If you are a user of ansible-bender and are familiar with Python, please consider becoming a maintainer.
## Features
* You can build your container images with buildah as a backend.
* Ansible playbook is your build recipe.
* You are able to set various image metadata via CLI or as specific Ansible vars:
* working directory
* environment variables
* labels
* user
* default command
* exposed ports
* You can do volume mounts during build.
* Caching mechanism:
* Every task result is cached as a container image layer.
* You can turn this off with `--no-cache`.
* You can disable caching from a certain point by adding a tag `no-cache` to a task.
* You can stop creating new image layers by adding tag `stop-layering` to a task.
* If an image build fails, it's committed and named with a suffix `-[TIMESTAMP]-failed` (so
you can take a look inside and resolve the issue).
* The tool tries to find python interpreter inside the base image.
* You can push images you built to remote locations such as:
* a registry, a tarball, docker daemon, ...
* [podman push](https://github.com/containers/podman/blob/main/docs/source/markdown/podman-push.1.md) is used to perform the push.
## Documentation
You can read more about this project in the documentation:
* [Documentation home](https://ansible-community.github.io/ansible-bender/build/html/index.html)
* [Interface](https://ansible-community.github.io/ansible-bender/build/html/interface.html)
* [Installation](https://ansible-community.github.io/ansible-bender/build/html/installation.html)
* [Configuration](https://ansible-community.github.io/ansible-bender/build/html/configuration.html)
* [Usage](https://ansible-community.github.io/ansible-bender/build/html/usage.html)
* [Caching and Layering mechanism](https://ansible-community.github.io/ansible-bender/build/html/cacheandlayer.html)
* [Contribution guide](https://ansible-community.github.io/ansible-bender/build/html/contributing.html)
* [Ansible-bender in OKD](https://ansible-community.github.io/ansible-bender/build/html/okd.html)
Raw data
{
"_id": null,
"home_page": "https://github.com/ansible-community/ansible-bender",
"name": "ansible-bender",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "ansible,containers,linux,buildah",
"author": "Tomas Tomecek",
"author_email": "tomas@tomecek.net",
"download_url": "https://files.pythonhosted.org/packages/19/d5/21a2f32d2fcd76dd2064b697b5fc40ab4a2b3cd1cf3128e23be6fe09c776/ansible-bender-0.10.1.tar.gz",
"platform": null,
"description": "# ansible-bender\n[![PyPI version](https://badge.fury.io/py/ansible-bender.svg)](https://badge.fury.io/py/ansible-bender)\n![GitHub Release Date](https://img.shields.io/github/release-date/ansible-community/ansible-bender?label=Latest%20release)\n![PyPI - Status](https://img.shields.io/pypi/status/ansible-bender)\n![GitHub](https://img.shields.io/github/license/ansible-community/ansible-bender)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/ansible-bender)\n\nThis tool bends containers using\n[Ansible](https://github.com/ansible/ansible)\n[playbooks](https://docs.ansible.com/ansible/latest/user_guide/playbooks.html)\nand turns them into container images. It has a pluggable builder selection \u2014\nit is up to you to pick the tool which will be used to construct your container\nimage. Right now the only supported builder is\n[buildah](https://github.com/containers/buildah).\n[More](http://github.com/ansible-community/ansible-bender/issues/25) [to\ncome](http://github.com/ansible-community/ansible-bender/issues/26) in the future.\nAnsible-bender (ab) relies on [Ansible connection\nplugins](https://docs.ansible.com/ansible/latest/plugins/connection.html) for\nperforming builds.\n\ntl;dr Ansible is the frontend, buildah is the backend.\n\nThe concept is described in following blog posts:\n* [Building containers with buildah and ansible](https://blog.tomecek.net/post/building-containers-with-buildah-and-ansible/).\n* [Ansible and Podman Can Play Together Now](https://blog.tomecek.net/post/ansible-and-podman-can-play-together-now/).\n\n\n## Looking for maintainers \u2764\n\n[This project doesn't have an active maintainer right now that](https://github.com/ansible-community/ansible-bender/issues/282) would watch issues daily.\n\nIf you are a user of ansible-bender and are familiar with Python, please consider becoming a maintainer.\n\n\n## Features\n\n* You can build your container images with buildah as a backend.\n* Ansible playbook is your build recipe.\n* You are able to set various image metadata via CLI or as specific Ansible vars:\n * working directory\n * environment variables\n * labels\n * user\n * default command\n * exposed ports\n* You can do volume mounts during build.\n* Caching mechanism:\n * Every task result is cached as a container image layer.\n * You can turn this off with `--no-cache`.\n * You can disable caching from a certain point by adding a tag `no-cache` to a task.\n* You can stop creating new image layers by adding tag `stop-layering` to a task.\n* If an image build fails, it's committed and named with a suffix `-[TIMESTAMP]-failed` (so\n you can take a look inside and resolve the issue).\n* The tool tries to find python interpreter inside the base image.\n* You can push images you built to remote locations such as:\n * a registry, a tarball, docker daemon, ...\n * [podman push](https://github.com/containers/podman/blob/main/docs/source/markdown/podman-push.1.md) is used to perform the push.\n\n\n## Documentation\n\nYou can read more about this project in the documentation:\n* [Documentation home](https://ansible-community.github.io/ansible-bender/build/html/index.html)\n* [Interface](https://ansible-community.github.io/ansible-bender/build/html/interface.html)\n* [Installation](https://ansible-community.github.io/ansible-bender/build/html/installation.html)\n* [Configuration](https://ansible-community.github.io/ansible-bender/build/html/configuration.html)\n* [Usage](https://ansible-community.github.io/ansible-bender/build/html/usage.html)\n* [Caching and Layering mechanism](https://ansible-community.github.io/ansible-bender/build/html/cacheandlayer.html)\n* [Contribution guide](https://ansible-community.github.io/ansible-bender/build/html/contributing.html)\n* [Ansible-bender in OKD](https://ansible-community.github.io/ansible-bender/build/html/okd.html)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A tool which builds container images using Ansible playbooks",
"version": "0.10.1",
"split_keywords": [
"ansible",
"containers",
"linux",
"buildah"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "bfb1af4d50bbe34a7e91823adc40bff918a6b331235ea68579a5b8e814ec6ce9",
"md5": "741e13123b5787d292a6c418bc8121b3",
"sha256": "717fd6200ec079cab7c01d7c494d35d149b113ca2222928d572741ad0433b8b0"
},
"downloads": -1,
"filename": "ansible_bender-0.10.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "741e13123b5787d292a6c418bc8121b3",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.6",
"size": 40044,
"upload_time": "2023-02-06T13:14:07",
"upload_time_iso_8601": "2023-02-06T13:14:07.726827Z",
"url": "https://files.pythonhosted.org/packages/bf/b1/af4d50bbe34a7e91823adc40bff918a6b331235ea68579a5b8e814ec6ce9/ansible_bender-0.10.1-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "19d521a2f32d2fcd76dd2064b697b5fc40ab4a2b3cd1cf3128e23be6fe09c776",
"md5": "fd97f524753aac37ac35d56071dd6640",
"sha256": "2b2786e870106e22e17123b8cd6fa900ee7a72f6fbefbf8bd57aaee909c95089"
},
"downloads": -1,
"filename": "ansible-bender-0.10.1.tar.gz",
"has_sig": false,
"md5_digest": "fd97f524753aac37ac35d56071dd6640",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 6807822,
"upload_time": "2023-02-06T13:14:15",
"upload_time_iso_8601": "2023-02-06T13:14:15.305266Z",
"url": "https://files.pythonhosted.org/packages/19/d5/21a2f32d2fcd76dd2064b697b5fc40ab4a2b3cd1cf3128e23be6fe09c776/ansible-bender-0.10.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-02-06 13:14:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "ansible-community",
"github_project": "ansible-bender",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "ansible-bender"
}