Comment installer un Puppet Master
Created on 110530 by Yannick Vaucher
Switzernet.com
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
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.
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)
[…]
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 *
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
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 = ""
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
Un nœud de type astrad est un serveur SIP asterisk.
Le type Astrad contient les modules suivants:
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.
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
Le type DB3 contient les modules suivants:
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
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.
* * *
Copyright © 2011 by Switzernet