"Nous ne sommes pas des programmeurs, nous sommes des administrateurs système"
La façon dont les temps ont changé a été pire: on s'attendait à ce qu'un gris comme moi soit un meilleur programmeur que les programmeurs professionnels, sans quoi il n'aurait jamais pu passer pour un administrateur système .
Nous avons maintenant des «administrateurs système», qui sont essentiellement des utilisateurs de bureau Windows qui ont été convertis à un moment donné sous Linux et qui ne peuvent pas programmer, et qui ne trouvent absolument aucun problème avec cela.
L’éléphant dans la pièce est la raison pour laquelle la direction tolère une telle attitude destructrice. Destructif à qui ou quoi? Pour l'entreprise et l'infrastructure.
Revenons à l’objet Puppet [, CFEngine, Chef]: dès que l’on installe une solution comme celle-ci, on perd. Tout le monde perd. Pourquoi? Parce que quiconque a eu cette idée n’est pas capable de concevoir une gestion de la configuration encapsulée sous forme de packages de système d’exploitation agréables et propres, Kickstart [, JumpStart, Installation automatisée, AutoYaST, Ignite-UX, NIM]. Lorsque vous devez utiliser un outil de piratage automatisé tel que Puppet (ou Chef ou CFEngine), vous ne disposez pas des moyens nécessaires pour concevoir et mettre en œuvre un processus qui, par cette même conception, imposerait des systèmes totalement gérés de manière totalement vierge et illimitée. automatisé et complètement non interactif.
Un autre point important est, si vous devez avoir des marionnettes ou d' une telle solution pour corriger quelqu'un de piratage du système ou la configuration de l' application à la main, qui remonte aussi à ne pas avoir l'expérience pour concevoir un processus, et dans ce processus un cadre dans lequel la configuration est emballé en composants discrets. En effet, quiconque implémente Puppet ou autre, n'a aucun concept de propriétaires de composants, de versions, de gestion de la configuration, de modèle de maturité de capacité. Cela devient rapidement un problème très grave dans l'industrie.
Travailler avec Puppet m'a également aidé à apprendre Ruby, qui est venu remplacer Bash comme langage par défaut pour mes outils système. "
Pourquoi Ruby est-il nécessaire, alors qu'une gestion complète de la configuration de bout en bout peut être encapsulée dans les sections preinstall, postinstall, preremove et posttremove des packages du système d'exploitation, en utilisant simplement les programmes Bourne Shell, AWK et sed? Il est absolument inutile que quelqu'un approfondisse l'apprentissage d'une langue ésotérique de Ruby et de son dialecte dans le contexte de Puppet. Le problème de la gestion de la configuration est facilement résolu (et a été résolu) avec les programmes shell et AWK, et un peu sed (1) ici et là comme une colle.
C'est un sentiment génial de voir votre manifeste de marionnettes configurer une machine complète ou un nouveau service à partir de zéro.
C’est encore plus cool de le faire avec Kickstart, AutoYaST ou JumpStart, sans une seule ligne de code , et d’interroger le système d’exploitation à l’aide d’outils intégrés, sans avoir besoin de logiciel ésotérique ou supplémentaire , sans client-serveur. l’architecture requise (SSH, c’est plus que bien, beaucoup plus que bien) et de voir votre système d’exploitation connaître chaque modification apportée.
5. code séparé des données. C'est l'un des concepts les plus difficiles à apprendre. Les valeurs codées en dur, telles que la surveillance des hôtes dans le code de votre module, sont mauvaises. Les placer dans un magasin de données (db, yaml (que Hiera utilise par défaut), csv, peu importe) que vos modules peuvent consommer est bon. Un exemple est une application Web qui utilise Mysql. Cela permet de pousser le code et les données séparément. Cela simplifie votre processus de développement.
... Ou vous pouvez simplement modéliser vos fichiers de configuration avec des variables shell, même des cotes en arrière (par exemple ls -1 ...
) et écrire un script shell qui utilise AWK pour appeler eval (1) et développer toutes les variables du modèle, exploitant ainsi la même puissance puissante. analyseur dont les coquilles ont intégré. Pourquoi le rendre complexe, alors que cela peut être vraiment, vraiment simple? Où allez-vous stocker les valeurs de configuration? Pourquoi, n’importe où, par exemple des fichiers pkginfo (4), ou une base de données telle que Oracle, ou à peu près n’importe où . Pas besoin de solutions ultracomplexes. La bibliothèque que je mentionne ci-dessus pourrait simplement provenir des sections de pré-installation ou de post-installation des packages du système d'exploitation, supprimant ainsi la duplication et exploitant un élément de code central ...
Mais avant tout, je trouve que la citation ci-dessus est un exemple de la prochaine génération d’administrateurs système ayant besoin d’un tutorat, non pas d’administrateurs système, mais d’ ingénieurs système . Trouvez-vous un barbe et ouvrez une session en tant qu'apprenti.