CoreOS

Critères requis :
  • Vous avez un compte sur console.online.net
  • Vous avez un serveur dédié Dedibox
  • Vous avez lancé l'installation de CoreOS depuis la console de gestion

CoreOS est une distribution intégrant par défaut plusieurs outils permettant la gestion et le déploiement de containers via Docker.

Connexion

Après l'installation, il est possible de vous connecter à CoreOS via ssh sur l'utilisateur core qui est accessible grâce à la clé ssh que vous avez indiqué lors de l'installation. L'utilisateur core n'a pas de mot de passe par défaut.

$ ssh <userid>@sd-xxxxx.dedibox.fr

Vous pouvez également vous connecter à l'utilisateur indiqué lors de l'installation en utilisant la même clé ssh ou le mot de passe saisi.

Vous pouvez obtenir les droits root via la commande sudo.

Gestionnaire de paquets

CoreOS n'est pas fourni avec un gestionnaire de paquets, mais la commande toolbox permet d'obtenir un container basé sur Fedora bénéficiant de tout les droits systèmes et d'un gestionnaire de paquet yum.

Le système de fichier accessible en lecture et en écriture est monté dans le chemin /media/root/.

Les paquets que vous installerez via toolbox ne seront pas installés sur le système, mais resteront accessibles via la commande toolbox.

Pour plus d'informations: Install Debugging Tools

Édition du cloud-config

L'installation et la configuration de CoreOS se fait en partie grâce au fichier cloud-config.yaml qui est parsé à chaque démarrage de CoreOS.

Il est possible d'éditer le fichier cloud-config après l'installation afin de modifier la configuration de CoreOS.

Le fichier est situé au chemin suivant: /var/lib/coreos-install/user_data

CoreOS fournit par défaut vi et vim comme éditeurs de texte, vous pouvez en utiliser un autre via la commande toolbox (voir plus haut).

Pour plus d'informations sur cloud-config.yaml: Using Cloud-Config

Il est recommandé de valider le fichier yaml après édition: Cloud-Config Validator

Configuration réseau

Les interfaces réseaux sont automatiquement configurées en DHCP.

L'adresse IP publique est configurée sur eno1 et votre adresse RPN, si vous en avez configurée une, sur eno2. L'interface RPN sera automatiquement configurée si vous l'activez après l'installation de CoreOS, il n'y a pas de modification à faire.

L'édition de la configuration réseau se fait via l’utilitaire networkd.

Vous pouvez consulter la documentation de CoreOS ainsi que celle de nerworkd.

Branches et mises à jour

Les clients de Managed Linux ont accès à CoreUpdate.

Sans CoreUpdate, les mises à jours sont automatiques, CoreOS utilise Omaha afin de déployer les mises à jour sur une autre partition, lors du reboot, le système est monté sur cette partition ou sur l'ancienne en cas de problème.

Par défaut, CoreOS appliquera les mises à jour et redémarrera lorsque cela est nécessaire. Il est possible de modifier les stratégies de mise à jour de CoreOS en éditant le fichier cloud-config (voir plus haut) ou en modifiant le fichier /etc/coreos/update.conf si aucune configuration de la mise à jour n'est présente dans le fichier cloud-config (ce qui est le cas par défaut).

  • GROUP=stable

Cette option permet de modifier la branche de mise à jour vers stable, beta ou alpha afin de réaliser des tests.

  • REBOOT_STRATEGY=best-effort

Cette option permet de modifier la stratégie lors de la mise à jour de CoreOS, les options disponibles sont best-effort (défaut), etcd-lock, reboot ou off (désactive le reboot automatique).

La prise en compte des modifications se fait en relançant le service de mise à jour via cette commande :

$ sudo systemctl restart update-engine

Pour plus d'informations : Update Strategies, Our Update Philosophy, Switching Release Channels

Clusters

La puissance de CoreOS réside dans la configuration simple de clusters de plusieurs serveurs.

L'exemple de configuration donné ici se fera en modifiant le fichier cloud-config (voir plus haut).

Il est très fortement recommandé d'avoir configuré vos interfaces RPN afin que les machines de votre cluster communiquent entre elles sur le réseau privé, dans le cas contraire il sera nécessaire de sécuriser les connexions à etcd, pour plus d'informations : Reading and Writing over HTTPS.

Premièrement, vous aurez besoin d'un token de synchronisation que vous obtiendrez via cette commande:

$ curl -w "\n" https://discovery.etcd.io/new
https://discovery.etcd.io/6a28e078895c5ec737174db2419bb2f3

Éditez ensuite le fichier cloud-config (voir plus haut), afin d'y ajouter cette configuration:

coreos:
    etcd:
        discovery: https://discovery.etcd.io/<token>
        addr: ADDR_RPN:4001
        peer-addr: ADDR_RPN:7001
    units:
        - name: etcd.service
          command: start
        - name: fleet.service
          command: start

Remplacez l'url discovery par celle que vous avez obtenu précédemment, et ADDR_RPN par l'adresse IP RPN de votre machine.

Redémarrez pour la prise en compte des modifications, le cluster se formera automatiquement au démarrage de vos machines, vous pouvez ajouter ou enlever dynamiquement des machines de votre cluster simplement en éditant le fichier cloud-config et en redémarrant.

Pour vérifier que votre cluster est bien formé, la commande suivante permet de lister les machines :

$ fleetctl list-machines

Pour plus d'informations : CoreOS Cluster Discovery, CoreOS Cluster Architectures, Getting Started with etcd

Fleet

Fleet est un système d'init distribué permettant de configurer le démarrage des services au sein d'un cluster de serveur.

Basé sur systemd, il permet de déployer des services au sein d'un cluster selon plusieurs niveaux de disponibilité.

Couplé à docker, les possibilités sont nombreuses et la documentation officielle couvre un grand nombre d'usages possibles.

Pour plus d'informations : Launching Containers with fleet, Getting Started with systemd

Mode rescue

Lorsque votre serveur est en mode rescue, vous pouvez accéder à la partition root du système en montant le volume /dev/sda9, vous pouvez éditer le fichier cloud-config lors d'un rescue (voir plus haut), les modifications seront prises en compte au démarrage de CoreOS.