Last active
August 3, 2025 00:21
-
-
Save kvaps/28de23484cbe4b97022c7a68b83570c2 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
wget https://dl-cdn.alpinelinux.org/alpine/v3.22/releases/x86_64/alpine-standard-3.22.1-x86_64.iso | |
qemu-img create -f qcow2 alpine.qcow2 8G | |
qemu-system-x86_64 -m 512 -nic user -boot d -cdrom alpine-standard-3.22.1-x86_64.iso -hda alpine.qcow2 -nographic -enable-kvm -cpu host | |
======================== | |
setup-alpine | |
poweroff | |
======================== | |
qemu-system-x86_64 -m 512 -nic user,hostfwd=tcp::50000-:50000 -hda alpine.qcow2 -nographic -enable-kvm -cpu host | |
======================== | |
sed -i '/community$/ s/^#//' /etc/apk/repositories | |
apk add docker | |
service docker start | |
========================= | |
cat > Dockerfile <<\EOT | |
FROM ghcr.io/cozystack/cozystack/talos:v1.10.3 | |
COPY --from=busybox:musl /bin/* /bin/ | |
EOT | |
docker build -t ghcr.io/cozystack/cozystack/talos:v1.10.3-with-busybox . | |
docker run --name installer --privileged -d -v /dev:/dev --entrypoint sleep ghcr.io/cozystack/cozystack/talos:v1.10.3-with-busybox infinity | |
docker exec -i installer sh -es <<EOT | |
echo 'talos.platform=metal console=ttyS0' > /tmp/c | |
mount --bind /tmp/c /proc/cmdline | |
EOT | |
IP=$(ip -o -4 route get 8.8.8.8 | awk -F"src " '{sub(" .*", "", $2); print $2}') | |
GATEWAY=$(ip -o -4 route get 8.8.8.8 | awk -F"via " '{sub(" .*", "", $2); print $2}') | |
ETH=$(ip -o -4 route get 8.8.8.8 | awk -F"dev " '{sub(" .*", "", $2); print $2}') | |
CIDR=$(ip -o -4 addr show "$ETH" | awk -F"inet $IP/" '{sub(" .*", "", $2); print $2; exit}') | |
NETMASK=$(echo "$CIDR" | awk '{p=$1;for(i=1;i<=4;i++){if(p>=8){o=255;p-=8}else{o=256-2^(8-p);p=0}printf(i<4?o".":o"\n")}}') | |
DEV=eth0 | |
fallocate test.raw -l 5G | |
loopdev=$(losetup -f) | |
losetup "$loopdev" test.raw | |
docker exec -i installer installer install --platform metal --disk "$loopdev" --force --extra-kernel-arg=ip=${IP}::${GATEWAY}:${NETMASK}::${DEV}::::: <<\EOT | |
version: v1alpha1 | |
machine: | |
ca: | |
crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJQakNCOGFBREFnRUNBaEIrWU84MzlKT2Z5ZElsT25YOG1Zc0xNQVVHQXl0bGNEQVFNUTR3REFZRFZRUUsKRXdWMFlXeHZjekFlRncweU5UQTRNREl4TkRFNE5URmFGdzB6TlRBM016RXhOREU0TlRGYU1CQXhEakFNQmdOVgpCQW9UQlhSaGJHOXpNQ293QlFZREsyVndBeUVBRXlBZkZXWFM1V1FGb2tRc0kzOHNQR3FsRmt0ditvOUFqL0F3Cjl5T0ZaUXVqWVRCZk1BNEdBMVVkRHdFQi93UUVBd0lDaERBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFRWUkKS3dZQkJRVUhBd0l3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFkQmdOVkhRNEVGZ1FVcnVEdkVjVjBHMEhiNjZtegpRemIwWCtVUVBGMHdCUVlESzJWd0EwRUFOUWtZVUdCV0RMR1ltckh6cTlLTGhhTSt3MWNOckkwSWltaXkzOSthCjRZSjkyN0xuS0srWXFOai8ySjFpdlBkUklPb2tjQ1ZiZjMvT294RHVrUUlyQUE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== | |
install: | |
disk: /dev/sda | |
cluster: | |
controlPlane: | |
endpoint: https://localhost:6443 | |
EOT | |
losetup -d "$loopdev" | |
docker stop installer -t 0 | |
docker rm installer | |
dd if=test.raw of=/dev/sda bs=4M conv=fsync && echo b > /proc/sysrq-trigger | |
===================== | |
talosctl -e 127.0.0.1 -n 127.0.0.1 get rd -i |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment