Archives de la catégorie ‘Informatique’

L’administration d’un parc informatique important peut devenir une tâche ardue si le nombre de postes de travail est important ou s’ils sont répartis sur une zone géographique vaste.

Dans ce cas, vous avez 2 solutions majeures :

  • Le réseau « basket » : à l’aide d’une clé USB, d’un partage réseau et d’une bonne paire de chaussures de sports, votre rôle sera de vous connecter sur chaque poste de travail et de réaliser l’installation manuelle. J’oubliais que vous pouviez aussi vous connecter en prise de main à distance 🙂
  • Packager votre application et la proposer au déploiement : cette solution sera étudiée ci-dessous

1. Installation d’une application : description

L’installation d’une application se fait via l’exécution d’un programme exécutable (.exe) qui réalise différentes opérations :

  • Base de registre : ajout/modification de clés et de valeurs
  • Système de fichiers : ajout de fichiers selon une arborescence
  • Base de données de configuration logicielle Microsoft : ajout des informations sur l’application dans la base de données (Panneau de configuration/Ajout-suppression de programmes)

L’application se charge également de valider les pré-requis :

  • architecture CPU,
  • espace disque,
  • mémoire vive,
  • version d’IE,
  • version de .NET,

2. Pré-requis : le poste de travail source

Afin de packager l’application cible, vous devez vous appuyer sur un poste de travail type. Ce poste de travail doit contenir toutes les applications standards de votre entreprise, être intégrée à votre domaine Active Directory et connectée à votre réseau.

Vous devez être administrateur local de ce poste de travail.

Il doit également posséder 2 applications :

  • regshot : disponible ici
  • MSI Studio Pro : disponible ici

Votre poste de travail source peut également être, et je vous le conseille, une machine virtuelle.
Dans ce cas, avant toute modification, vous activerez les snapshots. Cette opération vous permettra de revenir facilement en arrière et retrouver un poste de travail source propre.

3. Cliché pré-installation de la base de registre

  1. Fermer toutes les applications ouvertes
  2. Exécuter l’application regshot.exe
    regshot1
  3. Ajouter un commentaire, ici : « Shot 1 : Application TEST »
  4. Cliquer sur le bouton <1st shot>, <Shot and save>
  5. Enregistrer le résultat dans un fichier, ici : TEST-Shot-1.hiv
  6. Fermer l’application

4. Installation de l’application cible

Installez votre à application.

Lors de l’installation, veillez tout de même à noter les différents chemins d’installation, les modifications réalisées sur l’arborescence du Menu Démarrer et les modifications apportées sur le bureau.

TESTEZ VOTRE NOUVELLE APPLICATION

5. Cliché post-installation de la base de registre

  1. Fermer toutes les applications ouvertes
  2. Exécuter l’application regshot.exe
    regshot1
  3. Ajouter un commentaire, ici : « Shot 2 : Application TEST »
  4. Cliquer sur le bouton <1st shot>, <Load> et sélectionner le fichier TEST-Shot-1.hiv
    regshot2
  5. Cliquer sur le bouton <2nd shot>, <shot>
    regshot3
  6. Cliquer sur le bouton <cOmpare>
    RegShot ouvre alors un fichier txt contenant les différences entre les 2 clichés. On y trouve en outre les clés et les valeurs ajoutées/modifiées/supprimées
  7. Enregistrer ce fichier résultat
  8. Fermer l’application

6. Packager l’application

  1. Ouvrez l’application MSI Studio Professional
  2. Sélectionnez « Create a New Setup Installation for a Sofware Program »
  3. Sélectionnez « Windows Template » puis cliquez sur « Open the new project directly »
  4. Configuration du projet (* = Obligatoire)
    Product Details – Name (*): saisissez le nom de l’application tel qu’il apparaitra sur le poste de travail
    Product Details – Version (*): saisissez le numéro de version
    Product Details – Manufacturer (*): saisissez l’éditeur du programme
    Product Details – Default Directory (*): sélectionnez le dossier de destination par défaut
    General Information – Title :
    General Information – Subject :
    General Information – Author : saisissez l’auteur du projet, c’est à dire vous
    General Information – Keywords :
    General Information – Comments :
    General Information – Package Code (*): cliquez sur le bouton <Create>, pour générer un identifiant unique
  5. Support et panneau de configuration
    Dans la zone « Add or Remove Programs », vous pouvez paramétrer l’intégration de votre nouvelle application dans le Panneau de configuration-Ajout/suppression de programmes de Windows.
    Les informations de support sont fortement recommandées. Support Information – Contact :  nom du chef de projet responsable de cette application
    Support Information – Phone Number : numéro de téléphone de votre centre de service ou de votre équipe support niveau 1
    Support Information – Support URL : URL d’accès à la page Web de support de votre application
  6. Applications Requirements
    Sélectionnez ici (si nécessaire) les versions minimales nécessaires à la bonne exécution de votre programme

    • Windows 9x
    • Windows NT
    • Internet explorer
    • .Net framework

    Sélectionnez ensuite (si nécessaire) les applications (fichiers .exe) nécessaires à la bonne exécution de votre programme cible.

    Si votre cible requière le framwork .Net, spécifiez le mode d’installation :

    • Run the .NET MSI from a UNC network or local path : si vous disposez d’un partage réseau contenant le fichier d’installation
    • Store the .NET Framework within the package : si vous souhaitez intégrer le pacage d’installation .NET dans votre propre package
  7. Installation Properties
    Configurez ici votre méthode d’installation (redémarrage, …)
  8. Files and Registry ( <— C’est ici que vous ajoutez les fichiers, registre et autres variables d’environnement de votre future application)
    1. Filesmsi1
      A partir de l’onglet « System View », sélectionnez le dossier d’installation de votre application source
      A partir de l’onglet « Project View », sélectionnez le dossier de destination
      Cliquez sur le bouton <Add Folder>
    2. Registry
      A partir du fichier issu de RegShot, sélectionnez les clés et les valeurs à ajouter
  9. Shortcuts and Other Items
    1. Shortcuts : ajoutez ici la création de raccourcis
    2. INI Files : ajoutez ici la création de fichier INI spécifique ou modifiez un fichier INI existant
    3. Environnement variables : ajoutez/modifiez des variables d’environnement (Poste de Travail/Propriété/Avancé/Variable d’environnement)
    4. Service Management : déterminez ici l’exécutable à configurer en tant que service et gérez son mode de démarrage
  10. Dialogs and Actions

    1. Dialogs : ici, vous pouvez ajouter/modifier les boites de dialogue prédéfinies dans l’application. En effet, un fichier MSI, tel une application, communique avec son utilisateur (licence, path, …).
    2. Dialog Sequencing : le séquencement des boites de dialogue peut être configuré
  11. A vos marques, prêts, …., packagez et testez
    Ctrl+B

7. Ajouter votre fichier MSI pour déploiement sur votre parc

Cette section est ou sera abordée dans l’article « Implémentation GLPI »

1. Pré-requis

ssh étant un protocole sécurisé, il faut impérativement que la clé publique du certificat d’identification du serveur maître soit recopié sur chaque serveur fils, pour que la connexion puisse s’effectuer sans saisie de mot de passe.
A noter qu’on peut rapidement déployer la clé publique sur les serveurs fils en utilisant ce script :
scp id_svocs.pub $1:/root/
ssh $1 "cat /root/id_svocs.pub >>/root/.ssh/authorized_keys"
qui va s’utiliser ainsi :
/root/majiddsapub nom_du_serveur
Il faudra simplement taper deux fois le mot de passe de root pour réaliser l’opération.
Bon, okay, vous avez accès à la commande : ssh-copy-id
ssh-copy-id -i ~/.ssh/id_dsa.pub user@machine

2. Création d’un script

2.1 Stockage des scripts

Il est toujours intéressant de pouvoir s’y retrouver, surtout au bout de quelques mois d’intervention. Voici un exemple d’arborescence mise en œuvre :
 /root/scripts : racine des scripts. On stocke ici les fichiers contenant les listes de serveurs à traiter (on peut avoir plusieurs listes selon les opérations à effectuer).
 /root/scripts/20090304/ dossier contenant les scripts créés le 4 mars 2009. On y retrouvera au minimum le script maître, par exemple : script. On pourra également trouver le script qui doit s’exécuter sur les serveurs distants : scriptdistant.

2.2 Liste des serveurs

Dans un fichier texte, insérer la liste des serveurs, avec une ligne par serveur. Ne pas laisser de ligne vide. Utiliser de préférence les noms dns, qui garantissent un accès dans tous les cas de figure aux serveurs distants.

2.3 Script serveur

Voici un exemple de script, qui peut être adapté en fonction des besoins :
 
# Mise a jour de la liste des rpm
for serveur in $(cat ../listeserveurs)
do
echo "serveur en cours de traitement : "$serveur
scp /root/majlisterpm $serveur:/root/
scp scriptdistant $serveur:/root/
ssh $serveur /root/scriptdistant
done
Ce programme va recopier le fichier /root/majlisterpm sur chaque serveur, le fichier scriptdistant, puis va exécuter le fichier scriptdistant préalablement recopié.
Ne pas oublier de rendre exécutable le script :
chmod +x script

3. Utilisation de dsh

dsh est un utilitaire qui permet de réaliser ce que fait le script précédent, à savoir générer les commandes pour un ensemble de serveurs.
La syntaxe est simple :
dsh  [-m machinename | -a | -g groupname] [-r remoteshellname] [-c | -w | -i | -F forklimit ] -- commandline
 m : permet d’indiquer sur quelle(s) machine(s) doit être exécuté le script (nom des machines séparées par une virgule)
 a : exécute le script sur toutes les machines déclarées dans le fichier /etc/dsh/machines.list
 g : exécute le script pour le groupe de machines décrit dans /etc/dsh/group/nomgroupe (équivalent au fichier listeserveurs ci-dessus)
 f listeserveurs : exécute le script pour le groupe de machines décrit dans le fichier indiqué (pas forcément dans /etc/dsh/group/)
 r : par défaut, dsh va exécuter les scripts en utilisant rsh. Il est possible de forcer l’exécution avec ssh, par exemple, en utilisant cette option. Ce paramètre peut également être modifié par défaut dans le fichier /etc/dsh/dsh.conf
 c : exécute les commandes en parallèle sur l’ensemble des machines
 w : attend que le traitement sur une machine soit terminé avant d’entamer le travail sur la machine suivante
 i : quand l’exécution est demandée sur plusieurs machines en parallèle (option -c), crée autant de processus que de machines traitées
 F : idem que -c, mais en limitant le nombre de traitements parallèles
 v : mode verbeux
 q : mode silencieux
Ainsi, le script précédent va pouvoir prendre la forme suivante :
dsh -f ./listeserveurs -r ssh /root/scriptdistant

3.2 Script distant

On écrit le script qui va s’exécuter sur le serveur distant. Dans notre exemple, on va programmer l’exécution de majlisterpm une fois par semaine :
cat scriptdistant
if test ! -e /etc/cron.weekly/majlisterpm
then
ln -s /root/majlisterpm /etc/cron.weekly/majlisterpm
fi
Ne pas oublier de rendre le script exécutable :
chmod +x scriptdistant
Autre exemple, pour modifier le compte d’envoi des messages systèmes dans le fichier /etc/postfix/aliases :
cat scriptdistantpostfix
cp /etc/postfix/aliases /etc/postfix/aliases.old
sed s/^root:.*$/"root: manouvelleadressemel@mondomaine.com"/ /etc/postfix/aliases.old > /etc/postfix/aliases

3.3 Exécution du script

Il suffit de lancer l’exécution du script :
./script
Mise en place de l’enregistrement du résultat de l’exécution
Par défaut, tous les messages d’exécution s’afficheront sur la console. Si on veut enregistrer le résultat des commandes, il suffit de modifier le script en redirigeant toutes les commandes vers un fichier log, qu’on pourra alors consulter tranquillement…
Par exemple :
$log = /var/log/script.log
`date` > $log
# Mise a jour de la liste des rpm
for serveur in $(cat ../listeserveurs)
do
echo "serveur en cours de traitement : "$serveur >> $log
scp /root/majlisterpm $serveur:/root/ 1>>$log 2>>$log
scp scriptdistant $serveur:/root/ 1>>$log 2>>$log
ssh $serveur /root/scriptdistant 1>>$log 2>>$log
done
echo "fin de traitement a " `date` >>$log
Ce script a pour objectif de changer le mot de passe d’un compte passé en paramètre sur l’ensemble des serveurs UNIX de votre parc.
Pré-requis :
  • Se connecter en tant que ROOT sur votre serveur
  • Configurer un échange de clés SSH entre votre serveur et l’ensemble des serveurs de votre parc
  • Une liste des serveurs cibles dans le fichier /root/scripts/listedesserveursatraiter
Utilisation :
#ChangePasswd.sh <nom du compte>

ex : #ChangePasswd.sh root
Code :
#!/bin/bash

compte = $1

echo "Modification du mot de passe $compte sur l'ensemble des serveurs"
read -s -p "Nouveau mot de passe : " mdp
echo ""
if test -z "$mdp" ; then
        echo "Le mot de passe ne peut pas être vide"
        exit
fi
read -s -p "Vérification du mot de passe saisi : " mdp2
if test "$mdp" != "$mdp2" ; then
        echo "Les mots de passe saisis ne correspondent pas"
        exit
fi

echo "Modification du mot de passe du compte $compte"

SERVEUR=/root/scripts/listedesserveursatraiter
for serveur in `cat $SERVEUR|grep "^[^#].*$"`
do
        echo "Traitement du serveur : $serveur"
        ssh $serveur "echo $compte:$mdp|chpasswd"
done

echo "Après avoir VERIFIE LES CONNEXIONS sur CHAQUE SERVEUR, vous pouvez fermer ce shell"

echo "Après avoir VERIFIE LES CONNEXIONS sur CHAQUE SERVEUR, vous pouvez fermer ce shell"
 
Commentaires :  le fichier /root/scripts/listedesserveursatraiter contient la liste des serveurs :
serveur1
serveur2
#ce serveur ne sera pas traité
Parce que la connexion SSH est configurée par échange de clés, le script se charge d’envoyer, sans authentification, la commande chpasswd <nom du compte>:<mot de passe> à tous les serveurs.

1. Un SBS : c’est quoi ?

Bon nombre de petites et moyennes entreprises sacrifient l’informatique et la sécurité sur l’autel de la trésorerie et du manque de moyens.

Un SBS (Small Business Server) vous permettra de profiter d’un service informatique complet et autonome.

Complet, car vous profiterez d’une solution de messagerie et Webmail, d’un serveur d’impression, d’un serveur de fichiers central, d’une mise en réseau de vos postes de travail (Windows, Linux, …) facile, d’un accès Internet sécurisé, d’un antispam, d’un pare-feu, …

Autonome, une interface graphique (Web) vous permettra de configurer vos différents services.

2. Installation depuis le CD-ROM

La méthode la plus facile pour installer Zentyal sur un serveur (ou ordinateur) from scratch est l’utilisation du CD-ROM. Ce CD contient Zentyal et toutes ses dépendances. La version 3.0 repose sur la distribution Ubuntu Server 12.04 et est disponible en 32bits et 64bits.

Si vous souhaitez configurer votre partition ou spécifier votre serveur proxy, sélectionnez « expert mode ».

Une fois que l’installation est terminée, vous avez accès à l’interface web

https://<adresse IP du serveur Zentyal>

Loguez-vous en utilisant le nom d’utilisateur et le mot de passe deamandé lors de l’installation. Cepenadant, un utilisateur membre du groupe « admin » peut se loguer.

3. Installation depuis le dépôt Zentyal

3.1 Configuration du source.list

Sous Ubuntu 12.04 :

Ajoutez à votre fichier /etc/apt/sources.list

deb http://ppa.launchpad.net/zentyal/3.0/ubuntu precise main
deb http://archive.zentyal.org/zentyal 3.0 main extra

Le dépôt Zentyal et le PPA nécessitent une authentification.

Importez la clé public :

#apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 10E239FF
#wget -q http://keys.zentyal.org/zentyal-3.0-archive.asc -O- | apt-key add -

Vous pouvez aussi copier/coller la commande suivante :

#apt-get install -y python-software-properties && add-apt-repository ppa:zentyal/3.0 && apt-get update

3.2 Installation

L’architecture logcielle de Zentyal est modulaire, ce qui vous permet d’ajouter et supprimer des modules selon votre besoin. Vous disposez à ce jour de plus de 30 modules.

Zentyal simplifie son utilisation en proposant des profils. Chaque profil contient un groupe d’applications. Vous trouverez ci-dessous la liste des profils et de leurs applications :

  • zentyal-office: zentyal-samba, zentyal-printers, zentyal-antivirus, zentyal-ebackup, zentyal-remoteservices
  • zentyal-communication: zentyal-mail, zentyal-jabber, zentyal-asterisk, zentyal-mailfilter, zentyal-antivirus, zentyal-ebackup, zentyal-remoteservices
  • zentyal-gateway: zentyal-squid, zentyal-trafficshaping, zentyal-l7-protocols, zentyal-ebackup, zentyal-remoteservices
  • zentyal-infrastructure: zentyal-dhcp, zentyal-dns, zentyal-openvpn, zentyal-webserver, zentyal-ftp, zentyal-ntp, zentyal-ebackup, zentyal-remoteservices

Après modification de votre fichier sources.list, vous devez mettre à jour votre base de données :

#apt-get update
#apt-get install zentyal

Une fois que l’installation est terminée, vous avez accès à l’interface web

https://<adresse IP du serveur Zentyal>

Une interface graphique complète est disponible (je ne vous la recommande pas, SSH suffit) :

#apt-get install zenbuntu-desktop

Enfin rebootez votre serveur.

3.3 Installation de modules supplémentaires

Installation de tous les modules :

#apt-get install zentyal-all

Installation d’un module au choix :

#apt-get install zentyal-office
  • zentyal-antivirus : antivirus ClamAV
  • zentyal-asterisk : une solution de ToIP
  • zentyal-ca : serveur de certificats
  • zentyal-dhcp : attribution dynamique d’adresses IP
  • zentyal-dns : résolution de noms
  • zentyal-ebackup : sauvegarde en réseau
  • zentyal-firewall : pare-feu
  • zentyal-ftp : transfert de fichier
  • zentyal-ids : détection d’intrusion réseau
  • zentyal-jabber : messagerie instantanée
  • zentyal-l7-protocols : traffic shapping (optimisation des flux réseau) et QoS via layer 7
  • zentyal-ltsp : virtualisation des postes de travail
  • zentyal-mail : messagerie électronique
  • zentyal-mailfilter : anti-spam
  • zentyal-monitor : supervision
  • zentyal-network : interface web d’admistration Zentyal
  • zentyal-ntp : serveur de temps identique à cet article
  • zentyal-nut : interface Web d’administration des onduleurs du type UPS
  • zentyal-objects
  • zentyal-openvpn : accès VPN
  • zentyal-printers : serveur d’impressions
  • zentyal-remoteservices
  • zentyal-samba : serveur de fichiers
  • zentyal-services : gestion des services
  • zentyal-software : gestion des mises à jour
  • zentyal-squid : proxy
  • zentyal-trafficshaping : traffic shapping (optimisation des flux réseau)
  • zentyal-users : activation PAM et SSH
  • zentyal-usercorner : LDAP
  • zentyal-webserver : serveur apache
  • zentyal-radius : authentification réseau sécurisée
  • zentyal-webmail : serveur apache accès à votre messagerie
  • zentyal-zarafa : groupware

4. Machines virtuelles

Les installation des machines virtuelles ne sont pas réalisées régulièrement. Il peut donc y avoir des paquets non à jour. Si vous avez une connexion Internet, les dernières mises à jour seront appliquées durant l’installation.

1.Installation d’un serveur LDAP simplissime

Ici, je vais vous montrer comment installer un serveur LDAP minimaliste.

#apt-get install slapd ldap-utils

2.Configuration

Une fois installé, il nous faut définir un password pour root avec la commande suivante.

slappasswd

New password:

Re-enter password:

{SSHA}d2BamRTgBuhC6SxC0vFGWol31ki8iq5m

Copiez la ligne « {SSHA}d2BamRTgBuhC6SxC0vFGWol31ki8iq5m » et éditez le fichier « /etc/ldap/slapd.conf ».

#Assurez d’avoir les lignes suivantes ou de les décommenter, « chezmoi » est le petit nom que je veux donner à mon LDAP

suffix « dc=chezmoi » #j’ai choisi ce DC mais vous pouvez prendre autre chose bien sûre

directory « /var/lib/ldap » #par défaut

rootdn « cn=admin,dc=chezmoi »

rootpw {SSHA}d2BamRTgBuhC6SxC0vFGWol31ki8iq5m

Éditez le fichier /etc/ldap/ldap.conf et ajoutez :

BASE dc=chezmoi

3.Initialisation

Encore un petit effort ! Il nous faut maintenant créer un fichier contenant nos premières entrées LDAP. Je vous propose de créer un fichier nommé init.ldif et d’ajouter ce contenu (minimaliste : création d’une OU contacts pour y placer nos contacts) :

dn: dc=chezmoi

objectClass: dcObject

objectClass: organizationalUnit

dc: chezmoi

ou: Chezmoi

dn: ou=contacts,dc=chezmoi

objectClass: organizationalUnit

ou: contacts

On va arrêter LDAP, charger notre fichier et redémarrer LDAP :

