Blog.Iglou.eu

/ Home / 

[Scaleway] Avoir un OpenBSD (ou autre) sur les serveurs Scaleway

Cet article est issu d’une importation historique.
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

Image de presentation
Je ne suis pas aussi confiant que Barney pour le coup…

[Musique de Rocky]

But

* C’est la win
** C’est la loose pour le moment

Observations

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

Solution

  1. Créer un serveur x86 64 avec un volume 50G pour OpenBSD
  2. Installer qemu et Dl miniroot**.fs
  3. 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
  4. 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
  5. Quand c’est fini on éteint tout, on fait un snapshot du volume et création d’un nouveau serveur avec ce snapshot
  6. /*ATTENTION le serveur hard reboot après quelques minutes, temps que l’on n’envoie pas la validation, pour finir en erreur */
  7. 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)
  8. Vous pouvez éteindre le serveur et OpenBSD afin de faire un snapshot stable.

À 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é.

Image de presentation

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.