Contact Me

Evocatio - Solutions Technologiques

514.667.0559

10
Jun

But

Installation d’un serveur DNS(bind9) avec un backend MySQL sous Ubuntu 10.04

Pré-requis

  1. Préparer l’environement en exécutant :
    mkdir -p /usr/local/src/bind9
    cd /usr/local/src/bind9
  2. Installer les pacquets nessécaires :
    apt-get update -y
    apt-get install -y build-essential mysql-server fakeroot bison libmysqlclient15-dev \
     libkrb5-dev libkrb5-dev libssl-dev libtool libdb-dev libldap2-dev libldap2-dev libcap2-dev \
     hardening-wrapper debhelper libxml2-dev libgeoip-dev
    apt-get source -y bind9

BIND

Préparation

  1. Récupurer le nom du répertoire (varie selon la version)
    ls -1
    Voici un exemple de résultat, le nom recherché est marqué en gras
    bind9-9.5.1.dfsg.P2 bind9_9.5.1.dfsg.P2-1.diff.gz bind9_9.5.1.dfsg.P2-1.dsc bind9_9.5.1.dfsg.P2.orig.tar.gz
  2. Entrer dans le répertoire
    cd bind9-9.5.1.dfsg.P2
  3. Éditer le fichier des règles de compilation
    vi debian/rules
    Et changer la ligne –with-dlz-mysql=no par –with-dlz-mysql=yes ou vous pouvez exécuter la commande suivante dans vi :
    :%s/dlz-mysql=no/dlz-mysql=yes/g
    Enregistrer le fichier et quitter
    :wq

Compilation

Pour compiler l’application exécuter la commande suivante :

dpkg-buildpackage -rfakeroot -b
Si dpkg-buildpackage vous spécifie qu’il manque des dépendances (unmet dependencies) Installer les dépendances avec la commande apt-get install et réessailler.

Installation

  1. Reculer d’un répertoire :
    cd ..
    ls -l
    bind9-9.5.1.dfsg.P2 bind9_9.5.1.dfsg.P2-1_amd64.changes bind9_9.5.1.dfsg.P2-1_amd64.deb bind9_9.5.1.dfsg.P2-1.diff.gz bind9_9.5.1.dfsg.P2-1.dsc bind9_9.5.1.dfsg.P2.orig.tar.gz bind9-doc_9.5.1.dfsg.P2-1_all.deb bind9-host_9.5.1.dfsg.P2-1_amd64.deb bind9utils_9.5.1.dfsg.P2-1_amd64.deb dnsutils_9.5.1.dfsg.P2-1_amd64.de libbind9-40_9.5.1.dfsg.P2-1_amd64.deb libbind-dev_9.5.1.dfsg.P2-1_amd64.deb libdns45_9.5.1.dfsg.P2-1_amd64.deb libisc45_9.5.1.dfsg.P2-1_amd64.deb libisccc40_9.5.1.dfsg.P2-1_amd64.deb libisccfg40_9.5.1.dfsg.P2-1_amd64.deb liblwres40_9.5.1.dfsg.P2-1_amd64.deb lwresd_9.5.1.dfsg.P2-1_amd64.deb
  2. Installer les pacquets sur votre système.
    dpkg -i *.deb

Configuration

  1. Forcer bind a être exécuter en un seul thread. Éditier le fichier /etc/default/bind9/etc/default/bind9
    1. run resolvconf? RESOLVCONF=yes
    2. startup options for the server OPTIONS=”-u bind -n 1
      Bind semble avoir un problème lorsque qu’il est exécuter en multithread. L’erreur “mysql driver unable to return result set for findzone query” apparait dans les fichier de log et bind fini par arrêter.

  2. Voici un exemple pour le fichier /etc/bind/named.conf.localcat /etc/bind/named.conf.local

    dlz "Mysql zone" {
       database "mysql
       {host=localhost dbname=Nom_de_la_Base_de_Donnee user=Nom_d_utilisateur pass=Mot_de_passe ssl=false}
       {select zone from dns_records where zone = '$zone$'}
       {select ttl, type, mx_priority, case when lower(type)='txt' then concat('\"', data, '\"')
            when lower(type) = 'soa' then concat_ws(' ', data, resp_person, serial, refresh, retry, expire, minimum)
            else data end from dns_records where zone = '$zone$' and host = '$record$'}";
    };

|| Read more »

3
May

Est-ce possible, un système pour faire la synchronisation entre OpenLDAP et Active Directory ?

Je suis présentement en train de créer une série d’applications pour faire tout simplement(relatif) synchronisé un OpenLDAP (master) vers un Active Directory (Slave).

Voici un premier draft pour la suppression d’élément.  Ce script écrit en C# (sous Mono), a comme bût d’avoir un point d’accès pour la suppression d’attribut ou d’entré d’un OpenLDAP et d’un Active Directory.

