Catégorie : Systèmes

22 février 2016 /

Redis (de l’anglais REmote DIctionary Server qui peut être traduit par « serveur de dictionnaire distant » et jeu de mot avec Redistribute1) est un système de gestion de base de données clef-valeur scalable, très hautes performances, écrit avec le langage de programmation C ANSI et distribué sous licence BSD. Il fait partie de la mouvance NoSQL et vise à fournir les performances les plus élevées possibles.

Pour une installation dans /opt :

cd /opt

On récupère l’url du dernier binaire à cette adresse:

http://download.redis.io/releases/

Puis on télécharge ,on décompresse les binaires et on créer un lien symbolique par soucis de propreté:

wget http://download.redis.io/releases/redis-3.0.6.tar.gz
tar xvf redis-3.0.6.tar.gz
rm -f redis-3.0.6.tar.gz
ln -s redis-3.0.6 redis

Redis aura besoin de quelques dépendances pour son installation:

yum install gcc* tcl

Puis on prépare et lance un script pour installer le service:

cd /opt/redis
make
make test
make install
cd utils
./install_server.sh

Il ne nous reste plus qu’a tester son bon fonctionnement:

service redis_6379 status
service redis_6379 stop
service redis_6379 start

Mise en place d’un mot de passe administrateur:

vi /etc/redis/6379.conf

Puis on y ajoute cette ligne en modifiant le changeant « votre_mot_de_passe »:

requirepass votre_mot_de_passe

18 février 2016 /

Après avoir configurer avec visudo votre fichier /etc/sudoers, vous pouvez vous retrouver face à cette erreur:

sudo vi /etc/init.d/service_test

sudo: sorry, you must have a tty to run sudo

Pas de panique, la solution est simple à mettre en place.
Cette erreur viens du fait qu’une option dans /etc/sudoers exige probablement un terminal via le paramètre « Defaults requiretty« .

Pour régler ce problème, il suffit de remplacer « Defaults requiretty » par « Defaults !requiretty » dans /etc/sudoers.

Ou alors, si on veut donner ce droit a un compte spécifique, on ajoutera plutôt cette ligne après « Defaults requiretty« :

Defaults:nom_du_compte !requiretty

18 février 2016 /

Pour une installation dans /opt :

cd /opt/

On récupère la dernière version des binaires a cette adresse:
http://activemq.apache.org/download.html

Puis, on télécharge et on décompresse les binaires pour ActiveMQ Server:

wget http://apache.crihan.fr/dist/activemq/5.13.0/apache-activemq-5.13.0-bin.tar.gz
tar xzf apache-activemq-5.13.0-bin.tar.gz
rm -f apache-activemq-5.13.0-bin.tar.gz
useradd activemq
chown -R activemq /opt/apache-activemq-5.13.0/

Création du lien symbolique /opt/activemq:

ln -s apache-activemq-5.13.0/ activemq

Test de l’exécutable /opt/activemq/bin/activemq (port d’écoute 61616) :

cd /opt/activemq
./bin/activemq start
netstat -paunt | grep 61616

On va créer le script pour démarrer ActiveMQ:

vi /home/activemq/activemq-start.sh

On y place le texte suivant:

#!/bin/bash
echo Lancement de ActiveMQ....
sh /opt/activemq/bin/activemq start

On va créer le script pour arreter ActiveMQ:

vi /home/activemq/activemq-stop.sh

On y place le texte suivant:
#!/bin/bash
echo Arret de ActiveMQ....
sh /opt/activemq/bin/activemq stop

On créer maintenant le script pour gérer le service:

vi /etc/init.d/activemq