# /etc/init.d/slapd stop

# slapadd -l ~/ldap.ldif

# /etc/init.d/slapd start

Il nous reste maintenant à télécharger le schéma correspondant à mozilla thunderbird à cette adresse :

Mozilla LDAP Schema

Placez son contenu dans un fichier, par exemple /etc/ldap/schema/mozilla-thunderbird.schema

(Note : il faut retirer les lignes suivantes de ce schéma sinon ldap ne veux pas redémarrer)

mozillaCustom2 $

mozillaCustom4 $

nsAIMid $

Ajouter au début du fichier /etc/ldap/slapd.conf la ligne suivante et redémarrez slapd, placer vous dans ~/mozilla/dist/bin et lancer thunderbird :

–> ajout de « include /etc/ldap/schema/mozilla-thunderbird.schema » dans au début du fichier « /etc/ldap/slapd.conf »

# /etc/init.d/slapd restart

# cd ~/mozilla/dist/bin

# ./thunderbird

Maintenant, il suffit d’ajouter un nouvel annuaire LDAP depuis la partie carnet d’adresses de Thunderbird. Les paramètres à entrer sont les suivants (pour notre exemple) :

Name : chezmoi

Hostname : localhost

base DN : ou=contacts, dc=chezmoi

Bind DN : cn=admin,dc=chezmoi

Vous pouvez maintenant créer des contacts qui seront directement enregistrés dans votre annuaire LDAP !! 🙂

1.           Introduction

OCS Inventory est une application client-serveur qui permet l’inventaire complet et dynamique d’un parc informatique. Il prends en charge les OS tels que Microsoft, Linux (toutes distributions), Solaris, AIX, HP-UX, Mac OS, …

Ce document décrit les différentes étapes d’installation et de configuration du serveur OCS Inventory et son agent d’inventaire sur les systèmes Microsoft Windows et Linux ainsi que les processus de compilation d’applications à partir des sources.

2.           A qui s’adresse cette procédure

Ce document s’adresse à des ingénieurs ou administrateurs Microsoft et Linux ayant déjà administrés un serveur Microsoft et/ou Linux.

3.           Pré-requis

3.1.       Pré-requis « Matériels »

    • Aucun

3.2.       Pré-requis « Logiciels »

  • Aucun

3.3.       Pré-requis « Logistique»

  • Accès en tant qu’administrateur du serveur cible

4.  Installation et configuration sous Microsoft Windows

4.1.          Installation de l’agent OCS

  1. Se connecter sur le serveur cible en tant qu’administrateur
  2. Télécharger l’agent OCS Inventory à partir du portail OCS Inventory
  3. Exécuter le programme OcsAgentSetup.exe
  4. Cliquer sur le bouton Suivant
  5. Cliquer sur le bouton « J’accepte »
  6. Configurer l’agent OCS comme ci-dessous puis cliquer sur le bouton Suivant
  7. Cliquer sur le bouton Installer

5.  Déploiement sous Microsoft Windows

5.1.          Installation de l’outil de déploiement

A partir de l’archive OCSNG_AGENT_DEPLOYMENT_TOOL_1.02.zip

installer le programme “OCS Inventory NG Agent Deployment Tool” avec la configuration par défaut.

5.2.          Déploiement de l’agent Windows

  1. Exécuter le programme « OCS Inventory NG Agent Deployment Tool » via le menu démarrer de votre station de travail
  2. Cliquer sur le bouton « Windows Agent »
  3. Sélectionner la plage d’adresses IP ou les serveurs à déployer
  4. Configurer le déploiement comme ci-dessous :
  5. S’authentifier en tant qu’administrateur du domaine
  6. Appuyer sur le bouton « Start »


5.3.          Déploiement de l’agent Linux

  • Appuyer sur le bouton « Start »

6. Installation du CPAN et des modules PERL

6.1.          Pré-requis  Debian

# apt-get install bzip2 lynx make gzip ncftp ftp pgp wget unzip curl

6.2.          Installation du CPAN

# perl -MCPAN -e shell

Répondre ok partout

Your http_proxy? [] 172.16.1.2:3128

cpan> install Bundle::CPAN

6.3.          Installation des modules PERL

cpan> install Digest::MD5 XML::Simple Net::IP LWP Proc::Daemon Proc::PID::File Compress::Zlib

6.4.          Installation des packages RPM

# yum install dmidecode perl-LWP-UserAgent-Determined.noarch lspci pciutils ipmitool

7. Installation de l’agent OCS

7.1.          Installation à partir des paquets

#apt-get install ocsinventory-agent

7.2.          Installation à partir des sources

En tant que : ROOT

cd /usr/local/src

wget –proxy=off http://monserveurquicontientlessources/telechargement/Ocsinventory-Agent-1.1.2.tar.gz

cp Ocsinventory-Agent-1.1.2.tar.gz /tmp

cd /tmp

tar -xzvf Ocsinventory-Agent-1.1.2.tar.gz

cd Ocsinventory-Agent-1.1.2

perl Makefile.PL

make

make install

Do you want to configure the agent

Please enter ‘y’ or ‘n’?> [y]

Where do you want to write the configuration file?

0 -> /etc/ocsinventory

1 -> /usr/local/etc/ocsinventory

2 -> /etc/ocsinventory-agent

?>  2

Do you want to create the directory /etc/ocsinventory-agent?

Please enter ‘y’ or ‘n’?> [y]

What is the address of your ocs server?> [ocsinventory-ng] monServeurOcsQueJeViensDInctaller

