samedi, décembre 3 2011

Sauvegarde incrémentale du blog

Voici un billet rapide expliquant la procédure que j'ai mise en œuvre pour faire des sauvegardes incrémentales de mon blog, tout du moins la partie WEB ( je n'ai pas la main sur la base de données ). J'effectue la sauvegarde grâce à rsync. Par défaut, cet outil ne supporte pas FTP. On peut néanmoins utiliser curlftpfs qui permet de monter une arborescence FTP dans le système de fichier.

Remarque : J'ai fait ces manipulations sur mon PC ubuntu 11.10 mais c'est reproductible sur toute distribution GNU/LINUX.

Pré-requis

$ sudo apt-get install curlftpfs rsync

Montage de l’arborescence distante

dans le fichier /etc/fstab, ajouter la ligne suivante:

curlftpfs#monID:monPASSWORD@monftpserver	monchemindemontage	fuse	rw,user,allow_other,uid=1000,_netdev,noauto	0	0

Pour monter l’arborescence :

$sudo mount monchemindemontage

Lancement de la sauvegarde

rsync -rtv --progress monchemindemontage monrepertoiredesauvegarde

vendredi, novembre 11 2011

Panic occured switching back to text console ... KEZAKO

Moi voila réveillé par un kernel panic sur le netbook ASUS EEEPC1000H. Que du bonheur :) Le message était le suivant :

Panic occured switching back to text console

Et dire que j'ai quitté debian unstable pour ne plus avoir ça...

Bref, après une recherche rapide sur google, je me suis rendu compte que je n'étais pas tout seul, un bug est même référencé

En attendant vous avez trois choix :

  1. Réinstaller la version 11.04 et attendre qu'il y ai un correctif
  2. Utiliser votre netbook uniquement sur chargeur, ce qui limite l'intérêt
  3. utiliser un noyau expérimental

Voila les manipulations que j'ai effectué pour la troisième option.

warning.pngPetit rappel, d'usage les manipulations que je décrit ci-dessous peuvent rendre votre système plus instable qu'il ne l'est déjà...C'est pour dire !

Aller sur la page http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.1-rc10-oneiric/

Récupérer les fichier deb correspondant à votre architecture ( amd64 ou i386 ). Pour connaître ceci, vous pouvez exécuter la commander uname -a

L'installation s’effectue par la commande dpkg

$ sudo dpkg -i linux-headers-3.1.0-030100rc10-generic_3.1.0-030100rc10.201110200610_i386.deb
$ sudo dpkg -i linux-headers-3.1.0-030100rc10_3.1.0-030100rc10.201110200610_all.deb
$ sudo dpkg -i linux-image-3.1.0-030100rc10-generic_3.1.0-030100rc10.201110200610_i386.deb

Maintenant votre netbook devrait rebooter normalement. Malheureusement, c'est un peu lent à mon goût. La configuration réseau prend énormément de temps. Je vais peut être devoir recompiler le driver du WIFI.

jeudi, novembre 10 2011

Les services que j'utilise dans le cloud

En me rasant le matin ( ça ne m'arrive pas souvent), je me suis dit que ca serait pas mal de lister tous les services en ligne que j'utilise, rien que pour en faire l'inventaire

D'abord, oui, je sais, le cloud c'est le mal, mais bon c'est bien pratique quand on est un peu mobile et qu'on ne souhaite pas s'auto héberger

Outils collaboratifs

J'utilise google apps pour mon domaine

  • Gmail
  • Google Calendar
  • Google Talk

Social

  • Facebook
  • Google +
  • Diaspora
  • mupiz
  • twitter
  • identi.ca
  • viadeo
  • linkedin

Mon blog

la c'est du dotclear installé à la main sur kelio.org

Gestionnaire de tâches

  • Remember the milk

Album photo

  • pixi.me

Gestionnaire de mots de passe

  • lastpass.com

Stockage en ligne

  • ubuntu one

Modélisation

Des fois j'ai besoin de créer un diagramme , j'utilise creately.com

Gestion de configuration

  • bitbucket
  • code.google.com
  • github

Contrôle parental

  • opendns.com

lundi, novembre 7 2011

Configuration d'un topic JMS WEBLOGIC dans WSO2ESB

Dans la série J'évalue et configure WSO2ESB dans tous les sens, voici la partie relative à la configuration d'un TOPIC JMS . Ici je prendrai pour exemple un topic JMS hébergé sur ORACLE WEBLOGIC. La même configuration peut être effectuée avec Apache ActimeMQ.

Dans le fichier $CARBON_HOME/repository/conf/axis2.xml

Ajouter le contenu suivant :

    <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
    <parameter name="default">
      <parameter name="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</parameter>
      <parameter name="java.naming.provider.url">t3://127.0.0.1:7001</parameter>
      <parameter name="transport.jms.ConnectionFactoryJNDIName">weblogic/jms/proxyconnectionfactory</parameter>
      <parameter name="java.naming.security.principal">weblogic</parameter>
      <parameter name="java.naming.security.credentials">welcome1</parameter>
      <parameter name="transport.jms.ConnectionFactoryType" locked="false">topic</parameter>
    </parameter>
    </transportReceiver>

Copier les fichiers wlclient.jar et wljmsclient.jar présents dans le répertoire $WEBLOGIC_HOME/server/lib dans le répertoire $CARBON_HOME/repository/components/extensions

Pour que JMS fonctionne dans WSO2, j'ai du supprimer les packages javax des jars fournis par weblogic

dans le fichier java.policy du jdk

grant { // JMX Java Management eXtensions permission javax.management.MBeanTrustPermission "register"; };

Dans la console supprimer le transport JMS du service echo.

Il ne vous reste plus qu'à tester le tout avec un proxyService

Exemple :

<proxy xmlns="http://ws.apache.org/ns/synapse" name="proxyTopic" transports="http" statistics="enable" trace="enable" startOnLoad="true">
   <target>
      <inSequence>
         <log level="full" />
         <property name="Content-Length" scope="transport" action="remove" />
         <property name="Accept-Encoding" scope="transport" action="remove" />
         <property name="User-Agent" scope="transport" action="remove" />
         <property name="Content-Type" scope="transport" action="remove" />
         <clone continueParent="true">
            <target>
               <endpoint>
                  <address uri="jms:/weblogic.jms.proxytopic?transport.jms.ConnectionFactoryJNDIName=weblogic.jms.proxyconnectionfactory&java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory&java.naming.provider.url=t3://127.0.0.1:7001&transport.jms.DestinationType=topic" />
               </endpoint>
            </target>
         </clone>
         <property name="RESPONSE" value="true" scope="default" />
         <property name="To" scope="default" action="remove" />
      </inSequence>
      <outSequence>
         <send />
      </outSequence>
   </target>
   <publishWSDL>
[...]
   </publishWSDL>
   <parameter name="enableMTOM">false</parameter>
</proxy>

lundi, octobre 24 2011

Faire un Service Web "MOCK" avec WSO2

Me voila parti pour mon 300ième billet dans la configuration WSO2. Avec cet ESB tout se fait assez simplement, il suffit de lire un peu la documentation et de parcourir l'espace communautaire.

Un des besoins liés aux interfaces temps réel est de "bouchonner" ou MOCK permettant de découpler deux applications pendant les recettes ou encore pendant le développement.

Sur WSO2, la manipulation la plus simple est la suivante :

  1. Stocker une réponse type dans un fichier XML
  2. Faire une feuille de style XSL à partir de cette réponse
  3. Paramétrer une séquence pour transformer la requête dans une réponse type et la renvoyer au client.

Bon je ne vous ferait pas l'affront de vous expliquer comment on réalise la première étape... Passons à la deuxième.

Feuille de style

Il faut créer une feuille de style XSL à partir d'une réponse SOAP standard. Pour cela il faut ajouter les lignes suivantes au début

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" />
<xsl:template match="/">

Et à la fin du fichier celles-là :

</xsl:template>
</xsl:stylesheet>

Ensuite aller dans Service Bus > Local Entries

wso2001.png

Copier le contenu de la feuille de style wso2002.png

La séquence

Ensuite aller dans Service Bus > Sequences

wso2003.png

Cliquer sur "Add Sequence"

Ensuite Renseigner le nom de la séquence (ex. mock) puis cliquer sur "Add Child > Filter >In"

wso2004.png

Ajouter au noeud "In" puis cliquer sur "Child> Transform > XSLT"

wso2005.png

Dans la partie XSLT Mediator, cliquer sur "Configuration Registry"

wso2006.png

Sélectionner l'entrée précédemment enregistrée dans le registre

wso2007.png

Ajouter à la suite du workflow une property (In>Add Child > Core >Property ) avec les valeurs suivantes

wso2008.png

Ensuite ajouter un header (In>Add Child > Transform >Header )

wso2009.png

Renseigner les valeurs suivantes :

wso2010.png

Ajouter dans le workflow une étape Send ( il faut bien renvoyer le résultat )

wso2011.png

Ne rien renseigner dans cette partie

wso2012.png

Enfin ajouter l'étape Out

wso2013.png

Cliquer sur "'Enregistrer"

Le proxy de service web

A cette étape, nous pouvons soit modifier un service web existant pour assigner notre séquence fraîchement crée, soit crée une nouvelle qui ne servira qu'à ça. Dans notre cas, j'aborderai la deuxième possibilité ( de toute façon, ce sont les mêmes écrans ...)

Cliquer sur WebServices > Add > Proxy Service wso2014.png

Cliquer sur Custom Proxy puis renseigner le nom du service

wso2015.png

Cliquer sur "Next".

Assigner la séquence

wso2016.png

Cliquer Sur "Next" Puis "Finish"

Maintenant il ne reste plus qu'à tester avec SOAPUI ou tout autre client SOAP.

- page 2 de 60 -