Je vais créer un projet Open Source avec le code que j’ai déjà fait sous peu, avec une licence GNU (ou similaire).  Mais en attendant voici le code pour la suppression d’élément.

ldap-delete.zip

3
May

Plusieurs personnes sont insatisfaite du changement, vers la gauche, des boutons dans Lucid

Voici une procédure simple pour remettre les boutons à Droite

gconftool-2 --set "/apps/metacity/general/button_layout" --type string ":minimize,maximize,close"

C’est aussi simple pour les remettre à Gauche

gconftool-2 --set "/apps/metacity/general/button_layout" --type string "maximize,minimize,close:"

Et voilà !! =)

31
Mar

Description

La configuration d’OpenLDAP c’est un peu compliquer. cn=config est toujours utilisé, par contre lors de l’installation du paquet, uniquement un squelette de la configuration est installé.

On ne vous demande plus de mot de passe lors de l’installation du paquet et “dpkg-reconfigure slapd” ne fait que restaurer le squelette de la configuration initial.  Vous devez utiliser le compte root (ou sudo) pour configurer la base de donnée, dn et acl.

Voici une procédure sur comment installer OpenLDAP sous Ubuntu 9.10 ou 10.4.

Le guide officiel sur help.ubuntu.com n’est pas à jour et ne spécifie pas comment installer OpenLDAP sous Karmic ou Lucid.

Dans ce tutoriel nous utiliserons dc=example,dc=com comme arbre LDAP.  Ajuster en conséquence.

|| Read more »

26
Mar

Symptômes

Si vous avez oublié ou perdu le mot de passe admin, vous devez le réinitialiser manuellement.

Résolution

Pour réinitialiser le mot de passe admin, éditer le fichier FISHEYE_INST/config.xml (faire une copie de sauvegarde avant, bien-sur).

Vous allez voir quelques chose comme :

cd7a5b7a060bc8c1ddb069c4bcf5c113

Changer le “admin-hash” pour admin-hash="21232F297A57A5A743894A0E4A801FC3"

1813a7cb35446559d4598d2294462941

Redémarrer Fisheye pour que cela prend effet. Vous pouvez maintenant vous identifier dans la section Administration de Fisheye avec le mot de passe : admin. Prenez note de changer le mot de passe dans l’interface.

Référence

25
Mar
  1. Démarrer le logiciel WinFF (http://winff.org)
  2. Cliquer sur ajouter pour ajouter des vidéo à convertir.
  3. Sélectionner le profil de sortie tel que spécifier.
  4. Attendre la convertion …
  5. Si vous avez de besoin de paramètre avancé, vous pouvez consulter la documentation pour le programme ffmpeg (logiciel utilisé en arrière plan) http://ffmpeg.org/documentation.html
20
Nov

Introduction

Pour continuer la série d’article sur asterisk, celuis-ci vous expliquera comment compiler et installer les modules complémentaire (addons) d’asterisk. Ainsi comment configurer le CDR (Call Detail Record, registre des appels en français). Bonne lecture. Veuiller prendre note que les versions spécifier dans cet artricle sont les derniers versions stables disponible lors de la création de celui-ci.

|| Read more »

20
Nov

Introduction

Ceci est le premier post d’une série sur l’installation et la configuration du PBX open source Asterisk. Vive l’open source !! =) Dans ce tutoriel je vais démontre comment installer Asterisk 1.6.1.9 (version stable de la branche 1.6 lors de la création de ce post).

Pré-requis

Avoir installé une Debian de Base

Paquet à installer :

25afbf64b8b8f955e4d373eb4b767c8b

Télécharger asterisk :

# wget http://downloads.asterisk.org/pub/telephony/asterisk/\
releases/asterisk-1.6.1.9.tar.gz

|| Read more »

20
Nov

Introduction

Prenons par exemple que vous générez le tableau suivant, à partir d’un code PHP, et que vous voulez générer un fichier XML à partir des même données.

My CD Collection

Title Artist
Empire Burlesque Bob Dylan
Hide your heart Bonnie Tyler
Greatest Hits Dolly Parton
Still got the blues Gary Moore

Modification du code

Voici un exemple de code source :

<?php
// prendre note que le tableau(array) $catalog doit exister
// il peut être généré par programmation ou bien par une base de donnée
?>
 
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
	<tr bgcolor="#9acd32">
		<th>Title</th>
		<th>Artist</th>
	</tr>
	<?php
		foreach($catalog as $cd) {
		?><tr><td><?=$cd['title'];?></td><td><?=$cd['artist'];?></td></tr><?
		}
	?>
</table>
</body>
</html>

Maintenant modifions le code source pour générer un fichier XML :

<?php
// prendre note que le tableau(array) $catalog doit exister
// il peut être généré par programmation ou bien par une base de donnée
?>
header ("Content-Type:text/xml");			// spécifie à php d'envoyer l'en-tête XML
echo '<?xml version="1.0" encoding="ISO-8859-1"?>';	// voir plus bas
<catalog>
	<?php
		foreach($catalog as $cd) {
		?>
	<cd>
		<title><?=$cd['title'];?></title>
		<artist><?=$cd['artist'];?></artist>
	</cd>
		<? } ?>
