Compare commits
42 Commits
Author | SHA1 | Date |
---|---|---|
Tobias Trabelsi | cce376cc4b | |
Tobias Trabelsi | f719b7ade3 | |
Tobias Trabelsi | 66b678830e | |
lerentis | 641bd93f93 | |
Tobias Trabelsi | 9c948d5788 | |
Tobias Trabelsi | f15e77fb88 | |
Tobias Trabelsi | 12fe4cf41a | |
Tobias Trabelsi | 39c7266b49 | |
Tobias Trabelsi | e854da83ca | |
lerentis | 61bcffed6a | |
Tobias Trabelsi | d07b70a09f | |
Tobias Trabelsi | d6a66a4e8f | |
Tobias Trabelsi | d661d20093 | |
Tobias Trabelsi | da6b0189ce | |
Tobias Trabelsi | fb3a10a4d3 | |
Tobias Trabelsi | 9245bc02a6 | |
Tobias Trabelsi | 974e29e405 | |
Tobias Trabelsi | 5c06f04f69 | |
Tobias Trabelsi | c2252c72f0 | |
Tobias Trabelsi | 6bf134506d | |
Tobias Trabelsi | 8bafe97a18 | |
Tobias Trabelsi | 3728e4d4d2 | |
lerentis | d4b71fcddc | |
Tobias Trabelsi | 29a5ac9221 | |
Tobias Trabelsi | f6128fe7cf | |
Tobias Trabelsi | 223a3ae308 | |
Tobias Trabelsi | 15a8a45e2b | |
Tobias Trabelsi | ce806504b2 | |
Tobias Trabelsi | 3c8c7ff231 | |
Tobias Trabelsi | 1b737ed6c0 | |
Tobias Trabelsi | 3c86f057c2 | |
Tobias Trabelsi | f32f612663 | |
Tobias Trabelsi | 6a70e27815 | |
Tobias Trabelsi | 7f0b1a8120 | |
Tobias Trabelsi | 791befff92 | |
Tobias Trabelsi | dcfb812e91 | |
Tobias Trabelsi | ab09084d29 | |
Tobias Trabelsi | 15eb28ebc7 | |
Tobias Trabelsi | b83d7d1d80 | |
Tobias Trabelsi | 6f197f959a | |
Tobias Trabelsi | 157146ffb8 | |
Tobias Trabelsi | 1ff195e546 |
|
@ -0,0 +1,55 @@
|
|||
|
||||
def main(ctx):
|
||||
return [
|
||||
pipeline("debian", ["ubuntu-22.04", "ubuntu-20.04"]),
|
||||
pipeline("rhel", ["fedora-34", "fedora-35"]),
|
||||
]
|
||||
|
||||
def generateStep(tag):
|
||||
return {
|
||||
"name": "build-" + tag,
|
||||
"image": "plugins/kaniko",
|
||||
"settings": {
|
||||
"dockerfile": tag + "/Dockerfile",
|
||||
"password": {
|
||||
"from_secret": "docker_password"
|
||||
},
|
||||
"username": {
|
||||
"from_secret": "docker_username"
|
||||
},
|
||||
"repo": "lerentis/ansible",
|
||||
"tags": [
|
||||
tag
|
||||
]
|
||||
},
|
||||
"when": {
|
||||
"event": [
|
||||
"push",
|
||||
"pull_request",
|
||||
"cron"
|
||||
]
|
||||
},
|
||||
"ressources": {
|
||||
"limits": {
|
||||
"cpu": "200",
|
||||
"memory": "1024MiB"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def pipeline(group, tags):
|
||||
steps = []
|
||||
for tag in tags:
|
||||
steps += generateStep(tag)
|
||||
print(generateStep(tag))
|
||||
print(steps)
|
||||
return {
|
||||
"kind": "pipeline",
|
||||
"type": "kubernetes",
|
||||
"name": "build-%s" % group,
|
||||
"platform": {
|
||||
"os": "linux",
|
||||
"arch": "amd64"
|
||||
},
|
||||
"steps": steps
|
||||
}
|
949
.drone.yml
949
.drone.yml
File diff suppressed because it is too large
Load Diff
18
README.md
18
README.md
|
@ -1,6 +1,6 @@
|
|||
# ansible
|
||||
|
||||
[![Build Status](https://drone.burntbunch.org/api/badges/lerentis/ansible-container/status.svg)](https://drone.burntbunch.org/lerentis/ansible-container)
|
||||
[![Build Status](https://drone.uploadfilter24.eu/api/badges/lerentis/ansible/status.svg)](https://drone.uploadfilter24.eu/lerentis/ansible)
|
||||
|
||||
Docker images for running and testing ansible playbooks with various operating systems.
|
||||
This Project is based on this [project](https://github.com/pauvos/ansible), which seems abandoned
|
||||
|
@ -8,13 +8,19 @@ I don't like obfuscated Dockerfiles with external scripts and hundreds of bells
|
|||
|
||||
Available operating systems:
|
||||
|
||||
* alpine-3
|
||||
* alpine-3.14
|
||||
* alpine-3.15
|
||||
* centos-7
|
||||
* almalinux-8
|
||||
* debian-8
|
||||
* fedora-24
|
||||
* fedora-34
|
||||
* fedora-35
|
||||
* fedora-36
|
||||
* fedora-37
|
||||
* ubuntu-16.04
|
||||
* ubuntu-18.04
|
||||
* ubuntu-19.04
|
||||
* ubuntu-20.04
|
||||
* ubuntu-22.04
|
||||
* arch
|
||||
|
||||
## run playbooks
|
||||
|
@ -69,6 +75,6 @@ Note: /root/.ansible must not be an overlayfs, otherwise ssh accelerate won't wo
|
|||
|
||||
## references
|
||||
|
||||
* [project](https://git.burntbunch.org/lerentis/ansible-container)
|
||||
* [project](https://git.uploadfilter24.eu/lerentis/ansible)
|
||||
|
||||
Current Version: 0.7.2
|
||||
Current Version: 2.0
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
FROM centos:8
|
||||
FROM almalinux:8
|
||||
|
||||
RUN dnf -y install python3-pip &&\
|
||||
dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm &&\
|
||||
dnf install -y --enablerepo epel-playground ansible curl \
|
||||
RUN dnf -y install python3-pip epel-release \
|
||||
&& dnf install -y ansible curl \
|
||||
&& curl -L https://github.com/aelsabbahy/goss/releases/latest/download/goss-linux-amd64 -o /usr/local/bin/goss \
|
||||
&& chmod +rx /usr/local/bin/goss \
|
||||
&& touch ~/.netrc && chmod og-rw ~/.netrc \
|
|
@ -1,4 +1,4 @@
|
|||
FROM alpine:3.10
|
||||
FROM alpine:3.14
|
||||
|
||||
RUN apk add --no-cache ansible curl \
|
||||
&& curl -L https://github.com/aelsabbahy/goss/releases/latest/download/goss-linux-amd64 -o /usr/local/bin/goss \
|
|
@ -0,0 +1,7 @@
|
|||
FROM alpine:3.15
|
||||
|
||||
RUN apk add --no-cache ansible curl \
|
||||
&& curl -L https://github.com/aelsabbahy/goss/releases/latest/download/goss-linux-amd64 -o /usr/local/bin/goss \
|
||||
&& chmod +rx /usr/local/bin/goss
|
||||
|
||||
CMD ["ansible-playbook", "--help"]
|
|
@ -1,6 +1,6 @@
|
|||
FROM archlinux/base
|
||||
FROM archlinux:latest
|
||||
|
||||
RUN pacman -Syuu --noconfirm && pacman -S python ansible sshpass git python-passlib python-netaddr curl --noconfirm \
|
||||
RUN pacman -Syuu --noconfirm && pacman -S python python2 ansible sshpass git python-passlib python-netaddr curl --noconfirm \
|
||||
&& curl -L https://github.com/aelsabbahy/goss/releases/latest/download/goss-linux-amd64 -o /usr/local/bin/goss \
|
||||
&& chmod +rx /usr/local/bin/goss
|
||||
|
||||
|
|
25
build-all.sh
25
build-all.sh
|
@ -1,10 +1,17 @@
|
|||
#!/bin/bash
|
||||
cd ubuntu-18.04 && docker buildx build -t lerentis/ansible:ubuntu-18.04 --platform=linux/arm,linux/arm64,linux/amd64 . --push
|
||||
cd ../ubuntu-16.04 && docker buildx build -t lerentis/ansible:ubuntu-16.04 --platform=linux/arm,linux/arm64,linux/amd64 . --push
|
||||
cd ../alpine-3 && docker buildx build -t lerentis/ansible:alpine-3 --platform=linux/arm,linux/arm64,linux/amd64 . --push
|
||||
cd ../ubuntu-14.04 && docker buildx build -t lerentis/ansible:ubuntu-14.04 --platform=linux/arm,linux/arm64,linux/amd64 . --push
|
||||
cd ../fedora-24 && docker buildx build -t lerentis/ansible:fedora-24 --platform=linux/arm,linux/arm64,linux/amd64 . --push
|
||||
cd ../debian-8 && docker buildx build -t lerentis/ansible:debian-8 --platform=linux/arm,linux/amd64 . --push
|
||||
cd ../debian-7 && docker buildx build -t lerentis/ansible:debian-7 --platform=linux/arm,linux/amd64 . --push
|
||||
cd ../centos-7 && docker buildx build -t lerentis/ansible:centos-7 --platform=linux/arm,linux/arm64,linux/amd64 . --push
|
||||
cd ../arch && docker buildx build -t lerentis/ansible:arch --platform=linux/arm,linux/arm64,linux/amd64 . --push
|
||||
cd ubuntu-18.04 && docker buildx build -t lerentis/ansible:ubuntu-18.04-dev --platform=linux/arm,linux/arm64,linux/amd64 . --push
|
||||
cd ../ubuntu-16.04 && docker buildx build -t lerentis/ansible:ubuntu-16.04-dev --platform=linux/arm,linux/arm64,linux/amd64 . --push
|
||||
cd ../alpine-3.14 && docker buildx build -t lerentis/ansible:alpine-3.14-dev --platform=linux/arm,linux/arm64,linux/amd64 . --push
|
||||
cd ../alpine-3.15 && docker buildx build -t lerentis/ansible:alpine-3.15-dev --platform=linux/arm,linux/arm64,linux/amd64 . --push
|
||||
cd ../ubuntu-20.04 && docker buildx build -t lerentis/ansible:ubuntu-20.04-dev --platform=linux/arm,linux/arm64,linux/amd64 . --push
|
||||
cd ../ubuntu-22.04 && docker buildx build -t lerentis/ansible:ubuntu-22.04-dev --platform=linux/arm,linux/arm64,linux/amd64 . --push
|
||||
cd ../fedora-34 && docker buildx build -t lerentis/ansible:fedora-34-dev --platform=linux/amd64 . --push
|
||||
cd ../fedora-35 && docker buildx build -t lerentis/ansible:fedora-35-dev --platform=linux/amd64 . --push
|
||||
cd ../fedora-36 && docker buildx build -t lerentis/ansible:fedora-36-dev --platform=linux/amd64 . --push
|
||||
cd ../fedora-37 && docker buildx build -t lerentis/ansible:fedora-37-dev --platform=linux/amd64 . --push
|
||||
cd ../debian-9 && docker buildx build -t lerentis/ansible:debian-9-dev --platform=linux/arm,linux/amd64 . --push
|
||||
cd ../debian-8 && docker buildx build -t lerentis/ansible:debian-8-dev --platform=linux/arm,linux/amd64 . --push
|
||||
cd ../debian-10 && docker buildx build -t lerentis/ansible:debian-10-dev --platform=linux/arm64,linux/amd64 . --push
|
||||
cd ../centos-7 && docker buildx build -t lerentis/ansible:centos-7-dev --platform=linux/arm64,linux/amd64 . --push
|
||||
cd ../almalinux-8 && docker buildx build -t lerentis/ansible:almalinux-8-dev --platform=linux/arm64,linux/amd64 . --push
|
||||
cd ../arch && docker buildx build -t lerentis/ansible:arch-dev --platform=linux/arm,linux/amd64 . --push
|
||||
|
|
|
@ -13,6 +13,7 @@ RUN apt-get -q update \
|
|||
curl \
|
||||
ansible \
|
||||
python \
|
||||
ca-certificates \
|
||||
&& curl -L https://github.com/aelsabbahy/goss/releases/latest/download/goss-linux-amd64 -o /usr/local/bin/goss \
|
||||
&& chmod +rx /usr/local/bin/goss \
|
||||
&& apt-get clean
|
||||
|
|
|
@ -0,0 +1,123 @@
|
|||
{%- for pipeline in pipelines -%}
|
||||
---
|
||||
kind: pipeline
|
||||
type: kubernetes
|
||||
name: build-{{ pipeline.group }}
|
||||
|
||||
platform:
|
||||
os: linux
|
||||
arch: amd64
|
||||
|
||||
steps:
|
||||
{% for tag in pipeline.tags %}
|
||||
- name: build-{{ tag }}
|
||||
image: plugins/kaniko
|
||||
settings:
|
||||
dockerfile: {{ tag }}/Dockerfile
|
||||
password:
|
||||
from_secret: docker_password
|
||||
username:
|
||||
from_secret: docker_username
|
||||
repo: lerentis/ansible
|
||||
tags:
|
||||
- {{ tag }}-dev
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
- pull_request
|
||||
- cron
|
||||
resources:
|
||||
limits:
|
||||
cpu: 200
|
||||
memory: 1024MiB
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% for pipeline in pipelines %}
|
||||
---
|
||||
kind: pipeline
|
||||
type: kubernetes
|
||||
name: release-{{ pipeline.group }}
|
||||
|
||||
platform:
|
||||
os: linux
|
||||
arch: amd64
|
||||
|
||||
steps:
|
||||
{% for tag in pipeline.tags %}
|
||||
- name: release-{{ tag }}
|
||||
image: plugins/kaniko
|
||||
settings:
|
||||
dockerfile: {{ tag }}/Dockerfile
|
||||
password:
|
||||
from_secret: docker_password
|
||||
username:
|
||||
from_secret: docker_username
|
||||
repo: lerentis/ansible
|
||||
tags:
|
||||
- {{ tag }}
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
resources:
|
||||
limits:
|
||||
cpu: 200
|
||||
memory: 1024MiB
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
---
|
||||
kind: pipeline
|
||||
type: kubernetes
|
||||
name: notify-build
|
||||
|
||||
platform:
|
||||
os: linux
|
||||
arch: amd64
|
||||
|
||||
steps:
|
||||
{% raw %}
|
||||
- name: notify
|
||||
image: appleboy/drone-telegram
|
||||
settings:
|
||||
message: "Commit {{ commit.message }} ran with build {{ build.number }} and finished with status {{ build.status }}."
|
||||
to:
|
||||
from_secret: telegram_userid
|
||||
token:
|
||||
from_secret: telegram_secret
|
||||
when:
|
||||
status:
|
||||
- failure
|
||||
- success
|
||||
event:
|
||||
- push
|
||||
- pull_request
|
||||
- cron{% endraw %}
|
||||
depends_on: {% for pipeline in pipelines %}
|
||||
- build-{{ pipeline.group }} {% endfor %}
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: kubernetes
|
||||
name: notify-release
|
||||
|
||||
platform:
|
||||
os: linux
|
||||
arch: amd64
|
||||
|
||||
steps:
|
||||
{% raw %}
|
||||
- name: notify
|
||||
image: appleboy/drone-telegram
|
||||
settings:
|
||||
message: "Release {{ build.tag }} ran with build {{ build.number }} and finished with status {{ build.status }}."
|
||||
to:
|
||||
from_secret: telegram_userid
|
||||
token:
|
||||
from_secret: telegram_secret
|
||||
when:
|
||||
status:
|
||||
- failure
|
||||
- success
|
||||
event:
|
||||
- tag {% endraw %}
|
||||
depends_on:{% for pipeline in pipelines %}
|
||||
- release-{{ pipeline.group }} {% endfor %}
|
|
@ -1,4 +1,4 @@
|
|||
FROM fedora:24
|
||||
FROM fedora:34
|
||||
|
||||
RUN dnf -y install \
|
||||
ansible \
|
|
@ -0,0 +1,11 @@
|
|||
FROM fedora:35
|
||||
|
||||
RUN dnf -y install \
|
||||
ansible \
|
||||
openssh-clients \
|
||||
curl \
|
||||
&& curl -L https://github.com/aelsabbahy/goss/releases/latest/download/goss-linux-amd64 -o /usr/local/bin/goss \
|
||||
&& chmod +rx /usr/local/bin/goss \
|
||||
&& dnf clean all
|
||||
|
||||
CMD ["ansible-playbook", "--help"]
|
|
@ -0,0 +1,11 @@
|
|||
FROM fedora:36
|
||||
|
||||
RUN dnf -y install \
|
||||
ansible \
|
||||
openssh-clients \
|
||||
curl \
|
||||
&& curl -L https://github.com/aelsabbahy/goss/releases/latest/download/goss-linux-amd64 -o /usr/local/bin/goss \
|
||||
&& chmod +rx /usr/local/bin/goss \
|
||||
&& dnf clean all
|
||||
|
||||
CMD ["ansible-playbook", "--help"]
|
|
@ -0,0 +1,11 @@
|
|||
FROM fedora:37
|
||||
|
||||
RUN dnf -y install \
|
||||
ansible \
|
||||
openssh-clients \
|
||||
curl \
|
||||
&& curl -L https://github.com/aelsabbahy/goss/releases/latest/download/goss-linux-amd64 -o /usr/local/bin/goss \
|
||||
&& chmod +rx /usr/local/bin/goss \
|
||||
&& dnf clean all
|
||||
|
||||
CMD ["ansible-playbook", "--help"]
|
|
@ -0,0 +1,52 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from jinja2 import Template, Environment, FileSystemLoader
|
||||
|
||||
pipelines = [
|
||||
{
|
||||
"group": "debian",
|
||||
"tags": [
|
||||
"ubuntu-22.04",
|
||||
"ubuntu-20.04",
|
||||
"ubuntu-18.04",
|
||||
"ubuntu-16.04",
|
||||
"ubuntu-14.04",
|
||||
"debian-8",
|
||||
"debian-9",
|
||||
"debian-10"
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "rhel",
|
||||
"tags": [
|
||||
"almalinux-8",
|
||||
"centos-7",
|
||||
"fedora-34",
|
||||
"fedora-35",
|
||||
"fedora-36",
|
||||
"fedora-37"
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "alpine",
|
||||
"tags": [
|
||||
"alpine-3.14",
|
||||
"alpine-3.15"
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "arch",
|
||||
"tags": [
|
||||
"arch"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
file_loader = FileSystemLoader('.')
|
||||
env = Environment(loader=file_loader)
|
||||
|
||||
template = env.get_template('drone.yaml.j2')
|
||||
|
||||
output = template.render(pipelines=pipelines)
|
||||
print(output)
|
|
@ -0,0 +1,16 @@
|
|||
FROM ubuntu:22.04
|
||||
|
||||
RUN apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
||||
software-properties-common \
|
||||
apt-utils \
|
||||
ansible \
|
||||
python3-apt \
|
||||
git-core \
|
||||
openssh-client \
|
||||
curl \
|
||||
&& curl -L https://github.com/aelsabbahy/goss/releases/latest/download/goss-linux-amd64 -o /usr/local/bin/goss \
|
||||
&& chmod +rx /usr/local/bin/goss \
|
||||
&& apt-get clean
|
||||
|
||||
CMD ["ansible-playbook", "--help"]
|
Loading…
Reference in New Issue