Environnement de développement CoreOS avec Vagrant et VirtualBox

Suivre les instructions de CoreOS sur la façon de configurer un environnement de développement dans VirtualBox n’a pas bien fonctionné pour moi. Voici les étapes que j’ai suivies pour que Container Linux fonctionne avec Vagrant.

J’ai commencé par lire les instructions sur le site Web de CoreOS mais celles-ci se sont avérées trop compliquées et, parfois, inexactes. Je me suis ensuite tourné vers le fichier README du dépôt officiel qui contenait les informations dont j’avais besoin pour que tout fonctionne. Cependant, trouver des informations spécifiques nécessite de lire la plupart des paragraphes deux ou trois fois.

Cet article a pour but de fournir un guide court et minimaliste afin de mettre en place un environnement de développement CoreOS fonctionnel.

Clonez le projet GitHub

Pour commencer, clonez le dépôt coreos/coreos-vagrant depuis Github :

Une fois le projet cloné, déplacez vous dans le dossier du projet :

Ajustez la configurations Vagrant

Le Vagrantfile est écrit afin qu’il lise un fichier config.rb pour tous les paramètres utiles. Le dépôt contient un fichier config.rb.sample que vous pouvez utiliser pour créer votre fichier config.rb :

Ouvrez le fichier config.rb avec votre éditeur de texte favori et modifiez la variable $num_instances pour définir le nombre de nœuds dans votre cluster CoreOS. Si vous voulez 3 nœuds, indiquez $num_instances=3 .

Plus bas dans le fichier, vous pouvez modifier d’autres variables pour personnaliser les ressources des VM, les ports redirigés, les dossiers partagés, et cetera, mais c’est complètement facultatif.

Obtenez un jeton de découverte etcd

Pour que les différents nœuds de votre cluster puissent être configurés pour communiquer correctement entre eux, vous avez besoin du jeton de découverte (discovery token) etcd. Vous pouvez en obtenir un à https://discovery.etcd.io/new?size=X  où X est le nombre de nœuds dans votre cluster.

Voici à quoi le résultat devrait ressembler (avec un jeton différent à la fin) :

Note: Vous devrez recommencer après chaque vagrant destroy.

Générez votre configuration Ignition

Les systèmes CoreOS sont créés à l’aide de Ignition, vous devez donc générer votre fichier un configuration Ignition.

Pour ce faire, vous devez installer Container Linux Config Transpiler. La plupart des distributions ont un paquet ct et, si comme moi vous utilisez Arch Linux, vous pouvez installer le paquet AUR avec yaourt:

Le dépôt coreos-vagrant fournit un fichier cl.conf que vous pouvez éditer puis transpiler en une configuration Ignition valide pour cet environnement Vagrant.

Ouvrez le fichier cl.conf dans l’éditeur de votre choix et recherchez la ligne commençant par discovery:. Vous devez remplacer l’URL sur cette ligne par celle contenant votre jeton de découverte etcd. La ligne devrait ressembler à ceci:

Enregistrez votre fichier cl.conf puis utilisez ct pour générer votre fichier de configuration Ignition config.ign.

Note: Vous devrez recommencer après chaque vagrant destroy.

(Optionnel) Utilisez la dernière version stable de CoreOS

Par défaut, le fichier Vagrantfile créera des machines virtuelles basées sur la dernière version alpha de CoreOS Container Linux. Si vous souhaitez utiliser la dernière version stable, remplacer tout mention de alpha par stable dans votre Vagrantfile.

À l’origine, ce déôt prenait en charge la variable $update_channel dans config.rb, mais celle-ci a été temporairement supprimée, ce qui crée une incompatibilité avec la documentation officielle. Les responsables du projet apportent des changements qui rendent l’utilisation de cette variable quelque peu risquée; ils l’ajouteront à nouveau une fois que tout sera stable. Si la variable est présente lorsque vous lisez ceci, vous pouvez simplement la définir en stable au lieu d’utiliser la commande ci-dessus.

Montez votre cluster

Vous pouvez maintenant créer votre cluster.

Une fois le cluster créé, connectez-vous à votre premier noeud.

Le service etcd-member doit être en marche.

Définissez un clé dans etcd.

Si la découverte etcd s’est déroulée correctement, vous devriez être capable de lire la valeur de la clé depuis tous vos nœuds.

Commnencez à utiliser votre cluster

Votre cluster est prêt.

Vous disposez maintenant d’un cluster CoreOS Container Linux fonctionnel pour faire vos tests. Chaque noeud a été configuré et activé. Amusez-vous bien !

Notes

Après avoir préparé cet article, j’ai ouvert une Pull Request pour mettre à jour la configuration afin qu’elle corresponde à la documentation officielle. Elle est toujours en attente.

Par |2018-06-21T11:03:50+00:00June 20th, 2018|Conteneur, DevOps|0 commentaire

À propos de l'auteur :

Laisser un commentaire