1
0
Fork 0
mirror of https://github.com/JasonN3/build-container-installer.git synced 2025-12-25 10:57:55 +01:00

use forwarding

This commit is contained in:
Jason N. 2024-03-10 12:36:14 -04:00
parent 541ac7d1f1
commit b99db5391e

View file

@ -217,11 +217,15 @@ jobs:
env: env:
VM_USER: core VM_USER: core
VM_PASS: foobar VM_PASS: foobar
VM_IP: "127.0.0.1"
VM_PORT: "5555"
run: | run: |
mkfifo vm.stdin mkfifo vm.stdin
qemu-system-x86_64 -name "Anaconda" \ qemu-system-x86_64 -name "Anaconda" \
-m 4096 -cpu qemu64 -display none -smp 2 \ -m 4096 -cpu qemu64 -display none -smp 2 \
-chardev socket,path=/tmp/qga.sock,server,nowait,id=qga0 \ -chardev socket,path=/tmp/qga.sock,server,nowait,id=qga0 \
-device e1000,netdev=net0 \
-netdev user,id=net0,hostfwd=tcp::${VM_PORT}-:22 \
-device virtio-serial \ -device virtio-serial \
-device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0 \ -device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0 \
-boot c -hda disk.qcow2 -serial telnet:localhost:4321,server,nowait & export QEMU_PID=$! -boot c -hda disk.qcow2 -serial telnet:localhost:4321,server,nowait & export QEMU_PID=$!
@ -232,19 +236,19 @@ jobs:
timeout 30m bash -c "while ! (grep 'login:' vm.stdout); do sleep 1; done" timeout 30m bash -c "while ! (grep 'login:' vm.stdout); do sleep 1; done"
export VM_IP=$({ echo '{"execute": "guest-network-get-interfaces"}'; sleep 2; } | socat unix-connect:/tmp/qga.sock - | jq -r '.return[1]["ip-addresses"][] | select(."ip-address-type"=="ipv4") | .["ip-address"]') if ! (echo > /dev/tcp/${VM_IP}/${VM_PORT})
if ! (echo > /dev/tcp/${VM_IP}/22)
then then
echo "SSH must be installed and enabled inside the container" echo "SSH must be installed and enabled inside the container"
fi fi
echo "VM ready for tests at IP ${VM_IP}" echo "VM ready for tests at IP ${VM_IP}:${VM_PORT}"
echo "Creating Ansible inventory" echo "Creating Ansible inventory"
cat << EOF > ansible_inventory cat << EOF > ansible_inventory
ungrouped: ungrouped:
hosts: hosts:
vm: vm:
ansible_host: ${VM_IP} ansible_host: ${VM_IP}
ansible_port: ${VM_PORT}
ansible_user: ${VM_USER} ansible_user: ${VM_USER}
ansible_password: ${VM_PASS} ansible_password: ${VM_PASS}
EOF EOF