Guide: utiliser Alpine Linux comme rescue avec un script iPXE personnalisé

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) :

#!ipxe

echo 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.net

To 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}AAAAxxxxxxxxxx

set 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

Hello,

Merci beaucoup pour le partage 🔥

^FabL