Bonjour tout le monde,
J'ai écrit un script iPXE (basé sur celui de netboot.xyz) pour démarrer un rescue Alpine Linux. L'intérêt principal, comparé au menu de netboot.xyz, est de pouvoir spécifier directement une clef SSH. Ce qui rend le script utilisable même sans console KVM. C'est aussi très pratique de pouvoir préinstaller les paquets qui nous intéressent.
Pour utiliser le script, il suffit de suivre la documentation sur les scripts iPXE personnalisés.
Je mets le contenu actuel du script (il est possible que je mette à jour le gist par la suite) :
#!ipxeecho Booting Alpine Linux rescue
Used below for SSH keys
set space:hex 20
set space ${space:string}
set arch x86_64#set version edge
set version latest-stable
#set mirror https://dl-cdn.alpinelinux.org/alpine
set mirror https://alpinelinux.mirrors.ovh.netTo see the whole boot process, adjust the console parameters based on what
you see in the official rescue's /proc/cmdline
#set console console=tty0${space}console=ttyS0,115200n8
Enable the community repository for ripgrep
set repo-url ${mirror}/${version}/main,${mirror}/${version}/community
set packages bash,curl,file,lsblk,mount,parted,ripgrep,vim,wget
set ssh_key ssh-ed25519${space}AAAAxxxxxxxxxxset base-url ${mirror}/${version}/releases/${arch}/netboot
imgfree
kernel ${base-url}/vmlinuz-lts initrd=initrd.magic ${console} ip=dhcp alpine_repo=${repo-url} modules=loop,squashfs modloop=${base-url}/modloop-lts pkgs=${packages} ssh_key="${ssh_key}"
initrd ${base-url}/initramfs-lts
boot
On a un OS très léger qui fonctionne même sur des serveurs avec seulement 2 Go de RAM :
localhost:~# free -h
total used free shared buff/cache available
Mem: 1.9G 52.6M 1.6G 262.5M 296.8M 1.5G
Swap: 0 0 0