Do you need credential for the server? (You probably don’t)

Please enter ‘y’ or ‘n’?> [n]

Do you want to apply an administrative tag on this machine

Please enter ‘y’ or ‘n’?> [y]

tag?> DEV ou SIMU ou PROD

Do yo want to install the cron task in /etc/cron.d

Please enter ‘y’ or ‘n’?> [y]

Where do you want the agent to store its files? (You probably don’t need to change it)?> [/var/lib/ocsinventory-agent]

Do you want to create the /var/lib/ocsinventory-agent directory?

Please enter ‘y’ or ‘n’?> [y]

Should I remove the old linux_agent

Please enter ‘y’ or ‘n’?> [n]

Do you want to use OCS-Inventory software deployment feature?

Please enter ‘y’ or ‘n’?> [y]

Do you want to send an inventory of this machine?

Please enter ‘y’ or ‘n’?> [y]

A Venir

Publié: 13 février 2013 dans Haute disponibilite
Tags:, , , , , , ,

A Venir.

  1. NTP : C’est quoi ?

Le Network Time Protocol (NTP) est un protocole utilisé pour synchroniser précisément l’horloge locale avec un serveur de temps en réseau. Le réseau NTP est est un réseau hiérarchique ouvert.

La hiérarchie est divisée en niveaux, appelés stratum. Le plus précis est le stratum 0 et est réservé aux horloges atomiques. Le niveau suivant, Stratum 1, est quant à lui réservé aux serveurs NTP locaux : les serveurs horloges atomiques. Les Stratum 2 à 15 sont les serveurs NTP connectés.

Ce manuel montre comment installer et maintenir un service NTP précis.

  1. Pourquoi un serveur de temps ?

Un serveur NTP n’est pas obligatoire. Néanmoins, je vous le recommande fortement. Dans les architectures suivantes :

    • Microsoft Active Directory
    • Messageries réseaux (Micosoft Echange, Postfix, Lotus Notes…)
    • Supervision des serveurs
    • Centralisation des logs (ex : syslog)
  1. Allons-y !!

 

    • Installation du service NTP

#apt-get install ntpd

Le service ntpd est à la fois client ET serveur. Il synchronise votre horloge système et fournit un service de temps.

    • Un peu de réseau avant tout

Le service NTP est un service réseau UDP et utilise le port 123.

Il ne vous reste plus qu’à configurer votre pare-feu pour autoriser le flux UDP entrant et sortant entre Internet et le port 123 de votre tout nouveau serveur NTP.

    • Configuration du service NTP

Le fichier de configuration du service ntpd est /etc/ntp.conf. Mais la configuration par défaut doit être modifiée afin d’optimiser le service.

La première section à modifier est la liste des serveurs de stratum faible sur lesquels vous allez vous synchroniser.

Le site https://www.cru.fr/services/ntp/serveurs_francais vous fournira une liste non exhaustive des serveurs de temps disponibles.

Votre choix doit être pertinent et prendre en compte la distance réseau entre votre serveur NTP et le serveur cible. Pour ce faire, vous utiliserez la commande traceroute et choisirez le serveur accessible avec le moins de rebonds.

#traceroute mon.serveur.ntp.que.je.veux.me.synchroniser

Ok, vous avez choisi votre serveur ?

Alors nous allons l’utiliser pour notre synchronisation primaire, puis passer la main à un pool de serveurs qui ne feront que corriger notre écart de temps.

Ainsi, vous vous synchroniserez non pas sur un seul serveur mais sur un pool de serveurs. En effet, vous devez prendre en considération une éventuelle panne serveur ou encore une éventuelle saturation. Le pool proposé ci-dessous, vous permettra de vous synchroniser avec de multiples serveurs disponibles.

server mon.serveur.ntp.que.je.veux.me.synchroniser iburst

server 0.fr.pool.ntp.org

server 1.fr.pool.ntp.org

server 2.fr.pool.ntp.org

server 3.fr.pool.ntp.org

La configuration ne s’arrête pas ici. En effet, que faire si votre connexion Internet est coupée …

C’est pourquoi vous indiquez à votre serveur NTP qu’en dernier recours il se synchronise avec son horloge locale et le service NTP ne s’arrêtera pas et attendra le retour à la connexion des serveurs dans l’ordre indiqué.

Votre configuration doit être comme suit :

server mon.serveur.ntp.que.je.veux.me.synchroniser iburst

server 0.fr.pool.ntp.org

server 1.fr.pool.ntp.org

server 2.fr.pool.ntp.org

server 3.fr.pool.ntp.org

server 127.127.1.0

fudge 127.127.1.0 stratum 10

    • Mon service de temps fonctionne ?

Maintenant que vous avez paramétré votre service de temps, voyons s’il fonctionne correctement et si sa synchronisation est optimale.

Pour cela, on redémarre le service :

#/etc/init.d/ntpd restart

On monitore les messages :

#tail –f /var/log/syslog

Après 10 à 20 secondes (voir minutes si vous avez oublier d’ajouter iburst sur votre serveur préféré), vous devez voir apparaître les messages suivants :

Mar 7 16:50:22 hostname ntpd[22402]: synchronized to xxx.xxx.xxx.xxx, stratum 2

Si ce message n’apparaît pas, alors vous ne vous synchroniser pas avec un quelconque serveur.

Analysons le service NTPD :

#ntpd –c lpeer

Si les colonnes delay, offset ou jitter ne sont pas à 0 et qu’aucun serveur n’est précédé d’une *, alors vous n’êtes pas synchronisé.

