• Stars
    star
    665
  • Rank 67,810 (Top 2 %)
  • Language
    Python
  • License
    MIT License
  • Created about 6 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ansible-playbook + buildah = a sweet container image

ansible-bender

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

This tool 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:

Looking for maintainers

This project doesn't have an active maintainer right now that 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 is used to perform the push.

Documentation

You can read more about this project in the documentation:

More Repositories

1

ara

ARA Records Ansible and makes it easier to understand and troubleshoot.
Python
1,785
star
2

awesome-ansible

Awesome Ansible List
1,324
star
3

ansible-consul

📡 Ansible role for Hashicorp Consul clusters
Jinja
433
star
4

ansible-vault

🔑 Ansible role for Hashicorp Vault
Jinja
354
star
5

ansible-nomad

⌚ Ansible role for Nomad
Jinja
283
star
6

molecule-vagrant

🚧 Moved to molecule-plugins
Python
143
star
7

ansible-build-data

Holds generated but persistent results from building the ansible community package
Python
116
star
8

toolset

❌ Deprecated, superseded by creator-ee container.
Dockerfile
106
star
9

molecule-plugins

Collection on molecule plugins
Python
88
star
10

molecule-docker

🚧 Assimilated into molecule-plugins
Python
77
star
11

antsibull-build

Tooling for building various things related to ansible
Python
60
star
12

molecule-podman

❗️Moved into molecule-plugins
Python
53
star
13

molecule-ec2

🚧 Migrated inside molecule-plugins
Python
51
star
14

contrib-scripts

(archived) Old Ansible inventory & vault scripts
Python
38
star
15

ara-web

Stateless web client for the ARA Records Ansible API.
JavaScript
38
star
16

antsibull-changelog

Changelog generator for ansible, ansible-base, and collections.
Python
37
star
17

molecule-libvirt

Molecule LibVirt Provider
Python
35
star
18

community-topics

Discussions for Ansible Meetings
Shell
34
star
19

ansible.content_builder

A collection to scaffold Ansible plugins.
Python
31
star
20

ansible-london-meetup

Ansible Meetup for London, UK
30
star
21

ara-collection

Collection of Ansible roles for ARA Records Ansible.
Jinja
28
star
22

antsibull-docs

Tooling for building Ansible documentation
Python
28
star
23

molecule-hetznercloud

A molecule driver for Hetzner Cloud
Python
27
star
24

pytest-molecule

Please switch to pytest-ansible
Python
24
star
25

protogen

(Archived) Protogen :: Sample on how to write maintainable Ansible content
Makefile
22
star
26

ansible-test-gh-action

A composite GitHub Action encapsulating the GitHub Actions CI/CD workflows setup necessary for testing Ansible collection repositories on GitHub
Python
20
star
27

collection_migration

DONE AND DONE: Was scripts and scenarios for migration from core code to collections
Python
19
star
28

molecule-lxd

❗️Archived due to lack of maintenance, see molecule-plugins discussions
Python
19
star
29

molecule-openstack

Molecule OpenStack Driver
Python
15
star
30

sphinx_ansible_theme

A reusable Ansible Sphinx Theme
CSS
14
star
31

molecule-vmware

Molecule VMware Driver
Python
14
star
32

community-website

Ansible Community website (WIP)
Python
14
star
33

molecule-inspec

Molecule Inspec Verifier Plugin
Python
13
star
34

ppa

Python
13
star
35

molecule-kubevirt

Molecule Kubevirt Driver
Python
13
star
36

images

Ansible container image definitions meant for ansible-test and Execution Environments
Shell
13
star
37

molecule-goss

Molecule Goss Verifier
Python
12
star
38

molecule-containers

❗️Migrated into molecule-plugins
Python
12
star
39

role2collection

Tooling to assist in migrating to collections
Python
11
star
40

pytest-ansible-units

A pytest plugin to run an ansible collection's unit tests with pytest.
Python
11
star
41

molecule-gce

🚧 Assimilated into molecule-plugins
Python
10
star
42

github-docs-build

GitHub actions and workflows for building Ansible collection documentation.
Jinja
10
star
43

ansible-dresden-meetup

Ansible Dresden Meetup, located in Dresden, Germany.
CSS
10
star
44

operator-sdk-performance-testing

Performance testing for the Kubernetes Operator SDK.
HTML
8
star
45

molecule-azure

🚧 Assimilated into molecule-plugins
Python
7
star
46

antsibull-core

Library for tooling for building various things related to ansible
Python
6
star
47

ansible-benelux-meetup

Content of the Ansible Benelux Meetup Group
Ruby
6
star
48

antsibull-docs-parser

Python library for processing Ansible documentation markup
Python
6
star
49

collection-explorer

TypeScript
5
star
50

ansible-badges

Ansible Badges will recognize contributors to the Ansible Project.
5
star
51

ansible-pygments

Provides Pygments highlighter for Ansible output for use in Sphinx
Python
5
star
52

molecule-digitalocean

molecule-digitalocean
Python
5
star
53

antsichaut

Antsichaut aims to automate the filling of a changelog.yaml used by antsibull-changelog
Python
4
star
54

collection_bot

Fork of Ansibullbot for collections
Python
4
star
55

sphinx-ansible

Python
4
star
56

ara-infra

Infrastructure management for the ARA Records Ansible project.
HTML
4
star
57

community-examples

Repository for community examples
4
star
58

stats-crawler

Primary indexer for the raw data used in the other stats reports and dashboards
R
4
star
59

project-template

A GitHub repository template for new Ansible projects
3
star
60

rss-feed-aggregator

Jinja
3
star
61

ansible-zurich-meetup

Ansible Zurich Meetup
3
star
62

katacoda-scenarios

Ansible Community training
Shell
3
star
63

galaxy-doc-builder

TypeScript
2
star
64

ansible-minneapolis-meetup

2
star
65

ansible-munich-meetup

A repository to share content for the Ansible München Meetup group.
2
star
66

antsibull-docs-ts

TypeScript library for processing Ansible documentation markup
TypeScript
2
star
67

package-test-results

Coordination for Ansible package-wide testing
Python
2
star
68

meetup

The regular Ansible Community Meetup
1
star
69

antsibull-fileutils

File utility library for community Ansible tools
Python
1
star
70

nightly-builds

Nightly builds of ansible package. Usage: `pip install ansible ansible-base --index-url=https://ansible-community.github.io/nightly-builds/simple/ --extra-index-url=https://pypi.org/simple`
HTML
1
star
71

stats-collections

RShiny app to display statistics for the Ansible Collections
R
1
star
72

ansible-seattle-meetup

Seattle Ansible Meetup content and ideas
1
star
73

github-action-build-collection

GitHub Action for building Ansible collections
1
star
74

ansible.im

Hacking on HTML for ansible.im
HTML
1
star
75

presentations

Repository for community presentations on Ansible projects
1
star
76

ansible-montreal-meetup

Things for the Ansible Montreal meetups
1
star
77

ansible-stl-meetup

Ansible St. Louis Meetup content.
1
star
78

ansible-kolkata-meetup

A repository to share content for the Ansible Kolkata Meetup group.
HTML
1
star