Files
ansible-playbooks/execute.sh
T
2026-05-08 21:27:10 +02:00

44 lines
1.5 KiB
Bash

#!/bin/bash
defaultimage="ansible:deb13"
export ANSIBLE_HOST_KEY_CHECKING=False
export ANSIBLE_SSH_ARGS='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
export ANSIBLE_CONFIG=./ansible.cfg
# Ermittle den nächsten freien Container-Namen
base_name="ansible"
counter=1
while docker ps -a --format '{{.Names}}' | grep -q "^${base_name}-${counter}$"; do
counter=$((counter + 1))
done
container_name="${base_name}-${counter}"
docker run --rm -dit \
--name "$container_name" \
--hostname "$container_name" \
-e ANSIBLE_HOST_KEY_CHECKING=False \
-e ANSIBLE_SSH_ARGS='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' \
-e ANSIBLE_CONFIG=./ansible.cfg \
-v "$(pwd):/ansible" \
-v ansible_ssh_keys:/root/.ssh \
-w /ansible \
$defaultimage \
"/bin/bash"
docker exec "$container_name" sh -lc "mkdir -p /root/.ssh && chmod 700 /root/.ssh && printf 'Host *\n StrictHostKeyChecking no\n UserKnownHostsFile /dev/null\n' > /root/.ssh/config && chmod 600 /root/.ssh/config"
container_ip=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' "$container_name" 2>/dev/null)
container_os=$(docker exec "$container_name" sh -c 'grep PRETTY_NAME /etc/os-release 2>/dev/null | cut -d= -f2 | tr -d "\"" 2>/dev/null')
echo "-----------------------------------"
echo "Container Name : $container_name"
echo "Container IP : ${container_ip:-n/a}"
echo "Container OS : ${container_os:-n/a}"
echo "-----------------------------------"
docker attach "$container_name"