Vérifiez que l’iburst est ajouté à votre premier serveur.

Exemple de serveur synchronisé :

remote           refid      st t when poll reach   delay   offset  jitter

==============================================================================

*milo.mcs.anl.go 192.5.41.40      2 u    4   64   77   46.213   67.753   2.207

-europium.canoni 193.79.237.14    2 u   63   64   37   97.375   71.020   1.875

-dtype.org       69.25.96.13      2 u    2   64   77   86.956   69.178   1.804

+smtp130.junkema 216.218.254.202  2 u    2   64   77   87.266   67.677   0.916

+kechara.flame.o 216.218.254.202  2 u    –   64   77   89.183   68.717   1.713

-host2.kingrst.c 99.150.184.201   2 u    –   64   77   24.306   62.121   2.608

LOCAL(0)        .LOCL.          10 l   59   64   37    0.000    0.000   0.002

  • Mes serveurs se synchronisent-il avec mon nouveau serveur de temps ?

 #tcpdump dst <serveur à vérifier s’il se connecte> and port ntp

    • Ouvrons le service NTP sur notre réseau

Une fois que votre serveur est synchronisé, vous pouvez le configurer en tant que fournisseur de temps.

Ajoutez dans /etc/ntp.conf :

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

restrict 192.168.2.0 mask 255.255.255.0 nomodify notrap

Vous pouvez ajouter autant d’adresses CIDR que nécessaire.

    • A vos marques, prêt, synchronisez …

Pour ce faire, vous devez tout d’abord installer le service NTPD sur chacun des  serveurs à synchroniser, puis les configurer comme suit :

Sous linux/unix :

Dans le fichier /etc/ntp.conf, ajoutez :

server adresse IP de votre serveur de temps

puis redémarrez votre service NTPD.

Sous Windows :

Les ordinateurs Windows utilisent le protocole SNTP (Simple NTP).

Configuration : double-cliquez sur l’horloge windows et naviguez vers l’onglet « Internet Time »

Ajoutez l’adresse IP de votre serveur de temps.

Sachez que si vous disposez d’un serveur Active Directory, vous n’avez qu’à réaliser cette configuration sur votre serveur racine. En effet, chaque client Active Directory prend par défaut le temps fournit par le serveur maître.

 

  1. Et les sauts dans le temps ?

Il peut arriver que certains systèmes soient très désynchronisés. Que se passe-t-il si un serveur en avance doit reculer son horloge pour se synchroniser ? Vais-je perdre de l’information ? Quid de l’horodatage des informations ?

Le mode de gestion appartenant à chaque OS, les clients NTP se synchronisent progressivement par 1000eme de secondes pour enfin arriver à synchroniser.

  1. Serveur NTP sous Windows ou sous Unix/Linux ?

Cette question peut se poser. Par expérience, je vous conseille un serveur sous Unix/Linux. En effet, la majorité des serveurs de temps sous Windows, bien que gratuits sont de véritables boites noires. A contrario, celui sous Unix/Linux fournit les outils et les informations d’analyse de problèmes.

SOUS ROOT

apt-get install apache2 apache2-doc lynx libapache2-mod-php5 mysql-server-5.0

Installer test.php

cat > /var/www/test.php
<?  phpinfo()  ?>
Ctrl-D pour finir

si besoin : PhpMyAdmin

Installation

#apt-get install phpmyadmin
CONFIGURER PHPMYADMIN
http://votreserveur/phpmyadmin/
Login : root
Mot de passe : aucun

1. Modifier le mot de passe ROOT
2. Quitter PHPMYADMIN

MySQL est un système de gestion de base de données distribué, à l’origine, sous licence GPL. Il offre de nombreuses options et fonctionnalités permettant de répondre aux besoins d’applications légères et performantes.

Depuis son acquisition par SUN Microsystems puis le rachat de SUN par Oracle (2009), MySQL est également disponible sous licence propriétaire.

  1. Performances MySQL : choisir le moteur

MySQL propose 2 moteurs de base de données : MyISAM et INNODB

  1. MyISAM

Les avantages :

  • très rapide pour les requêtes de type SELECT ou INSERT
  • il supporte les index fulltext : permet d’effectuer des recherches sur des mots en se basant sur un index spécifique, accélérant ainsi les recherches
  • il gère les conflits d’accès (ou lock) : permet de verrouiller une table pour des opérations bien précises
  • très facile à administrer : possibilité de recopier directement les fichiers d’un serveur vers un autre, support des tables compressées …

Les inconvénients :

  • il ne supporte pas les transactions
  • il ne supporte pas les clés étrangères
  • Système de fichiers MyISAM : une table est représentée par un fichier .frm, un fichier de données .myd (MYisamData) et un fichier d’index .myi (MYisamIndex).
    1. InnoDB

Les avantages :

  • il supporte ACID (ci-dessous) : permet d’assurer que chaque enregistrement sera complètement réussi, ou complètement échoué, ainsi les risques d’erreurs sont impossibles, même en cas de panne
  • il gère les transactions (instructions sql BEGIN, COMMIT, ROLLBACK …)
  • il supporte les clés étrangères et les intégrités référentielles
  • il possède un système de récupération automatique en cas de crash

Les inconvénients :

  • il ne permet pas les index fulltext
  • son administration est un peu plus complexe (gestion de tablespace, paramètres supplémentaires dans le my.cnf …)
  • le moteur de stockage est plus lent que d’autres et gourmand en ressources mémoires et en espace disque
  • Système de fichiers InnoDB : chaque table est représentée par un fichier .frm.