On y place le texte suivant:
#!/bin/bash
#
# activemq Starts ActiveMQ.
#
# chkconfig: 345 88 12
# description: Service pour ActiveMQ.
### BEGIN INIT INFO
# Provides: $activemq
### END INIT INFO
# Source function library.
. /etc/init.d/functions
[ -f /home/activemq/activemq-start.sh ] || exit 0
[ -f /home/activemq/activemq-stop.sh ] || exit 0
RETVAL=0
umask 077
start() {
echo -n $"Starting ActiveMQ: "
daemon su -c /home/activemq/activemq-start.sh activemq
echo
return $RETVAL
}
stop() {
echo -n $"Shutting down ActiveMQ: "
daemon su -c /home/activemq/activemq-stop.sh activemq
echo
return $RETVAL
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?

On rend les scripts exécutable:

chmod +x /etc/init.d/activemq
chmod +x /home/activemq/activemq-start.sh
chmod +x /home/activemq/activemq-stop.sh

Puis on ajoute et on active le service:

chkconfig --add activemq
chkconfig activemq on

Il ne nous reste plus qu’a tester le bon fonctionnement du service:

/etc/init.d/activemq start
/etc/init.d/activemq stop
service activemq start

16 février 2016 /

On commence par mettre à jour son système:

yum -y update

Si Mailx n’est pas présent, on l’installe:

yum install -y mailx

Maintenant, il ne nous reste plus qu’a renseigner l’adresse d’un serveur SMTP.

Pour le mettre en place, il faut modifier le fichier de configuration de mailx, /etc/mail.rc :

vi /etc/mail.rc

Et vous y mettez à la fin les champs ci-dessous en les adaptant a votre configuration:

# On renseigne ici l'adresse du serveur smtp
set smtp=smtp://smtp.exemple.com:543
# On renseigne ici l'adresse qui apparaitra en expediteur
set from="root <@Serveur>"
# Pour activer une authentification par login/passwd , sinon il n'y en pas, commentez!!
set smtp-auth=login
#A mettre si le serveur smtp demande une authentification
set smtp-auth-user=login@courriel.fr
# A mettre si le serveur smtp demande une authentification
set smtp-auth-password=mot_de_passe

Pour un usage plus personnel, on peut aussi le configurer avec un compte gmail, cette fois dans son ~/mailrc:

vi ~/mailrc

set smtp-use-starttls
set ssl-verify=ignore
set smtp-auth=login
set smtp=smtp://smtp.gmail.com:587
set from="compte@gmail.com (Starmate)"
set smtp-auth-user=compte@gmail.com
set smtp-auth-password=s0qsdm3p@zzW32-èh_25azg'(4540rD

Et voila, c’est tout. le système peut maintenant envoyer des courriels.

Voici les principales options de Mail/Mailx et quelques exemples:

  • -a Pour envoyer une pièce jointe
  • -c Pour mettre un destinataire en copie (adresse1,adresse2,etc..).
  • -q Charge le contenu d’un fichier comme faire le corps du courriel
  • -r Pour définir l’adresse de l’expéditeur.
  • -s Sujet du message

Envoi d’un message simple:

echo "Contenu de mon courriel" | mail -s "Sujet de mon courriel" adresse@courriel.fr

Et on valide avec la combinaison de touches CTRL+d.

Envoyer un message avec une pièce jointe et deux adresses en copie:

echo "Contenu de mon courriel" | mail -s "Sujet de mon courriel" -a /chemin/du/image.jpg -c adresse@copie1.fr,adresse@copie2.fr adresse@destinataire.fr

Et on valide avec CTRL+d.

Mettre le contenu d’un fichier pour corps du courriel:

echo | mail -s "Sujet de mon courriel" -r adresse@expediteur.fr -q /chemin/du/fichier.txt adresse@destinataire.fr

Et on valide avec CTRL+d.

Exemple d’utilisation dans un script qui va envoyer un courriel si le seuil d’espace occupé sur un répertoire, ici 80% :

#!/bin/bash
#Maximum d'espace disque utilisé, en %
LIMITE='80'
#Repertoire à surveiller
REP='/var'
#Adresse qui recevra les courriels
DESTINATAIRE='destinataire@courriel.fr'
#Sujet du message
SUJET="Espace utilise sur le repertoire $REP"
#Les courriels sont envoyés avec Mailx
MAILX='mailx'
#Vérifie si la commande existe
which $MAILX > /dev/null 2>&1
#On regarde le statuts de sortie de la commande precedente, si il est différent de 0, Mailx n'est pas installé.
if ! [ $? -eq 0 ]
then
#Demande l'installation de Mailx
echo "Merci d'installer $MAILX"
#Sortie du script
exit 1
fi
#On se deplace dans le repertoire pour connaitre sa taille
cd $REP
#Affiche le pourcentage d'espace utilisé
ETAT=`df . | awk '{print $5}' | sed -ne 2p | cut -d"%" -f1`
#Si l'espace utilisé est supérieur à la limite
if [ $ETAT -gt $LIMITE ]
then
#Envoi d'un courriel d'alerte
du -sh ${REP} | $MAILX -s "$SUJET" "$DESTINATAIRE"
fi

15 février 2016 /

Voici une petite procédure rapide pour installer la dernière version de Tomcat8

Prérequis => Avoir JDK Oracle d’installé

Pour une installation dans /opt, on commence par se déplacer dans le répertoire:

cd /opt

Puis on va sur le site de Apache récupérer l’url de la dernière version de Tomcat8.

Une fois qu’on à récupérer l’url, on télécharge les binaires:

wget http://wwwftp.ciril.fr/pub/apache/tomcat/tomcat-8/v8.0.30/bin/apache-tomcat-8.0.30.tar.gz

On décompresse le tout:

tar xvf apache-tomcat-8.0.30.tar.gz
rm -f apache-tomcat-8.0.30.tar.gz

On va maintenant créer un lien symbolique par soucis de propreté:

ln -s apache-tomcat-8.0.30 tomcat8

On crée l’utilisateur tomcat8 et on le rend propriétaire des binaires:

useradd tomcat8
chown -R tomcat8 tomcat8

On renseigne la variable JAVA_HOME le ~/.bashrc de tomcat8 :

vi /home/tomcat8/.bashrc

Et on y colle ça à la fin (à adapter suivant votre version de java):

JAVA_HOME=/usr/java/jdk1.8.0_72
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH

Maintenant il ne reste plus qu’a configurer Tomcat8 comme un service:

vi /etc/init.d/tomcat8

Puis on y place le texte suivant:

# Processus: tomcat8
# chkconfig: 234 20 80
JAVA_HOME=/usr/java/jdk1.8.0_72
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
case $1 in
start)
su - tomcat8 -c 'sh /opt/tomcat8/bin/startup.sh'
;;
stop)
sh /opt/tomcat8/bin/shutdown.sh
;;
restart)
sh $CATALINA_HOME/bin/shutdown.sh
su - tomcat8 -c 'sh /opt/tomcat8/bin/startup.sh'
;;
esac
exit 0

Attention aux paramètres « JAVA_HOME » (qui doit pointer sur le JDK de Oracle installé en prérequis, et « CATALINA_HOME » qui doit pointer sur les binaires de Tomcat8).

On rend le service exécutable:

chmod +x /etc/init.d/tomcat8

On ajoute et on active le service:

chkconfig --add tomcat8
chkconfig tomcat8 on

Test du service:

service tomcat8 start
service tomcat8 stop