Les machines à architecture ARM sont maintenant très répandues, des appareils mobiles aux serveurs en passant par les machines embarquées, poussées par la « révolution IoT » (Internet of Things Revolution, l’Internet des objets connectés). Une bonne partie de ces machines utilise un système d’exploitation classique (distribution GNU/Linux, etc.) et les problématiques habituelles de gestion d’infrastructure se posent : supervision, gestion de configuration, etc.
Suite à la sortie d’une version de l’agent RUDDER pour Raspberry Pi, nous allons aborder la gestion de configuration et de l’audit de conformité sur des machines présentant des contraintes liées à ces cas d’utilisation :
- faible puissance des machines ;
- latence réseau importante, réseaux potentiellement isolés ;
- consommation réseau limitée.
Sommaire
RUDDER est une solution libre et multi‐plate‐forme de gestion de configuration et d’audit en continu (Continuous Configuration), visant particulièrement les besoins d’infrastructure de production. Vous pouvez trouver une présentation plus détaillée dans la dépêche de sortie de la version 4, ou sur le site Web du projet.
Problématiques
Au‐delà d’une utilisation domestique, quand ces machines sont utilisées à plus grande échelle (IoT, etc.) des problématiques de gestion d’infrastructure se posent : sécurité, supervision, déploiement, etc. Les solution utilisées sur des serveurs ne sont pas forcément adaptées à ce nouveau contexte.
Faible puissance
Au vu de la faible puissance des machines, les outils de gestion doivent être légers et ne pas accaparer les ressources. Ainsi, certains outils utilisés habituellement sur des serveurs plus puissants ne sont pas adaptés.
Réseau limité
Contrairement à un environnement datacenter, les machines embarquées ont souvent accès à un réseau de qualité variable, parfois très limité en volume (réseaux mobiles de type 3G/4G), voire pas d’accès au réseau pendant des périodes plus ou moins longues. Il faut donc plutôt limiter la consommation réseau et accepter une remontée d’information moins précise.
Un outil de gestion de configuration autonome, basé sur un agent, permettra d’appliquer la configuration même en cas de déconnexion, ce qui ne serait pas possible avec un outil ne disposant pas d’agent ou avec un agent piloté depuis le serveur.
Sécurité
L’utilisation d’un outil de gestion de configuration et d’audit donne la capacité de mettre à jour les programmes et la configuration rapidement et à distance.
Utilisation de RUDDER
Installation
RUDDER utilise un agent installé sur chaque machine gérée pour assurer la configuration et la conformité en permanence. Un agent pour Raspbian Jessie est disponible en test et sera officiellement supporté par la suite ; l’équipe de développement est preneuse de retours concernant son utilisation.
Il faut évidemment avoir un serveur RUDDER installé (documentation d’installation), l’agent s’installe simplement sur Raspberry Pi 3 (avec Raspbian Jessie) par les commandes :
wget https://www.rudder-project.org/temporary/rudder-agent_4.1.6-0_armhf.deb
dpkg -i rudder-agent_4.1.6-0_armhf.deb
Cet agent est compatible ARMv7, une documentation est disponible pour le compiler soi-même sur d’autres environnements.
Configuration
Nous pouvons configurer une politique à appliquer à notre agent. L’installation permet de gérer des composants de base du système (utilisateurs, clefs et serveur SSH, etc.), l’éditeur de techniques permet de développer simplement de nouvelles politiques de configuration sans avoir à apprendre le langage sous‐jacent :
Certaines options peuvent se révéler utiles dans un contexte d’IoT, comme :
- passer en mode « Non‐conformités uniquement » pour la remontée des rapports de l’agent, pour n’envoyer que les changements et les erreurs, et se passer des rapports corrects, permettant de diminuer fortement la consommation réseau. En cas d’absence d’événement à envoyer, l’agent produira un heartbeat régulièrement pour faire la différence avec un nœud non accessible ;
- la fréquence d’exécution, par défaut à cinq minutes, peut être réduite jusqu’à six heures ;
- dans le cas de réseaux séparés, il peut être judicieux d’utiliser des serveurs relais. Ils permettent de centraliser les flux d’un ensemble de machines vers le serveur central et donc de réduire les problèmes réseau en se rapprochant des machines gérées.
Nous pouvons maintenant appliquer la configuration à notre machine et mesurer la consommation de ressources :
- la mise à jour des politiques de configuration consomme autour de deux kilo‐octets quand il n’y a pas eu de changement de configuration cible, et environ 45 kilo‐octets quand une mise à jour est nécessaire. La remontée des rapports d’exécution représente quelques kilo‐octets (plus s’il y a de nombreux changements). Ainsi, passée une phase de configuration initiale qui peut générer un trafic plus important, l’agent consomme très peu de volume réseau ;
- la mémoire consommée (RSS) lors de l’exécution se situe autour de 20 Mio ;
- un cœur est utilisé, pour une durée de 10 secondes à 40 secondes pour une cinquantaine de composants vérifiés ou configurés ;
- l’agent utilise au total autour de 120 Mio d’espace disque, qui pourraient encore être réduits par l’utilisation d’un paquet embarquant moins de dépendances (nommé rudder-agent-thin, pas encore disponible sur ARM pour l’instant).
Les rapports d’exécution sont envoyés au serveur, qui nous fournit un calcul de conformité :
Avec possibilité de rentrer dans les détails :
Conclusion
L’équipe de développement de RUDDER est preneuse de vos avis, qu’ils concernent les besoins de gestion d’infrastructure sur des GNU/Linux embarqués/IoT, ou plus particulièrement sur l’utilisation de notre nouvel agent dans ce contexte !
La prise en charge va continuer à s’améliorer à l’avenir, avec plus de système d’exploitation gérés sur ARM et plus d’architectures (notamment AArch64).
Pour en savoir plus et tester RUDDER, vous pouvez :
- consulter la démo complète en vidéo sur YouTube ;
- vous connecter à la démo en ligne pour découvrir l’interface (mais elle ne vous permettra pas d’appliquer de configuration) ;
- utiliser l’environnement de démonstration basé sur Vagrant pour tester facilement l’application de configuration sur un environnement réel ;
- installer RUDDER en utilisant les paquets fournis et en suivant la documentation d’installation ;
- venir discuter et poser vos éventuelles questions directement à l’équipe de développement et à la communauté RUDDER par courriel, sur IRC ou sur Twitter ;
- venir participer à un atelier de découverte d’une journée ; c’est ce que l’on appelle les Journées d’Introduction RUDDER, et la prochaine aura lieu dans les locaux de Normation à Paris le 19 octobre prochain. Inscrivez‐vous et bénéficiez d’un rabais de 50 % avec le code de réduction
LINUXFR
.
Aller plus loin
- Site officiel du logiciel libre RUDDER (791 clics)
- Atelier de découverte pratique de RUDDER le 19 octobre prochain (202 clics)
- Démo complète en vidéo (301 clics)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.