78 lines
1.9 KiB
Docker
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"]
|