Files
ansible-testing/methodologies/ansible/Dockerfile
T

78 lines
1.9 KiB
Docker

FROM alpine:3.20
LABEL org.opencontainers.image.title="Ansible Test Executor"
LABEL org.opencontainers.image.description="Ansible integrations for infrastructure test automation"
RUN apk add --no-cache \
ansible \
bash \
ca-certificates \
curl \
freetds \
freetds-dev \
gcc \
git \
krb5 \
krb5-dev \
libffi-dev \
musl-dev \
openssh-client \
openssl-dev \
py3-pip \
python3 \
python3-dev \
sshpass \
&& pip3 install --no-cache-dir --break-system-packages \
'cryptography>=41.0' \
'fpdf2>=2.7' \
'jmespath>=1.0' \
'jsonschema>=4.23' \
'ncclient>=0.6' \
'netmiko>=4.0' \
packaging \
'paramiko>=2.7' \
'pymssql>=2.2' \
'pyvmomi>=8.0' \
'pywinrm[kerberos]>=0.4' \
'pyyaml>=6.0' \
requests \
requests-kerberos \
requests-ntlm \
scp \
'xmltodict>=0.13' \
&& ansible-galaxy collection install \
ansible.netcommon \
ansible.utils \
ansible.windows \
cisco.asa \
cisco.ios \
cisco.nxos \
community.crypto \
community.general \
community.vmware \
microsoft.sql \
&& apk del --no-network \
freetds-dev \
gcc \
krb5-dev \
libffi-dev \
musl-dev \
openssl-dev \
python3-dev \
&& apk add --no-cache util-linux \
&& mkdir -p /etc/ansible \
&& printf '%s\n' \
'[defaults]' \
'host_key_checking = False' \
'stdout_callback = yaml' \
'retry_files_enabled = False' \
'inventory = /workspace/assets.yml' \
'' \
'[ssh_connection]' \
'pipelining = True' \
'control_path = /tmp/ansible-%%h-%%p-%%r' \
> /etc/ansible/ansible.cfg
WORKDIR /workspace
CMD ["ansible-playbook", "--version"]