Progress on testing provisioning on multiple distros. So far Debian and Ubuntu are working. Others need packages added.
This commit is contained in:
12
Config/ProvisionTests/Dockerfiles/arch
Normal file
12
Config/ProvisionTests/Dockerfiles/arch
Normal file
@@ -0,0 +1,12 @@
|
||||
# Create a VM for testing Ansible provisioning.
|
||||
|
||||
FROM archlinux:base
|
||||
|
||||
RUN pacman -Syu --noconfirm && pacman -Sy --noconfirm git bash curl sudo
|
||||
|
||||
COPY bin/main.sh /root/main.sh
|
||||
RUN chmod +x /root/main.sh
|
||||
|
||||
WORKDIR /root/
|
||||
USER root
|
||||
CMD ./main.sh
|
12
Config/ProvisionTests/Dockerfiles/debian
Normal file
12
Config/ProvisionTests/Dockerfiles/debian
Normal file
@@ -0,0 +1,12 @@
|
||||
# Create a VM for testing Ansible provisioning.
|
||||
|
||||
FROM debian:trixie
|
||||
|
||||
RUN apt update && apt dist-upgrade -y && apt install -y git bash curl sudo
|
||||
|
||||
COPY bin/main.sh /root/main.sh
|
||||
RUN chmod +x /root/main.sh
|
||||
|
||||
WORKDIR /root/
|
||||
USER root
|
||||
CMD ./main.sh
|
12
Config/ProvisionTests/Dockerfiles/fedora
Normal file
12
Config/ProvisionTests/Dockerfiles/fedora
Normal file
@@ -0,0 +1,12 @@
|
||||
# Create a VM for testing Ansible provisioning.
|
||||
|
||||
FROM fedora:latest
|
||||
|
||||
RUN dnf upgrade --refresh -y && dnf install -y git bash curl sudo
|
||||
|
||||
COPY bin/main.sh /root/main.sh
|
||||
RUN chmod +x /root/main.sh
|
||||
|
||||
WORKDIR /root/
|
||||
USER root
|
||||
CMD ./main.sh
|
14
Config/ProvisionTests/Dockerfiles/opensuse
Normal file
14
Config/ProvisionTests/Dockerfiles/opensuse
Normal file
@@ -0,0 +1,14 @@
|
||||
# Create a VM for testing Ansible provisioning.
|
||||
|
||||
FROM opensuse/tumbleweed
|
||||
|
||||
RUN zypper -n refresh \
|
||||
&& zypper -n dist-upgrade -y \
|
||||
&& zypper -n install -y git bash curl sudo
|
||||
|
||||
COPY bin/main.sh /root/main.sh
|
||||
RUN chmod +x /root/main.sh
|
||||
|
||||
WORKDIR /root/
|
||||
USER root
|
||||
CMD ./main.sh
|
12
Config/ProvisionTests/Dockerfiles/ubuntu
Normal file
12
Config/ProvisionTests/Dockerfiles/ubuntu
Normal file
@@ -0,0 +1,12 @@
|
||||
# Create a VM for testing Ansible provisioning.
|
||||
|
||||
FROM ubuntu:rolling
|
||||
|
||||
RUN apt update && apt dist-upgrade -y && apt install -y git bash curl sudo
|
||||
|
||||
COPY bin/main.sh /root/main.sh
|
||||
RUN chmod +x /root/main.sh
|
||||
|
||||
WORKDIR /root/
|
||||
USER root
|
||||
CMD ./main.sh
|
21
Config/ProvisionTests/bin/main.sh
Normal file
21
Config/ProvisionTests/bin/main.sh
Normal file
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
sh -c "rm -rfv prov-test"
|
||||
git clone $REPO --branch=$BRANCH prov-test
|
||||
|
||||
cd prov-test
|
||||
|
||||
echo "Starting Executable Script"
|
||||
|
||||
tail -F /var/mail/mail &
|
||||
tail -F /var/mail/ansible &
|
||||
|
||||
logfile="/root/test.log"
|
||||
$EXEC > $logfile &
|
||||
tail -F $logfile
|
||||
|
||||
echo "*** Finished $0 @ `date` ***"
|
||||
|
||||
wait -n
|
||||
|
||||
exit $?
|
@@ -0,0 +1,136 @@
|
||||
# Create containers which each execute a provisioning script and exit.
|
||||
|
||||
volumes:
|
||||
|
||||
pt-storage:
|
||||
driver: local
|
||||
driver_opts:
|
||||
type: none
|
||||
device: $PT_STORAGE_DIR
|
||||
o: bind
|
||||
|
||||
services:
|
||||
|
||||
pt-arch:
|
||||
container_name: pt-arch
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: Dockerfiles/arch
|
||||
network: host
|
||||
restart: no
|
||||
environment:
|
||||
- REPO=$REPO
|
||||
- BRANCH=$BRANCH
|
||||
- EXEC=$EXEC
|
||||
volumes:
|
||||
- type: volume
|
||||
source: pt-storage
|
||||
target: /root
|
||||
volume:
|
||||
subpath: arch
|
||||
deploy:
|
||||
mode: global
|
||||
resources:
|
||||
limits:
|
||||
cpus: $CPU
|
||||
memory: $RAM
|
||||
|
||||
|
||||
pt-debian:
|
||||
container_name: pt-debian
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: Dockerfiles/debian
|
||||
network: host
|
||||
restart: no
|
||||
environment:
|
||||
- REPO=$REPO
|
||||
- BRANCH=$BRANCH
|
||||
- EXEC=$EXEC
|
||||
volumes:
|
||||
- type: volume
|
||||
source: pt-storage
|
||||
target: /root
|
||||
volume:
|
||||
subpath: debian
|
||||
deploy:
|
||||
mode: global
|
||||
resources:
|
||||
limits:
|
||||
cpus: $CPU
|
||||
memory: $RAM
|
||||
|
||||
|
||||
pt-ubuntu:
|
||||
container_name: pt-ubuntu
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: Dockerfiles/ubuntu
|
||||
network: host
|
||||
restart: no
|
||||
environment:
|
||||
- REPO=$REPO
|
||||
- BRANCH=$BRANCH
|
||||
- EXEC=$EXEC
|
||||
volumes:
|
||||
- type: volume
|
||||
source: pt-storage
|
||||
target: /root
|
||||
volume:
|
||||
subpath: ubuntu
|
||||
deploy:
|
||||
mode: global
|
||||
resources:
|
||||
limits:
|
||||
cpus: $CPU
|
||||
memory: $RAM
|
||||
|
||||
|
||||
pt-fedora:
|
||||
container_name: pt-fedora
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: Dockerfiles/fedora
|
||||
network: host
|
||||
restart: no
|
||||
environment:
|
||||
- REPO=$REPO
|
||||
- BRANCH=$BRANCH
|
||||
- EXEC=$EXEC
|
||||
volumes:
|
||||
- type: volume
|
||||
source: pt-storage
|
||||
target: /root
|
||||
volume:
|
||||
subpath: fedora
|
||||
deploy:
|
||||
mode: global
|
||||
resources:
|
||||
limits:
|
||||
cpus: $CPU
|
||||
memory: $RAM
|
||||
|
||||
|
||||
pt-opensuse:
|
||||
container_name: pt-opensuse
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: Dockerfiles/opensuse
|
||||
network: host
|
||||
restart: no
|
||||
environment:
|
||||
- REPO=$REPO
|
||||
- BRANCH=$BRANCH
|
||||
- EXEC=$EXEC
|
||||
volumes:
|
||||
- type: volume
|
||||
source: pt-storage
|
||||
target: /root
|
||||
volume:
|
||||
subpath: opensuse
|
||||
deploy:
|
||||
mode: global
|
||||
resources:
|
||||
limits:
|
||||
cpus: $CPU
|
||||
memory: $RAM
|
||||
|
@@ -0,0 +1,16 @@
|
||||
# This file should be renamed '.env' and have any private values modified.
|
||||
|
||||
COMPOSE_BAKE=true
|
||||
|
||||
## Performance
|
||||
CPU=0.2
|
||||
RAM=0.2G
|
||||
|
||||
## Storage
|
||||
#STORAGE_DIR=../../Volumes/ProvisionTests
|
||||
PT_STORAGE_DIR=/tmp/ProvisionTests
|
||||
|
||||
## Script
|
||||
REPO=https://git.hyperling.com/me/env-ansible
|
||||
BRANCH=dev
|
||||
EXEC="./setup.sh -l"
|
||||
|
23
Config/ProvisionTests/prep.sh
Normal file → Executable file
23
Config/ProvisionTests/prep.sh
Normal file → Executable file
@@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env bash
|
||||
# 2025-07-22 Hyperling
|
||||
# Create the necessary folders for LibreTranslate's volumes to work.
|
||||
# This must be run before the container will start properly.
|
||||
|
||||
## Setup ##
|
||||
|
||||
DIR="$(dirname -- "${BASH_SOURCE[0]}")"
|
||||
source $DIR/.env
|
||||
source ../../source.env
|
||||
|
||||
## Main ##
|
||||
|
||||
# Create folders.
|
||||
|
||||
mkdir -pv "$PT_STORAGE_DIR/arch"
|
||||
mkdir -pv "$PT_STORAGE_DIR/debian"
|
||||
mkdir -pv "$PT_STORAGE_DIR/fedora"
|
||||
mkdir -pv "$PT_STORAGE_DIR/ubuntu"
|
||||
mkdir -pv "$PT_STORAGE_DIR/opensuse"
|
||||
|
||||
# Finish successfully.
|
||||
exit 0
|
||||
|
Reference in New Issue
Block a user