first commit

This commit is contained in:
ansible user
2025-10-22 14:11:49 +02:00
commit 110301f862
75 changed files with 20802 additions and 0 deletions

54
Dockerfile Normal file
View File

@@ -0,0 +1,54 @@
### FROM ubuntu:24.04
FROM public.ecr.aws/docker/library/ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Africa/Johannesburg
# OS deps
RUN apt-get update && apt-get install -y --no-install-recommends \
tzdata \
python3 python3-venv python3-pip \
openssh-client sshpass netcat-traditional \
vim gawk \
jq curl ca-certificates git \
&& ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \
&& echo $TZ > /etc/timezone \
&& dpkg-reconfigure -f noninteractive tzdata \
&& rm -rf /var/lib/apt/lists/*
ENV APP_DIR=/opt/containers/ansible-worker
ENV DATA_DIR=${APP_DIR}/data
ENV VENV_DIR=${DATA_DIR}/ansible_venv
# Copy your Ansible project files into the image (immutable)
# Expecting host: ./files/{ansible.cfg, inventory/, group_vars/, ...}
COPY files/ ${APP_DIR}/app/
# Entry script will bootstrap the venv into DATA_DIR if missing
COPY files/entrypoint.sh /usr/local/bin/ansible-entrypoint
RUN chmod +x /usr/local/bin/ansible-entrypoint
# Default config paths
ENV ANSIBLE_CONFIG=${APP_DIR}/app/ansible.cfg
# Optional: speed up password auth on Dropbear/OpenWrt devices
ENV ANSIBLE_SSH_ARGS="-o PubkeyAuthentication=no"
# put the venv on PATH for all processes (incl. docker exec sessions)
ENV PATH="/opt/containers/ansible-worker/data/ansible_venv/bin:${PATH}"
# keep collections in persistent storage
#ENV ANSIBLE_COLLECTIONS_PATHS="/opt/containers/ansible-worker/data/collections:/usr/share/ansible/collections"
ENV ANSIBLE_COLLECTIONS_PATH="/opt/containers/ansible-worker/data/collections:/usr/share/ansible/collections"
ENV QUEUE="queue_deviceconfig,queue_persuasive"
# Work from the "app" dir; data/ is mounted separately
WORKDIR ${APP_DIR}/app
# Keep container alive by default; entrypoint sets up venv+PATH
ENTRYPOINT ["/usr/local/bin/ansible-entrypoint"]
#CMD ["sleep", "infinity"]
# …or, if its under bin and named rabbitmq-client.sh as you hinted:
CMD ["/opt/containers/ansible-worker/app/bin/rabbitmq-client.sh"]