Retour : Page Principale > sommaire serveurs & domaines > Agathis


IMPORTANT: À COMPTER DU 01/01 2015, TELA BOTANICA NE GÈRE PLUS CETTE MACHINE

OBSOLETE (2017) - ces informations sont considérées comme n'ayant plus cours en 2017

Configuration du serveur Coris

Serveur de nom
Pas besoin de serveur de nom (c'est mon choix !). Désinstallation si nécessaire.

Mise à jour générale
Lancement de la commande de mise à jour générale :

apt-get update
apt-get upgrade

Redémarrer la machine si nécessaire (en cas d'upgrade d'un paquet linux-image...).

Vérification différence vi et vim
Si en Ă©ditant un fichier avec la commande vi, l'appui sur la touche "INSER" ne bascule pas en mode insertion, il faut alors utiliser vim.
Vous pouvez aussi lancer la commande suivante pour résoudre le problÚme :

apt-get install vim
update-alternatives --config vi (doit contenir : vim.basic)
update-alternatives --display vi (en cas de problĂšme mais normalement fait pas l'install de vim)


Configuration de bash
Pour root créer un fichier ~/.bashrc avec les droits 640 contenant :
# ~/.bashrc: executed by bash(1) for non-login shells.

# Note: PS1 and umask are already set in /etc/profile. You should not
# need this unless you want different defaults for root.
# PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
# umask 022

#-----------------------------------------------------------------------------------------------------------#
# GESTION du PROMPT

NORMAL="\\033[0;39m"
VERT="\\033[1;32m"
ROUGE="\\033[1;31m"
ROSE="\\033[1;35m"
BLEU="\\033[1;34m"
BLANC="\\033[0;02m"
BLANCLAIR="\\033[1;08m"
JAUNE="\\033[1;33m"
CYAN="\\033[1;36m"

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

#-----------------------------------------------------------------------------------------------------------#
# You may uncomment the following lines if you want `ls' to be colorized:
 export LS_OPTIONS='--color=auto'
 eval "`dircolors`"
 alias ls='ls $LS_OPTIONS'
 alias ll='ls $LS_OPTIONS -l'
 alias l='ls $LS_OPTIONS -lA'

# Some more alias to avoid making mistakes:
 alias rm='rm -i'
 alias cp='cp -i'
 alias mv='mv -i'


Pour admin créer un fichier ~/.bashrc avec les droits 640 contenant :
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# don't put duplicate lines in the history. See bash(1) for more options
# don't overwrite GNU Midnight Commander's setting of `ignorespace'.
HISTCONTROL=$HISTCONTROL${HISTCONTROL+:}ignoredups
# ... or force ignoredups and ignorespace
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# make less more friendly for non-text input files, see lesspipe(1)
#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
    # We have color support; assume it's compliant with Ecma-48
    # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
    # a case would tend to support setf rather than setaf.)
    color_prompt=yes
    else
    color_prompt=
    fi  
fi

NORMAL="\\033[0;39m"
VERT="\\033[1;32m"
ROUGE="\\033[1;31m"
ROSE="\\033[1;35m"
BLEU="\\033[1;34m"
BLANC="\\033[0;02m"
BLANCLAIR="\\033[1;08m"
JAUNE="\\033[1;33m"
CYAN="\\033[1;36m"
if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[1;33m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    #alias grep='grep --color=auto'
    #alias fgrep='fgrep --color=auto'
    #alias egrep='egrep --color=auto'
fi

# some more ls aliases
alias ll='ls -l'
alias la='ls -A'
alias l='ls -Al'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi


Pour les autres utilisateurs crĂ©er un fichier ~/.bashrc comme pour admin avec les droits 640 contenant la mĂȘme chose que pour admin.:
Vous remplacerez la ligne :
PS1='${debian_chroot:+($debian_chroot)}\[\033[1;33m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
par
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

Pour root, admin et les autres utilisateurs :
  • supprimer l'Ă©ventuel fichier : ~/.bash_profile
  • crĂ©er un fichier ~/.profile avec les droits 640 contenant :
# ~/.profile: executed by Bourne-compatible login shells.
export LC_ALL="fr_FR.UTF-8"
export LANG="fr_FR.UTF-8"
export LANGUAGE="fr_FR.UTF-8"

if [ "$BASH" ]; then
  if [ -f ~/.bashrc ]; then
    . ~/.bashrc
  fi  
fi


Configuration de vim
Créer un fichier .vimrc à mettre dans /root et /home/admin contenant :
".vimrc
" Nombre d'espaces qu'une tabulation prend.
set tabstop=4
" EmpĂȘche vim de crĂ©er une sauvegarde avant d'Ă©crire sur un fichier.
set nobk
" Active le surlignage syntaxique de vim.
syntax on
" Oblige vim � ins�rer les tabulations comme des caract�res au lieu d'ins�rer un ensemble d'espaces.
set noexpandtab
" Affiche les numéros de ligne
set nu
" Utiliser des couleurs correctes sur un fond noir.
set background=dark


Installation de MC
Je ne peux pas me passer de midnight commander :
apt-get install mc

Réorganisation du répertoire /var/log
Création d'un lien : /var/log --> /home/log
  • PrĂ©partion du dossier /home :
    • chmod -R -s /home
    • chown root:root /home
  • ArrĂȘt des demons qui Ă©crivent dans /var/log
    • /etc/init.d/rsyslog stop
    • /etc/init.d/cron stop
  • CrĂ©ation du dossier log : mkdir /home/log
  • DĂ©placement du contenu du dossier log : (cd /var/log; tar -cvf - .) | (cd /home/log;tar -xvf -)
  • CrĂ©ation du lien :
    • rm -Rf /var/log
    • ln -s /home/log /var/log
  • RedĂ©marrage des serveurs :
    • /etc/init.d/cron start
    • /etc/init.d/rsyslog start

Création espace administration / gestion des scripts / mise à jour du systÚme
useradd -g users admin
mkdir /home/admin
chown admin:users /home/admin/
su - admin
mkdir src
mkdir src/targz
mkdir script
mkdir save
mkdir www


Installation de sudo et ajout du compte admin
  • apt-get install sudo
  • vi /etc/sudoers
    • Laisser en place : root ALL=(ALL) ALL
    • Modifier la ligne : admin ALL=(ALL) ALL
    • Le fichier est en lecture seule. Pour sauver avec vi utiliser : w!

Configuration de l'envoie de mail via Mail
  • Lancer la commande dpkg-reconfigure exim4-config voici les rĂ©ponses Ă  fournir:
    • Type de configuration : Distribution directe par SMTP (site internet)
    • Nom de courriel du systĂšme : agathis.tela-botanica.net
    • Liste d'adresses IP oĂč Exim sera en attente de connexions SMTP entrantes : 127.0.0.1 ; ::1
    • Autres destinations dont le courriel doit ĂȘtre acceptĂ© : agathis.tela-botanica.net
    • Domaines Ă  relayer : _
    • Machines Ă  relayer : _
    • Faut-il minimiser les requĂȘtes DNS (connexions Ă  la demande) ? : Oui
    • MĂ©thode de distribution du courrier local : Format « mbox » dans /var/mail
    • Faut-il sĂ©parer la configuration dans plusieurs fichiers ? : Non
  • Tester l'envoie de mail : echo "Test 1 - Agathis"|mail -s "Test mail Agathis" votre_mail@tela-botanica.org

Services au démarrage
  • Installer l'utilitaire rcconf qui permet de dĂ©finir les services Ă  lancer lors du dĂ©marrage de la machine : apt-get install rcconf
  • Lancer l'utilitaire : rcconf => utiliser les flĂšches pour vous dĂ©placer et la barre espace pour cocher/dĂ©cocher les services

Mise en place des sauvegardes
  • CrĂ©er un utilisateur backup si nĂ©cessaire
  • CrĂ©er les scripts de backup :
    • cd /usr/local/sbin/
    • CrĂ©er un script backup_mysql avec le contenu ci-dessous : vi /usr/local/sbin/backup_mysql
    • chmod 744 backup_*
  • CrĂ©er les scripts cron de backup :
    • cd /etc/cron.daily
    • CrĂ©er un script mysqlbackup avec le contenu ci-dessous : vi /etc/cron.daily/mysqlbackup
    • chmod 755 *backup

Fichier backup_mysql :
Utilisation : /usr/local/sbin/backup_mysql utilisateur nom_bdd_01 nom_bdd_02
#/bin/bash
# Sauvegarde base de donnee dans /home/utilisateur/bases sur 7 jours ...
# Mai 2004 David Delon Inspiration Faq ovh
# Parametres :
# $1 utilisateur
# $2 base (ou liste de bases séparées par des espaces)
# Le mot de passe de l'administrateur de base de donnee est present dans ce
# script en clair, c'est pas bien : faut chmoder en 700 ce truc.
user=$1
/bin/mkdir -p /home/$user/bases/tmp 2>/dev/null
cd /home/$user/bases;
shift
for base in $*
do
# On verifie que la base existe
        /usr/bin/touch tmp/$base.sql
        if [ -d /home/mysql/$base ] ; then
                /usr/local/mysql/bin/mysqldump --add-drop-table -u root $base -f > tmp/$base.sql;
        fi
done
/bin/tar zcf bases-$(/bin/date -I).tar.gz tmp/*.sql --remove-files
/usr/bin/find /home/$user/bases/bases*.gz -mtime +7 -exec /bin/rm -f {} \;
chown $user:$user -R /home/$user/bases


Fichier mysqlbackup :
#!/bin/bash
/usr/local/sbin/backup_mysql apitela tb_eflore
/usr/local/sbin/backup_mysql apitest tb_eflore_test tb_cel_test tb_del_test tela_prod_v4


Installations


Installation des outils nécessaires à la compilation
apt-get install build-essential autoconf automake libtool cmake make g++

Installation de Php
Préparer le dossier d'installation de Php :
  • cd /usr/local/
  • mkdir php : dossier contenant les diffĂ©rentes version de php (5.2, 5.4, 5.5...)
  • mkdir php/backup : dossier contenant le backup des diffĂ©rents binaires php
Voir script dans /home/admin/script :
  • Passer en admin : su - admin
  • Se rendre dans le dossier des scripts : cd script/
  • Lancer les scripts des diffĂ©rentes version de php Ă  installer :
    • sh php_5.2.sh
    • sh php_5.4.sh
    • sh php_5.5.sh
Préparer le dossier de config :
  • mkdir /etc/php
  • ln -s /usr/local/php/5.4/etc /etc/php/5.2
  • ln -s /usr/local/php/5.4/etc /etc/php/5.4
  • ln -s /usr/local/php/5.4/etc /etc/php/5.5
Installer les fichiers php.ini :
  • cp /home/admin/src/php-5.2.17/php.ini-production /etc/php/5.2/php.ini
  • cp /home/admin/src/php-5.4.23/php.ini-production /etc/php/5.4/php.ini
  • cp /home/admin/src/php-5.5.7/php.ini-production /etc/php/5.5/php.ini
  • Modifier les paramĂštres de chaque fichier php.ini : vi /etc/php/5.{x}/php.ini
    • short_open_tag = On
    • memory_limit = 512M
    • post_max_size = 8M
    • max_execution_time = 60
    • max_input_time = 60
    • display_errors = Off
    • log_errors = On
    • variables_order = "GPCS"
    • register_argc_argv = Off
    • magic_quotes_gpc = Off
    • include_path = ".:/usr/local/php/5.2/lib/php" # changer la version
    • upload_max_filesize = 8M
    • session.gc_maxlifetime = 28800

Configuration de SUPHP
  • Éditer le fichier de configurationde suphp : vi /usr/local/etc/suphp.conf
  • Ajouter les handlers suivants :
[handlers]
;Handler for php-scripts
x-httpd-php5=php:/usr/local/php/5.2/bin/php
x-httpd-php52=php:/usr/local/php/5.2/bin/php
x-httpd-php54=php:/usr/local/php/5.4/bin/php
x-httpd-php55=php:/usr/local/php/5.5/bin/php

  • Ajouter les handlers dans le fichier de config d'Apache :
#SuPhp
suPHP_Engine on
AddHandler x-httpd-php52 .php 
AddHandler x-httpd-php52 .php5
suPHP_AddHandler x-httpd-php5
suPHP_AddHandler x-httpd-php52
suPHP_AddHandler x-httpd-php54
suPHP_AddHandler x-httpd-php55


Installation de Munin
Voir l'aide sur Munin.
Installer les paquets munin :
  • apt-get install munin munin-node
Configuration de Munin-node :
  • Ajouter un module Perl via le CPAN :
    • cpan : valider les options par dĂ©faut jusqu'au prompt CPAN
    • install LWP::UserAgent
    • exit
  • Éditer le fichier munin-node.conf : vi /etc/munin/munin-node.conf et vĂ©rifier la prĂ©sence de la ligne : allow ^127\.0\.0\.1$
  • VĂ©rification du bon fonctionnement de Munin :
    • Se loguer en tant que Munin : sudo -u munin bash ou su - munin -s /bin/bash
    • GĂ©nĂ©rer les stats : /usr/share/munin/munin-update --nofork --debug
      • De nombreuses lignes apparaissent dans la console, c'est normal
      • Si tout c'est bien passĂ©, on obtient une ligne ressemblant Ă  : 2013/07/18 14:22:58 [INFO]: Munin-update finished (5.33 sec)
  • Éditer le crontab pour y ajouter une entrĂ©e munin afin qu'il mette les stats Ă  jour toutes les 5mn :
    • crontab -e
    • La ligne Ă  ajouter : */5 * * * * /usr/bin/munin-cron 1>/dev/null 2>/dev/null

  • Ajouter les plugins Mysql Ă  Munin :
    • Éditer le fichier munin-node : vi /etc/munin/plugin-conf.d/munin-node
      • Supprimer la section [mysql*] existante
      • Ajouter le contenu indiquĂ© aprĂšs la liste ci-dessous
    • Ajouter les plugins mysql aux plugins munin actifs: ln -s /usr/share/munin/plugins/mysql_* /etc/munin/plugins/
    • Ajouter une entrĂ©e [client] dans /root/.my.cnf (voir installation mysql)
    • RedĂ©marrer munin : /etc/init.d/munin-node restart

Fichier /etc/munin/plugin-conf.d/munin-node :
# Ajout de l'instance Mysql 5 PROD (jpm) [07-03-2014]
[mysql_*]
user root
env.mysqlconnection DBI:mysql:mysql;host=127.0.0.1;port=3306
env.mysqladmin /usr/local/mysql/bin/mysqladmin
env.mysqlopts --defaults-extra-file=/root/.my.cnf


Fichier /etc/munin/munin.conf :
# a simple host tree
[Coris]
    address 127.0.0.1
    use_node_name yes