Point particulier : le modèle ACID – Atomicité, Consistance, Isolation, Durabilité

 

Atomicité

L’atomicité est un point important dans le modèle ACID, qui apporte à InnoDB les fonctions suivantes :

  • Autocommit
  • COMMIT
  • ROLLBACK
  • Sécurisation du schéma de base de données

Si l’auto-validation est activée alors toute transaction débutée est considérée comme terminée. Dans le cas contraire, une commande SQL COMMIT ou ROLLBACK termine la transaction courante et en commence une autre. Ces deux commandes vont libérer tous les verrous InnoDB qui étaient posés durant la transaction. Un COMMIT signifie que les modifications durant la transaction seront enregistrés, et rendus visibles aux autres. Un ROLLBACK, d’un autre coté, annule toutes les modifications.

Si la connexion a activé l’auto-validation, l’utilisateur peut faire une transaction multi-commandes en commençant la transaction avec la commande START TRANSACTION ou BEGIN et en la terminant avec COMMIT ou ROLLBACK.

Consistance

La consistance dans le modèle ACID apporte au moteur InnoDB une protection des données en cas de crash. Pour ce faire, on configurera 2 options :

  • InnoDB doublewrite buffer.
  • InnoDB crash recovery

Isolation

L’isolation permet un cloisonnement des transactions.

Outre l’aspect sécurité, cette isolation assurera une stabilité du système pour chaque transaction.

Durabilité

La durabilité offre une indépendance du système de gestion de bases de données face aux évolutions matérielles.

    1. Choisir le bon moteur :

On optera pour InnoDB principalement lorsque l’on utilisera un système d’information qui n’admet pas les erreurs ou qui doit utiliser des clés étrangères ou des intégrités référentielles.

MyISAM restera quant à lui le meilleur choix dans le cas où l’on fait principalement des requêtes de lecture ou d’insertion.

  1. Haute disponibilité

Il existe 3 grandes méthodes pour mettre en place une architecture de haute disponibilité avec MySQL.

La disponibilité peut en fait se traduire par la formule suivante :

uptime / (uptime + downtime)

soit le rapport de l’uptime sur le temps pendant lequel le serveur aurait dû être disponible.

  • 90% soit 36,5 jours d’indisponibilité par an
  • 99,9999% soit 31 secondes d’indisponibilité par an
    1. MySQL Replication

 mysql-replication

Le serveur maître est le serveur à contacter pour l’insertion, la mise à jour et la suppression de données et de champs dans la base de données. En effet, chaque opération est enregistrée dans un log binaire (Statement Based ou Row Based) ce qui permet non-pas d’enregistrer uniquement la requête SQL mais en fait le résultat (ex : une requête avec une valeur aléatoire comme uniqid ne renvoie pas le même résultat en fonction du nœud sur lequel elle est exécutée). Les serveurs MySQL esclaves se contentent de ré-exécuter toutes les opérations d’écritures effectuées sur le maître.

Les requêtes de lecture peuvent donc être exécutées sur les esclaves.

Avantages :

  • Fonctionnalité native et stable depuis MySQL v3.0
  • Utilisation possible de SSL entre les nœuds

Inconvénients :

  • Copie asynchrone
  • SPOF
  • Load balancing non géré par MySQL
    1. MySQL Cluster

mysql-cluster (source : mysql.com)

 MySQL Cluster utilise trois différents types de nœuds :

  • Data node (processus ndbd) : ces nœuds contiennent les données des tables NDB.
  • Management node (processus ndb_mgmd) : utilisé pour la configuration et la supervision du cluster. Ils ne sont nécessaires que pour le démarrage d’un autre nœud (Data node ou SQL node).
  • SQL node (processus mysqld) : Un serveur MySQL tel qu’utilisé sur un serveur MySQL classique. Il se connecte aux Data nodes pour le stockage et la lecture des données.

Avantages :

  • Fail-over automatique
  • Backup possible à chaud
  • Mise à jour d’un nœud à chaud
  • Faible coût
  • Scalable en écriture comme en lecture

Inconvénients :

  • Requêtes complexes, notamment pour les jointures qui peuvent être longues
  • Moteur SGBD : pas de fulltext, ni de tests d’intégrité référentielle
    1. Shared Disk Clustering

Cette solution repose sur un ou plusieurs serveurs MySQL qui ont leurs données en commun sur un SAN réseau. Toutes les données sont donc exactement les mêmes sur tous les serveurs MySQL, si et seulement si le cache est désactivé.

Actif-Passif

Le mode Actif-Passif est mis en place pour qu’un autre serveur MySQL (passif) prenne le relai si le serveur actif venait à tomber

Avantage :

  • Disponibilité assurée par le serveur passif si l’actif tombe (avec un temps de transition)

Inconvénients :

  • Un seul serveur sur deux travaille malgré le fait que les deux soient en fonctionnement
  • Le basculement doit être géré par un programme externe

Actif-Actif

Dans ce cas, tous les serveurs travaillent.

Avantages :

  • Supporte de grands volumes de données avec connexion entre serveur applicatif et serveur de base de données importante
  • Les deux nœuds travaillent

Inconvénients :

  • Le cache est un problème très important dans ce cas là. Il ne peut quasiment pas être utilisé car chaque nœud a son propre cache

Dans ces deux méthodes (actif-passif, actif-actif), le gros problème est le SPOF au niveau du SAN.