Installer Kibana par Puppet (3/5)
Publié le dimanche 03 février 2013, 13:45 - modifié le 11/02/13 - Bidouilles - Lien permanent
- Article
- |
- Commentaires (0)
- |
- Annexes (2)
Si on regarde un peu les commentaires qu'on peut trouver sur le site de Kibana, on remarquera que tout le monde s'accorde à dire que c'est super simple à installer. Seulement, voilà : quand on a accès à Internet à partir de son serveur, oui, c'est simple. Mais quand on n'a pas de réseau (comme c'est souvent le cas dans un réseau d'entreprise), ça devient un enfer : les librairies ne correspondent pas, des dépendances manquants sont encore à télécharger, impossible de trouver une source correcte pour bundler
, ... De surcroit, même avec le réseau, si l'objectif est de faire un module Puppet, les commandes de téléchargement et de compilation font qu'il est quasi-impossible d'écrire un module (ou tout du moins, d'écrire un module propre). C'est pour tout cela que j'ai créé des RPMs pour toutes les dépendances et fichiers nécessaires !
- Installation de MRepo
Bien entendu, même avec des RPMs, il faut pouvoir les diffuser jusqu'au serveur sur lequel kibana doit être installé. C'est à cet effet que j'installe MRepo qui permet de créer son propre dépôt de RPM local. C'est à travers ce dépot que seront installés les RPMs nécessaires au projet.
Tout d'abord, on installe les packages nécessaires :
[root@sophie ~]# yum -y -q install createrepo mrepo
Par défaut, un répertoire /etc/mrepo.conf.d est créé pour y stocker la configuration de nos sources de dépôt. C'est donc là qu'on y copie notre fichier de configuration de notre dépôt kibana :
[root@sophie mrepo.conf.d]# cat > /etc/mrepo.conf.d/kibana.conf << EOF [kibana] name = Kibana for \$arch arch = x86_64 metadata = repomd repoview kibana = file:///var/data/mrepo/kibana EOF
Il faut comprendre de ce fichier de configuration qu'un dépot nommé kibana sera créé à partir des RPMs trouvés dans /var/data/mrepo/kibana. On crée donc ce répertoire et on y télécharge les RPMs nécessaires :
[root@sophie mrepo.conf.d]# mkdir -p /var/data/mrepo [root@sophie mrepo.conf.d]# wget http://www.jesuisungeek.com/public/files/rhel/kibana-repo.el`facter lsbmajdistrelease`.tar.gz -O - | tar zxvf - -C /var/data/mrepo [root@sophie mrepo.conf.d]# chown -R apache:apache /var/mrepo/kibana-x86_64/kibana/ [root@sophie mrepo.conf.d]# chmod -R 755 /var/mrepo/kibana-x86_64/kibana/
L'instruction utilisé dans le wget facter lsbmajdistrelease
renvoie 5 pour une CentOS 5 (ou RHEL 5) et 6 pour une CentOS 6 (ou RHEL 6). Cela permet de télécharger uniquement le bon jeu de RPMs.
Dans le cas où, comme indiqué plus haut, il est impossible de télécharger à partir d'Internet sur le serveur sur lequel on souhaite installer Kibana, les fichiers d'archives sont attachés à ce post. Dans ce cas, il suffit de transférer et tout décompresser dans le répertoire /var/data/mrepo
[root@sophie mrepo.conf.d]# mrepo -ugv
Normalement, si tout se passe bien, on obtient un affichage comme celui-ci :
kibana-x86_64: Updating Kibana for x86_64 kibana-x86_64: Mirror packages from file:///var/data/mrepo/kibana to /var/mrepo/kibana-x86_64/kibana kibana-x86_64: Repository kibana changed (new: 24, removed: 0) kibana-x86_64: Distribution updated (new: 24, removed: 0) Sending mail to: root@localhost kibana-x86_64: Generating Kibana for x86_64 meta-data mrepo: kibana-x86_64: Version of createrepo could not be found. Assuming newer than 0.4.6. kibana-x86_64: Create repomd repository for kibana
Où on voit bien apparaitre que 24 nouveaux packages ont été ajoutés au dépot (ce qui correspond au nombre des RPMs téléchargés). Le dépôt étant bien généré, il faut à présent, modifier la configuration de Apache pour que les machines clients puissent télécharger les RPMs désirés par HTTP. Par convention, j'ai décidé d'affecter le port 8080 au MRepo, mais n'importe quel autre port fera l'affaire. Dans tous les cas, il ne pas oublier d'autoriser les flux entrants vers ce port.
Dans mon vas, j'ai ajouté la ligne suivante au fichier /etc/sysconfig/iptables :
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
Pour en revenir à MRepo, la modification est assez simple : en effet, l'installation du RPM de MRepo a ajouté des fichiers de configuration dans le répertoire /etc/httpd/conf.d donc il n'y a plus qu'à les modifier :
[root@sophie conf.d]# cat >> /etc/httpd/conf.d/mrepo.conf << EOF Listen 8080 <VirtualHost sophie:8080> DocumentRoot /var/www </VirtualHost> EOF
Et bien, entendu, ne pas oublier de redémarrer Apache, de façon pour que la nouvelle configuration soit prise en compte :
[root@sophie conf.d]# service httpd restart
En se connectant à l'adresse http://sophie:8080/mrepo
, on peut voir désormais naviguer parmi l'arborescence du dépôt.