La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Les logiciels d'administration système V 1.2. Présentation Comment gérer de multiples serveurs de type Unix ? Solution classique : ssh + rsync + scripts.

Présentations similaires


Présentation au sujet: "Les logiciels d'administration système V 1.2. Présentation Comment gérer de multiples serveurs de type Unix ? Solution classique : ssh + rsync + scripts."— Transcription de la présentation:

1 Les logiciels d'administration système V 1.2

2 Présentation Comment gérer de multiples serveurs de type Unix ? Solution classique : ssh + rsync + scripts shell => pose problème si le parc est étendu et hétérogène Cfengine est une tentative de réponse à cette problématique : il permet de décrire la configuration d'un ensemble de serveurs/ordinateurs (DNS, NTP,...) Puppet est également un outil de ce type

3 Cfengine Marc Burgess - University College – Oslo Permet de configurer des logiciels à partir de modèles/classes et de déployer des configuration Effectue « toutes » les actions de base d'un administrateur systeme

4 Cfengine – Installation Paquets disponibles pour l'ensemble des distributions Linux et des Unix pas trop anciens (Solaris, Aix, …) Des versions Windows existent (??)

5 Cfengine – caractéristiques cfengine s'appuie essentiellement sur 4 programmes : cfkey, cfagent, cfservd et cfrun. cfagent : analyse et exécute les fichiers de configuration. cfrun : lance les cfagent à distance ; cfservd est un « daemon » serveur de fichiers intégré à cfengine. Il permet également de lancer cfagent sur une sollicitation réseau ; cfkey génère une bi-clé utilisée pour sécuriser la connexion entre cfagent/cfrun et cfservd ;

6 Cfengine - les classes Définies par l'OS, la date, l'adresse IP, adresse MAC, nom DNS,..... exemple control: Actionsequence = ( shellcommands ) shellcommands: redhat.Hr01:: "/usr/local/bin/backup" linux.!redhat.Hr23:: "/usr/local/bin/backup" (aix|sun).Hr02:: "/usr/local/bin/backup"

7 Cfengine -exemple d'utilisation # cat /var/cfengine/inputs/cfagent.conf control: actionsequence = ( shellcommands tidy ) shellcommands: "/usr/bin/id" tidy: /tmp pattern=*~ recurse=inf age=2

8 Cfengine : liens pdf pdf

9 Puppet se présente comme le successeur de cfengine - récent écrit en Ruby par Luke Kanies Site reductivelabs.com utilisé par Google et de nombreuses autres entreprises

10 Puppet – Caractéristiques 1 serveur : PuppetMaster contenant les configurations communes Des machines ou noeuds qui exécutent le démon puppetd appliquent la configuration vérifient par défaut toutes les 20 mn Communication chiffrée utilisant HTTPS (certificats)

11 Puppet : le langage Il permet de définir classes (permet de définir les confs de chaque service) héritage (permet de regrouper les confs communes) types dobjets particuliers (définis par puppet, ou par des modules ruby utilisateur) fonctions utilisateur...

12 Puppet – Facter disponible sur les noeuds utilisant Puppetd, il fournit des variables utilisables dans les templates puppet : Adresse ip Hostname Distribution et version Toutes autres variables locales définies par lutilisateur.

13 Facter : exemple de sortie marge:~# facter architecture => i386 domain => lecastel.lan facterversion => fqdn => marge.lecastel.lan hardwaremodel => i686 hostname => marge interfaces => eth0,venet0 ipaddress => ipaddress_eth0 => kernel => Linux kernelrelease => pve kernelversion => macaddress => 00:18:51:af:57:20

14 Les objets - 1 File, permet de demander quun fichier existe, dispose de certains droits, et corresponde éventuellement à un certain contenu, fournit statiquement, ou à travers un modèle (template) avec substitution de variables Service, permet de déclarer un service, de sassurer quil fonctionne, de le redémarrer dans certaines conditions

15 Les objets – 2 Package, permet de demander linstallation, la mise à jour ou la désinstallation dun package, en utilisant le système de packaging natif de lOS utilisé (ports, deb, packages MacOsX etc.) User, permet de gérer les utilisateurs unix (dans /etc/passwd) indépendamment de lOS utilisé.

16 Exemple 1: Configuration des résolveurs DNS class resolv { file { "/etc/resolv.conf": owner => root, group => root, mode => 644, # Le contenu de ce fichier est servi par l'hôte puppet dans son partage files/etc/resolv.conf source => "puppet://puppet/files/etc/resolv.conf" }

17 Exemple 2 : fichier dhcp.pp class dhcp { package { dhcp3-server: ensure => installed, } file { "/etc/dhcp3/dhcpd.conf": owner => root, group => root, mode => 644, source => [ "puppet://puppet/files/dhcpd/dhcpd.conf" ] } service { dhcp3-server: ensure => running, subscribe => [Package[dhcp3-server], File["/etc/dhcp3/dhcpd.conf]] }

18 Mise en oeuvre Sur Debian : sur le serveur : apt-get install puppetmaster Sur le client : apt-get install puppet Pour le détail voir administration.org/articles/526http://www.debian- administration.org/articles/526 Ou sur Howtoforge

19 L'ecosystème Puppet Des applications ont été développées Puppet dashboard : interface Web à Puppet Foreman : gestion web de parc avec Puppet

20 Remarques Il est très intéressant d'utiliser un outil de gestion de version comme svn ou encore git pour gérer les fichiers (templates, recettes, …) du fichier puppetmaster Ceci permet de revenir en arrière et de disposer d'information (quoi ? qui ? Quand ? Pourquoi ?) sur les modification Pour Debian, il est possible d'utiliser du pre- seeding pour répondre automatiquement aux questions de l'installateur de paquets.

21 Puppet et Git Installer les paquets Debian git-core # cd /etc/puppet # git-init-db Le dépot git est créé dans /etc/puppet. Il servira à stocker les versions des fichiers de configuration # git commit -a -c "Chgt DNS" effectue une MAJ du dépôt # git show log affiche l'historique des MAJ

22 Git et etckeeper Git peut être utilisé pour gérer le répertoire /etc Il suffit d'installer le paquet etckeeper qui prend en charge l'installation

23 Puppet/Cfengine Apprentissage plus facile : fichiers de configuration moins complexes Très puisssant et très expressif Utilisation de Ruby = > empreinte mémoire supérieure Encore quelques incertitudes pour les sites à grande échelle (1 serveur gère actuellement jusqu'à 30 clients)

24 En conclusion Puppet permet de définir les configurations logicielles utilisées => maîtrise des « bonnes pratiques » Ne fait pas le déploiement : il faut utiliser des outils comme FAI ou SystemImager. Ces outils sont souvent paramétrés pour utiliser cfengine/puppet dans la foulée de l'installation


Télécharger ppt "Les logiciels d'administration système V 1.2. Présentation Comment gérer de multiples serveurs de type Unix ? Solution classique : ssh + rsync + scripts."

Présentations similaires


Annonces Google