Comment installer un Puppet Master

Created on 110530 by Yannick Vaucher

Switzernet.com

 

 

1         Introduction

 

Ce document donne la démarche pour l'installation d'un serveur Puppet Master

Il décrit également ce qu'il convient de définir dans le fichier nodes.pp sur le PuppetMaster

 

 

2         Démarche

2.1      Changement du mot de passe

 

Connection sur ks357993.kimsufi.com

ssh root@ks357993.kimsufi.com

 passwd

 

Changement du mot de passe root

passwd

 Entrer 2 fois le nouveau mot de passe.

 

2.2      Changer le nom de domaine

 

 

Changer le nom de domaine

hostname puppetX.switzernet.com

 

Editer le fichier hosts

vi /etc/hosts

 

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1       localhost.localdomain localhost

ipaddress       puppetX.switzernet.com

# The following lines are desirable for IPv6 capable hosts

#(added automatically by netbase upgrade)

[…]

 

2.3      Installation de puppetmaster

 

 

Mettre à jour les dépôts et installer puppet version serveur.

aptitude update

 

aptitude install puppetmaster

 

 

Arrêter le service puppet pour créer les users utilisé par puppet.

/etc/init.d/puppetmaster stop

puppetmasterd –-mkusers

 

Aller dans le répertoire de puppet et y créer le dossier "modules"

cd /etc/puppet

mkdir modules

 

 

Editer le fichier fileserver.conf et ajouter un context pour les modules

vi /etc/puppet/ fileserver.conf

 

[files]

  path /etc/puppet/files

  allow *

 

[plugins]

  allow *

 

[modules]

  allow *

 

2.4      Chargement des modules

 

Aller dans modules

cd /etc/puppet/modules

 

Télécharger les modules nécessaires.

 

A ce lieu vous trouverez la liste des modules téléchargeables.

http://switzernet.com/3/public/110525-puppet-modules

 

Par exemple télécharger le dernier module astrad disponible sous

http://switzernet.com/3/public/110126-astrad-versions

 

wget http://switzernet.com/3/public/110126-astrad-versions/data1/110506,1225,astrad,006.zip

 

 

Décompresser le fichier zip dans modules

unzip 110506,1225,astrad,006.zip -d astrad006

 

 

2.5      Création des fichiers de configuration

 

Aller dans manifest.

cd /etc/puppet/manifests

 

Créer un fichier site.pp

 

# /etc/puppet/manifests/site.pp

 

import "modules"

import "nodes"

 

 

Exec { path => "/usr/bin:/usr/sbin/:/bin:/sbin" }

 

 

Créer un fichier nodes.pp

 

Pour l'utilisation des astrad, les paramètres suivants doivent être défini:

 

 

$http_user = "xxxx"

$http_pass = "xxxx"

$http_user2 = "xxxx"

$http_pass2 = "xxxx"

$masterip = "xxxx"

$db_user = "xxxx"

$db_pass = "xxxx"

$radius_pass = "xxxx"

$mysql_root_pass = "xxxx"

$mysql_ast_user = "xxxx"

$mysql_ast_pass = "xxxx"

$cacti_ip = "xxxx"

$ldap_pass = "xxxx"

 

$db2_host_ip = "xxxx"

$db2_ast_user = "xxxx"

$db2_ast_pass = "xxxx"

 

$monitor_db_ip = "xxxx"

$monitor_db_user = "xxxx"

$monitor_db_pass = "xxxx"

 

# No pass for DB3 security based on IP access

$db3_ast_pass = ""

 

2.6      Définition des nœuds

Dans le fichier nodes.pp, nous définissons les machines qui sont gérées par Puppet.

Voici les chablons permettant de configurer un serveur type.

 

Nous avons actuellement 2 type de serveurs.

Les serveurs Astrad

Les serveurs DB3

 

2.6.1      Nœud de type Astrad

Un nœud de type astrad est un serveur SIP asterisk.

2.6.1.1  Modules

Le type Astrad contient les modules suivants:

 

 

2.6.1.2  Paramètres

Les paramètres qui doivent être utilisés pour le module Astrad sont l'adresse d'un serveur DB3 ainsi que les identifiants pour accéder à ce serveur DB3.

 

 

2.6.1.3  Sample

 

node "astradX.switzernet.com" {

         $server_id=xx

         $mysql_ast_user = "xxxx"

         $mysql_ast_pass = ""xxxx"

         $db3_host_ip = "xxxx"

         $db3_ast_user = "xxxx"

         include iptables

         import "astradxxx"

         include astradxxx

         include fail2ban

         include fail2ban::asterisk

}

 

 

Après l'installation d'un nœud astrad, pour éviter la vérification complète du module astrad, il convient de mettre en commentaires les deux lignes suivantes.

#         import "astradxxx"

#         include astradxxx

 

2.6.2      Nœud de type DB3

 

2.6.2.1  Modules

 

Le type DB3 contient les modules suivants:

 

2.6.2.2  Paramètres

 

 

 

 

2.6.2.3  Sample

 

 

node "dbx.switzernet.com" {

        $server_id=xx

        $masteruser='xxxx'

        $mysql_db3_user='xxxx'

        $mysql_db3_pass='xxxx'

        $mysql_localhost_user='xxxx'

        $mysql_ast_user='xxxx'

        $ip_nodes='ip1,ip2,ip3'

        import "db3001"

        import "snmp"

        include db3001

        include snmp

}

 

Après installation, il est possible de commenter les lignes suivantes pour les désactiver.

#        import "db3001"

#        import "snmp"

#        include db3001

#        include snmp

 

 

3         Utilisation de puppet dans puppet

Dans une optique d'utiliser puppet au mieux de ses capacités, et pour avoir rapidement un serveur de remplacement en cas de crash d'un serveur puppet master, il serait envisageable de faire une configuration puppet master sur le puppet master. Ainsi en ayant 2 serveurs puppet master, si l'un est perdu, un nouveau serveur puppet pourrait être créé en devenant le client du puppet master restant.

 

Une tel auto gestion seraient envisageable dans le cas ou le serveur puppet master se complexifie et que la procédure de restauration d'un serveur master prenne beaucoup de temps.