CoreOS, ou plutôt Container Linux by CoreOS, est un système d'exploitation basé sur le noyau Linux et est dédié à la conteneurisation.

Ici pas de superflu, l'OS n'embarque que ce qui est nécessaire pour faire fonctionner Docker et RKT, l'alternative à Docker proposée par CoreOS.

Malheureusement, sur la gamme des VPS d'OVH, CoreOS ne fait pas partie de la liste des OS directement installables.

Cet article va vous indiquer comment résoudre ce problème.

Création du VPS

La première étape consiste à créer normalement le VPS (Virtual Private Server).

Lors de la commande de votre VPS, choisissez le système d'exploitation Linux, puis Système d'exploitation seul, et l'un des systèmes proposé (cela n'a pas d'importance).

Une fois la commande passée et le VPS installé (cela prend quelques minutes), vous pourrez le retrouver sur votre espace client, à l'onglet Cloud. Redémarrez le en mode Rescue.

Vous allez recevoir un mail avec les instructions de connexion.

Installation de CoreOS

Il est temps de passer à l'installation de CoreOS. Cela va se faire en 3 étapes : la préparation de l'installation, celle du fichier de provision et l'installation à proprement dite.

Préparation de l'installation

Connectez vous au VPS en mode Rescue.

ssh root@<ip-du-vps>

Récupérez l'installeur de CoreOS et changez ses permissions.

wget https://raw.githubusercontent.com/coreos/init/master/bin/coreos-install
chmod u+x coreos-install

Installez le paquet bzip2, requis par l'installeur.

apt-get update && apt-get install bzip2

Localisez le disque sur lequel vous allez installer CoreOS.

lsblk

Cela va donner quelque chose comme :

root@rescue-pro:~# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  2.5G  0 disk 
└─sda1   8:1    0  2.5G  0 part /
sdb      8:16   0   20G  0 disk 
└─sdb1   8:17   0   20G  0 part /mnt/sdb1

Ici le disque de 20 Go du VPS est /dev/sdb.

Enfin démontez la partition du disque qui va servir à l'installation de CoreOS.

umount /mnt/sdb1

Fichier de provision

L'installation de CoreOS nécessite qu'un fichier de provision soit fourni. Ce fichier contient les instructions permettant d’automatiser la configuration de l'OS.

Téléchargez le fichier ignition.json et adaptez le en y insérant votre clé SSH publique (quelque chose qui ressemble à ssh-rsa AAAA............... mail@domain.tld).

  "passwd": {
    "users": [
      {
        "name": "core",
        "sshAuthorizedKeys": [
          "<INSEREZ ICI VOTRE CLE SSH PUBLIQUE>"
        ]
      }
    ]
  },

Uploadez le sur le VPS et n'oubliez pas le ":" à la fin de la commande ;)

scp ignition.json root@<ip-du-vps>:

Remarque : le fichier ignition.json mis à disposition permet de créer l'utilisateur par défaut core avec votre clé SSH publique, et permet à CoreOS de rebooter suite à une mise à jour dans la plage horaire de 4h à 5h.

Il a été généré avec le transpiler disponible à l'adresse https://github.com/coreos/container-linux-config-transpiler à partir du fichier container_linux_config.yml.

Vous pouvez fabriquer vous même un fichier ignition.json plus adapté à vos besoins : https://www.latechniquedelours.xyz/coreos-creer-le-fichier-ignition-json/

Installation de CoreOS

Il ne reste plus qu'à installer CoreOS. C'est très simple, il suffit de lancer la commande suivante et d'attendre quelques minutes. Attention, il faut remplacer /dev/sdb par le disque dur que vous avez trouvé via la commande lsblk.

./coreos-install -d /dev/sdb -C stable -i ignition.json

Si tout s'est bien passé vous devriez avoir quelque chose comme :

Current version of CoreOS Container Linux stable is 2023.5.0
Downloading the signature for https://stable.release.core-os.net/amd64-usr/2023.5.0/coreos_production_image.bin.bz2...
2019-04-11 17:08:51 URL:https://stable.release.core-os.net/amd64-usr/2023.5.0/coreos_production_image.bin.bz2.sig [566/566] -> "/tmp/coreos-install.2Ly9BSmHjs/coreos_production_image.bin.bz2.sig" [1]
Downloading, writing and verifying coreos_production_image.bin.bz2...
2019-04-11 17:11:15 URL:https://stable.release.core-os.net/amd64-usr/2023.5.0/coreos_production_image.bin.bz2 [402501352/402501352] -> "-" [1]
gpg: Signature made Sat 09 Mar 2019 02:00:27 UTC
gpg:                using RSA key 4D7241B14AA234234515D6A8D7FB32ABC0638EB2F
gpg: key 50E0778644D2DCB2 marked as ultimately trusted
gpg: checking the trustdb
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: Good signature from "CoreOS Buildbot (Offical Builds) <buildbot@coreos.com>" [ultimate]
Installing Ignition config ignition.json...
Success! CoreOS Container Linux stable 2023.5.0 is installed on /dev/sdb

Il ne vous reste plus qu'à redémarrer le VPS depuis l'interface de gestion du serveur.

Et à vous connecter dessus pour avoir un environnement prêt à accueillir vos conteneurs. Pratique pour monter rapidement un serveur de démo !

ssh core@<ip-du-vps>

docker run hello-world

À bientôt !

Liens utiles

https://coreos.com/os/docs/latest/installing-to-disk.html

https://www.ovh.com/fr/vps/vps-ssd.xml