Introduction#

Généralités#

Administration d’un système#

  • distribution (Linux) :

    • maintenir la cohérence d’un ensemble logiciel

  • installation système :

    • manuelle (interactive via l’installeur de la distribution) ou

    • automatique (FAI, cobbler, etc.)

    • système pré-provisionné (AMIs pour clouds, gold images pour virtualisation, etc.)

  • installation des logiciels :

    • par des paquets

    • à partir de sources (parfois)

  • gestion du démarrage (bootloader, kernel/initramfs, SysV init, systemd, upstart, etc)

  • gestion des utilisateurs, de l’authentification, etc.

  • gestion des ressources (réseau, disques, périphériques)

  • gestion de la sécurité (pare-feu, etc.)

Administration d’une infrastructure#

  • ensemble de systèmes (+/- hétérogènes) qui doivent collaborer

  • vision d’ensemble (urbanisme)

  • mais il n’existe pas de « distribution Linux » à l’échelle de l’infrastructure

Situation#

Problèmes classiques et défis actuels

  • gestion de nombreux serveurs et services

    • dimension et complexité de l’infrastructure toujours croissante

  • différence entre documentation et état du système :

    • (au mieux) description macroscopique de l’infrastructure dans un document (textuel ou graphique)

    • (au mieux) description détaillée de chaque élément de l’infrastructure

    • difficile à garder à jour

  • tendance lourde à la virtualisation

    • généralisation de [PIS]aaS même en interne à l’entreprise

  • on ne gère plus des systèmes mais des services :

    • nombreux

    • qui interagissent

Défis#

  • pouvoir gérer la complexité (et sa croissance)

  • nécessité de faire converger la description du système (documentation) et son état réel

    • pouvoir décrire le système et les réactions qu’il devrait avoir dans certaines conditions

    • intégrer la documentation, le monitoring et de la spécification (déclarative) de l’infrastructure

  • avoir de bonnes distributions (Debian, RedHat/Centos) n’est plus suffisant

  • avoir des outils de gestion de la configuration centralisée n’est plus suffisant

Il faut une boîte à outils de la gestion d’infrastructure

Gestion de configuration centralisée#

Gestion de configuration centralisée#

De plus en plus d’outils à disposition :

  • pour centraliser des fichiers de configuration et les déployer

  • pour centraliser la configuration (en général) et déployer

  • pour effectuer des opérations sur un parc de machines

  • pour communiquer des données au sein d’une infrastructure

  • pour décrire et superviser son infrastructure

Administrer plusieurs serveurs - avant#

me@laptop:~$ ssh root@server1
root@server1:~# cp /etc/config.conf /etc/config.conf.bak
root@server1:~# vim /etc/config.conf
root@server1:~# service critical-daemon restart
me@laptop:~$ ssh root@server2
root@server2:~# cp /etc/config.conf /etc/config.conf.bak
root@server2:~# vim /etc/config.conf
root@server2:~# service critical-daemon restart
me@laptop:~$ ssh root@server3
[...]

Administer plusieurs serveurs - après#

root@salt:~# vim /srv/salt/service/config.conf
root@salt:~# salt 'server*' state.apply test=True
root@salt:~# salt 'server*' state.apply

Administrer plusieurs serveurs - avant#

../../_images/cssh_original.png

Administrer plusieurs serveurs - après#

salt '*' cmd.run 'apt-get update; apt-get -uVf upgrade'