Code Monkey home page Code Monkey logo

ansible-bender's Introduction

ansible-bender

PyPI version GitHub Release Date PyPI - Status GitHub PyPI - Downloads

This is a tool which bends containers using Ansible playbooks 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. More to come in the future. Ansible-bender (ab) relies on Ansible connection plugins for performing builds.

tl;dr Ansible is the frontend, buildah is the backend.

The concept is described in following blog posts:

You may be asking: why not ansible-container? Ansible bender is actually heavily inspired by ansible-container: the main distinction is that ansible-container covers the complete lifecycle of a containerized application while ab takes care of image builds only.

Status: ready to be used

Ansible-bender was recently moved to the ansible-community organization. \o/

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 is used to perform the push.

Documentation

You can read more about this project in the documentation:

ansible-bender's People

Contributors

11mariom avatar alexgarel avatar ansible-zuul[bot] avatar bmillemathias avatar dependabot[bot] avatar dhodovsk avatar fblackburn1 avatar gordonmessmer avatar hhenkel avatar hrnciar avatar hroncok avatar jamescassell avatar kmehant avatar lachmanfrantisek avatar major avatar slopedog avatar smeds avatar tomastomecek avatar webknjaz avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.