Il fut fait sans correcteur orthographique et grammaticale, il est aussi fort probable que des images et liens soient indisponible.
Scale my BSD đĄ
Moi: Vous savez quoi�
Vous: Non, mais tu vas nous le dire !
Moi: En serveur, je préfÚre grandement un OpenBSD à un GNU/Linux
Vous: Et pourquoi donc ?
Moi: Pour pleins de raisons, comme son PF, HTTPD, SMTPD …
Vous: MouĂ©, enfin SMTPD il est aussi sur d’autres os, puis OpenBSD n’est pas disponible de base, et les solutions trouvĂ©es jusque-lĂ sur le net ne sont pas pratiques, et c’est compliquĂ© et blabla bla …
Je fais trop bien les questions et les rĂ©ponses avec moi-mĂȘme, quelle discussion constructive incroyable
[Musique de Rocky]
But
- *Installer un OpenBSD sur les serveurs x86 de chez scaleway
- **Pouvoir contrĂŽler l’Os depuis l’interface scaleway
- *Ne pas devoir passer par une manipe manuelle Ă chaque boot
- *Pouvoir en faire une image prés config à déployer
- **Que ça tourne sur les x86 des gammes Start/BareMetal/Pro
* C’est la win
** C’est la loose pour le moment
Observations
- Avec “fdisk -l” on constate une partission EFI
- Sans OS sur le disque, le serveur “hard reboot” puis passe en mode off
- En Ă©coutant le port 80 au boot on peut surprendre une discutions avec 169.254.42.42
xxx IP xxx > 169.254.42.42.http: Flags [P.], seq 1225680221:1225680383, ack 1681506505, win 229, options [nop,nop,TS val 6113219 ecr 329066878], length 162: HTTP
E...".@.@...
.B...**.z.PI.e]d9......!......
.]G...)~PATCH /state HTTP/1.1
Host: 169.254.42.42
User-Agent: curl/7.52.1
Accept: */*
Content-Type: application/json
Content-Length: 26
{"state_detail": "booted"}
17:13:11.459660 IP 169.254.42.42.http > xxx: Flags [P.], seq 1:164, ack 162, win 235, options [nop,nop,TS val 329067003 ecr 6113219], length 163: HTTP: HTTP/1.1 200 OK
E.....@.;.4...**
.B..P.zd9..I.e............
..)..]G.HTTP/1.1 200 OK
Server: Tengine
Date: Tue, 08 May 2018 17:13:11 GMT
Content-Type: text/plain
Content-Length: 20
Connection: keep-alive
STATE_DETAIL=booted
- Avec un petit
grep -rn
on trouve un script contenantSTATE_DETAIL
nommé scw-signal-state
Solution
- Créer un serveur x86 64 avec un volume 50G pour OpenBSD
- Installer qemu et Dl miniroot**.fs
- New VM miniroot**.fs et en utilisant le volume prévu
qemu-system-x86_64 -curses -drive file=miniroot**.fs -drive file=/dev/vdb -net nic -net user
- Installer OpenBSD comme vous voulez, sauf pour :
- IPv4 address for em0? (or ‘dhcp’ or ’none’) [dhcp]
- Change the default console to com0? [no] yes_(Pour utiliser la console en ligne)_
- Which disk is the root disk? (’?’ for details) [wd0] wd1
- Use (W)hole disk MBR, whole disk (G)PT or (E)dit? [whole] G (Partition GTP pour EFI)
- Installez BSD.mp affin d’Ă©tre en kernel MultiProcessor (il fonctionne aussi en sigle core)
- Ă la fin de l’install, copiĂ© le hostname pour l’interface vio0 (nom de l’interface des vps sous OpenBSD)
# cp /etc/hostname.em0 /etc/hostname.vio0
- Quand c’est fini on Ă©teint tout, on fait un snapshot du volume et crĂ©ation d’un nouveau serveur avec ce snapshot
- /*ATTENTION le serveur hard reboot aprĂšs quelques minutes, temps que l’on n’envoie pas la validation, pour finir en erreur */
- Une fois le serveur boot, il faut installer curl (et wget d’aprĂšs moi), puis mettre en place le script scw-signal-state (j’ai hĂ©bergĂ© les scripts, car je ne les ai pas trouvĂ©s en ligne)
# pkg_add curl wget
# wget https://git.iglou.eu/NonIgImport/Scaleway-scripts/raw/master/scw-signal-state
# chmod +x scw-signal-state
# scw-signal-state booted
- puis vous l’ajouter a cron ou rc.local ex: https://git.iglou.eu/NonIgImport/Scaleway-scripts/raw/master/rc.local
- Vous pouvez Ă©teindre le serveur et OpenBSD afin de faire un snapshot stable.
- Si le signal n’est pas envoyĂ©, peut-ĂȘtre que votre PATH est mal renseignĂ©, un petit “whereis curl” pour vĂ©rifier ça.
- S’il est impossible de rĂ©soudre les noms de domaines, modifiez votre /etc/resolv.conf en ajoutant par ex le name serveur de google 8.8.8.8. Le temps de fixer ça plus tard
Ă ce moment-lĂ , vous pouvez rĂ©aliser une image d’installation dans votre interface avec le snapshot prĂ©cĂ©demment crĂ©e.
Vous trouverez ici : https://git.iglou.eu/NonIgImport/Scaleway-scripts/tree/master le repos ou j’ai upload deux scripts scw-*, celui qui envoie le “booted” et un autre qui vous renvois toutes les informations relatives au serveur. J’ai aussi mis une version modifiĂ©e de scw-signal-state, qui fait un loop temps qu’elle n’a pas pu effectuer l’envoi du signal, car j’avais de temps en temps un signal envoyĂ© avant que le serveur soit connectĂ©.
Et ça ne fonctionne que sur la gamme start, donc un petit fail quand mĂȘme !
Pour les serveurs BareMetal et Pro, n’ayant pas la possibilitĂ© dâaccĂ©der au local boot, grub ou iPXE … Ce n’est pas gagnĂ©. Mais je reste en recherche !
Rien ne devrait empĂȘcher cette “technique” de fonctionner avec n’importe quel Os.
Si vous avez des questions ou des améliorations à me proposer, je reste disponible :)
Ă©a, les amis.