</catalog>

Faire attention à ligne echo ‘‘; Ne pas utiliser la syntax :

<?php // code
?><?xml version="1.0" encoding="ISO-9959-1"?><?
// code suite
?>

Parce que cela va générer une erreur PHP.

Résultat

Voici finalement la résultante du script :

<?xmlversion="1.0" encoding="ISO-8859-1"?>
 
<catalog>
	<cd>
		<title>Empire Burlesque</title>
		<artist>Bob Dylan</artist>
 	</cd>
	<cd>
		<title>Hide your heart</title>
		<artist>Bonnie Tyler</artist>
 	</cd>
 	<cd>
		<title>Greatest Hits</title>
		<artist>Dolly Parton</artist>
	</cd>
	<cd>
		<title>Still got the blues</title>
		<artist>Gary Moore</artist>
	</cd>
</catalog>

Référence

20
Nov

Introduction

Comme vous savez XML est un language de structuration de données et non de présentation. Ainsi XSL (eXtensible StyleSheet Language) est un language recommandé par le W3C pour effectuer la représentation des donnée d’un document XML.

XML est un language permettant de définir des feuille de style pour les document XML, au même titre que les CSS (Cascading StyleSheets) pour le language HTML. XSL est compatible avec les CSS.

Toutefois, contrairement aux CSS, XSL permet aussi de retraiter un document XML afin d’en modifier totalement sa structure, ce qui permet à partir d’un document XML d’être capable de générer d’autres types de documents (PostScript, HTML, Tex, RTF, …) ou bien un fichier XML de structure différente.

Ainsi la structuration des données (définie par XML) et leur représentation (définie par un langage tel que XSL) sont séparées. Cela signifie qu’il est possible à partir d’un document XML de créer des documents utilisant différentes représentations (HTML pour créer des pages web, WML pour les mobiles WAP, …).

XSLT

XSLT ou eXtensible Stylesheet Transformation permet de transformer la structure des éléments XML.

Un document XML peut être représenté comme une structure arborescente. Ainsi XSLT permet de transformer les documents XML à l’aide de feuilles de style contenant des règles appelées template rules (ou règles de gabarit en français).

Le processeur XSLT (composant logiciel chargé de la transformation) crée un structure logique arborescente (on parle d’arbre source) à partir du document XML et lui fait subir des transformations selon les template rules contenues dans la feuille XSL pour produire un arbre résultat représentant, par exemple, la structure d’un document HTML. Les composants de l’arbre résultat sont appelés objets de flux.

Chaque template rule définit des traitements à effectuer sur un élément (noeud ou feuille) de l’arbre source. On appelle “patterns” (en français motifs, parfois “éléments cibles“) les éléments de l’arbre source.

template rules et patterns

L’arbre source peut être entièrement remodelé et filtré ainsi qu’ajouter du contenu à l’arbre résultat, si bien que l’arbre résultat peut être radicalement différent de l’arbre source.

Structure d’un document XSL

Un document XSL étant un document XML, il commence obligatoirement par la balise suivante :

70205f3f977e2dcd6319bc2f747eb65d

D’autre part, toute feuille de style XSL est comprise entre les balises <xsl:stylesheet …> et </xsl:stylesheet>. La balise xsl:stylesheet encapsule des balises xsl:template définissant les transformations à faire subir à certains éléments du document XML.

3ba7a2ef3d38f0a6b7036e8c4d54197c
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template ... >
        <!-- traitements à effectuer -->
    </xsl:template>
</xsl:stylesheet>

Association d’une feuille XSL à un document XML

Une feuille de style XSL (enregistré dans un fichier dont l’extension est .xsl) peut être liée à un document XML (de telle manière à ce que le document XML utilise la feuille XSL) en insérant la balise suivante au début du document XML :

2cee1de5d62ac6afaf725a40ddc95eaa

Exemple de transformation

Les template rules sont des balises XSL permettant de définir des opérations à réaliser sur certains éléments du document XML utilisant la page XSL, c’est-à-dire généralement de transformer un tag XML en un tag HTML (généralement plusieurs).

Voici un exemple simple de transformation via XSLT :

Le fichier XML source (data.xml):

36211b4790c6064cfca83228f08b206b 84674794fe0392892ad43adb83118f40

Le fichier XSL (template.xsl):

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
ddd750512ee1e60b9427d2665827f9af

Voici la représentation de la résultante:

My CD Collection

Title Artist
Empire Burlesque Bob Dylan
Hide your heart Bonnie Tyler
Greatest Hits Dolly Parton
Still got the blues Gary Moore

Références

Etienne Lachance - Copyright © 2009 - Dragon Technologie - Tout droits réservés