[FRsAG] Gestion de configuration de postes/serveurs Windows et Linux

DUVERGIER Claude frsag.ml at claude.duvergier.fr
Lun 1 Juil 02:43:50 CEST 2019


Bonjour,

<Historique et contexte>

<tldr>
Configurer postes de travail et serveurs Windows et Linux via des
scripts PowerShell/Bash c'est bof.
</tldr>

En charge d'un parc hétérogène de postes de travail Windows (7, 8, 10)
et de quelques Ubuntu je suis à la recherche d'un unique outil me
permettant d'appliquer des règles de configuration (compte
Administrateur/root, logiciels/packages installés, etc.) sur les postes
Et comme je gère aussi des serveurs Linux : l'outil servira également à
ça (en ré-utilisant certaines règles des poste Ubuntu).

Actuellement, vu qu'on (re-)installe beaucoup plus de postes Windows que
d'Ubuntu : on a déjà un script PowerShell basé sur Boxstarter[1] et
Chocolatey mais il a les lacunes suivantes :

* Doit être mis à jour quand Microsoft change certains comportements de
  Windows (gestion des certificats, des utilisateurs, etc.).
* N'a pas de moyen d'être re-exécuté pour défaire ce qu'un utilisateur
  aurait changé (ou Windows lors d'une MAJ) ou pour appliquer/déployer
  un changement de configuration (modification de la longueur de mot de
  passe, nouveau logiciel, etc.).

Cet outil dédié Windows donc s'occupe de :
* la configuration Windows (certificats, politiques mot de passe, etc.)
* la configuration de la session utilisateur d'un nouvel arrivant
* l'installation des logiciels (via Chocolatey)
* la configuration des logiciels (typiquement Firefox et Thunderbird)
Mais pas de l'installation de l'OS (ce qui nous convient pour l'instant)
(Pour Linux on a différents scripts Bash similaires.)

Tout ça prends du temps à maintenir et est difficilement transmissible à
un remplaçant.

Donc je suis à la recherche d'un vrai outil pour faire tout ça.

</Historique et contexte>

<Besoin>

J'apprécie un outil gérant l'idempotence et où la configuration est
plutôt en mode déclaratif (l'état que je veux avoir) via un pseudo
langage éventuellement, tout en laissant la possibilité d'exécuter des
scripts brut (Bash, PowerShell, etc.).

Le parc n'est pas énorme donc la rapidité d'exécution n'est pas un
critère principal.
Par contre il y a des portables qui peuvent donc être injoignables par
moment.

Les postes de travail ont tous OpenSSH mais sous Windows[2] il a
tendance à se faire désactiver/casser (moins depuis certaines versions)
donc je préfère un outil ayant son propre agent (en pull et/ou en push).

Pour l'instant j'hésite entre Chef[3] et Rudder[4] mais j'ai
l'impression que le premier a plus de fonctionnalités/connecteurs que le
premier mais perdu son interface graphique (Chef Manage)...

Lors de mes recherches je suis notamment tombé sur cet article :
« Ansible, Chef, Puppet… Pourquoi ça ne juste marche pas :( »[5]
de septembre 2014 qui compare 3 outils selon l'approche d'un sysadmin
qui veut que le code représente fidèlement les relations entre les
serveurs et logiciels (tels qu'elles sont mentalement dans la tête de
l'équipe de sysadmin).

Il souligne que les 3 outils ont des problèmes liés aux rôles, à
l'héritage et la composition qui font que l'outil seul ne suffit pas à
se représenter de manière logique les fonctions/relations de chaque
composants.
C'est une approche qui me parle et je partage l'avis de l'auteur.

Cependant, c'était il y 4,5 ans et les outils ont certainement évolués
depuis (confirmé par les commentaires).

Est-ce que vous auriez des avis (ou comparatifs récents) sur ces points là ?

Merci d'avance

</Besoin>

En information complémentaire : l'inventaire du parc est "tenu" dans
GLPI[6] (avec FusionInventory[7]) qui reste notre référentiel.

[1]: https://boxstarter.org
[2]: https://chocolatey.org/packages/openssh
[3]: https://www.chef.io
[4]: https://www.rudder.io
[5]:
https://blog.imirhil.fr/2014/09/30/ansible-chef-puppet-pourquoi-ca-ne-marche-pas.html
[6]: https://glpi-project.org
[7]: http://fusioninventory.org

-- 
DUVERGIER Claude


Plus d'informations sur la liste de diffusion FRsAG