Archive

Archive for December, 2008

Faire des diagrammes de séquences en 30s

December 26th, 2008 4 comments

Vous avez besoin de faire des petits diagrammes de séquences, mais vous ne voulez (ou pouvez) pas sortir la grosse artillerie, du genre Visual Paradigm, Eclipse, Netbeans, etc. ? Voici la solution http://websequencediagrams.com/, un outil en ligne très simple, mais que je pense suffisamment souple pour répondre à des petits besoins. Voici un petit exemple, sous la forme d’une image finale, et voici sa source. Pour information cela représente l’obtention d’un ticket TGT et de TGS, c’est à une dire pour une authentification Kerberos.

Surtout, penser à essayer les différents thèmes (pour ma part j’ai un petit faible pour le thème blue modern), et à consulter l’aide.  Tout simplement bluffant je trouve ! Juste un petit bémol, je n’ai pas trouvé d’option pour avoir une numérotation des actions. Mais j’imagine que ce n’est qu’une question de temps !

Categories: Business tools Tags:

OpenSSO, EJBCA : Cas d’utilisation

December 26th, 2008 1 comment

Suite à une petite discussion avec Tomas (de PrimeKey) sur OpenSSO, nous nous étions dis qu’un petit exemple d’utilisation conjointe d’OpenSSO et d’EJBCA serait intéressant (ne serait-ce qu’au niveau marketing :), voici le résultat de mon travail.

Avant tout, voici le cas d’utilisation, assez simple en fait. Soit une application disposant de trois parties :

  • une partie publique, accessible à tout le monde
  • une partie privée, accessible uniquement aux membres d’un groupe donné
  • une partie super privée (oui bon, si vous avez un meilleur terme !), accessible uniquement aux membres d’un groupe (qui peut être le même que précédemment), mais dont l’authentification doit être obligatoirement effectuée par certificats.

En fait, suite aux divers billets du présent blog, cela peut paraître relativement simple, et étrangement, une fois les petits soucis réglés, ca se fais assez bien. Cela m’a permis d’aborder pas mal de nouvelles notions dans OpenSSO, notamment sur les stratégies (pour le contrôle d’URL), qui n’est pas forcément très intuitif. J’ai surtout passé du temps sur l’écriture des règles, car dans mon cas (une petite application JSF développée très rapidement avec NetBeans) l’URL que je dois préciser dans les règles sont différentes de celles visibles par le navigateur. J’imagine que l’ordre dans lequel les filtres sont déclarés dans le fichier web.xml de l’application y sont pour quelques choses.

Quelques points à retenir (surtout un pense bête personnel) :

  • pour la configuration de la chaîne d’authentification, j’en ai créée une nouvelle avec les deux modules (X509 et DataStore) en SUFFISANT, attention l’ordre est important, l’instance du module X509 doit donc être placé avant celle du DataStore)
  • l’accès aux pages publiques s’effectuent via la propriété NOT ENFORCED URI (qui permet de dire à l’agent d’ignorer certaiens URL)
  • définir l’URL du 403 dans le web.xml, la rajouter en NOT ENFORCED URI
  • si l’url du 403 est défini dans le web.xml, ne pas la définir au niveau de l’agent
  • j’ai attribué un score de 10 à l’authentification par certificat
  • j’ai utilisé deux stratégies, l’une pour autoriser l’accès à la partie sécurisée (en ayant un pattern matching d’URL assez fin). Une autre pour autoriser l’accès à tout (donc y compris la partie super sécurisée) mais en rajoutant une condition sur le niveau d’authentification
  • ne pas oublier de modifier le fichier bootstrap si on ne veut pas utiliser le royaume par défaut

Je mettrais bientôt en ligne une image VMWare (fusion, je ne sais pas si elles sont compatibles avec les autres) qui contient le serveur opensso, l’ejbca, et l’application. Prévoyez au moins 1GB de RAM rien que pour la machine virtuelle !

Categories: PKI, SSO Tags: ,

GUSES va (bientôt) faire peau neuve

December 26th, 2008 No comments

À l’occasion de l’événement du 13 Octobre à Toulouse, l’association a décidé de faire appel à un professionnel pour créer un site qui ressemble à quelque chose. En effet, j’en suis le premier coupable, et je l’admet, le site actuel ne donne pas très envie. Et le résult fut assez époustouflant, comme vous pouvez vous en rendre compte sur le site de l’événement. Bref, profitant de quelques heures de train, et de détente, je me suis motivé pour travailler sur l’intégration du thème dans le moteur que nous utilisons (à savoir DokuWiki). Et cela donne un tout nouveau joli site web.

Non content d’avoir un joli thème, je me suis dis qu’un peu d’effets modernes (lire à la web2.0, pour ce que cela veut dire), en voici un exemple. Je cherche maintenant comment faire pour avoir les dernières nouvelles bien visible (javascript ou modifier le thème ?).

La mise en ligne est prévue pour ces prochains jours, j’ai encore quelques petits soucis d’intégrations, notamment sur le mode édition, ce qui est assez pénible. Dans tous les cas, j’espère que cela va donner un petit coup de pub à l’assocation. Et à propos de publicité, je vais en faire un peu pour Thierry, de i-Creativ, qui a fais un magnifique boulot !

Categories: OpenSolaris, Social Tags:

Au revoir Linagora !

December 19th, 2008 5 comments

Voilà, ca devait arriver un jour, aujourd’hui est mon dernier jour à Linagora, après un peu plus de deux ans de bons et loyaux services (enfin, je pense !). Et deux années qui furent très intensives, de nombreux projets, tout aussi intéressant les uns que les autres (avec une mention spéciale pour le projet poste Linux à l’assemblée nationale), plein de rencontres très intéressantes, et surtout plein de soirées ! (je crois que mon foie va me remercier).

Alors, la grande question que tout le monde va me poser (ou pas), pourquoi je pars ? Et bien, les raisons sont multiples, mais il y en a deux principales. La première concerne des choix d’orientations de la société, notamment sur le métier d’éditeur. Cela m’intéresse particulièrement, mais je ne suis pas d’accord avec les orientations (sur la réalisation) de la direction.  Loin de moi la prétention de penser que ma vision est meilleure que la leur, mais c’est juste que je n’adhère pas. La seconde concerne mon travail direct. Linagora est une boîte de geek, pour les geeks, et bien que cela puisse surprendre beaucoup d’entres vous, je veux prendre une orientation plutôt fonctionnelle, dans le domaine de la gestion d’identités. Ce qui n’est guère en adéquation avec Linagora, d’autant plus qu’il n’existe en gros aucune solution opensource de gestion d’identité (cela commence seulement).

Bref, pour taire toutes les éventuelles rumeurs et questions, je pars en très bon terme avec Linagora, et en aucun cas ne regrettre mes deux années, bien au contraire. Je tiens d’ailleurs à remercier tout mes (futurs ex) collègues, d’une part de leur bonne humeur et de la bonne ambiance qu’ils apportent, et d’autre part de m’avoir supporté, ce qui n’est pas une chose simple !

Et pour ceux qui s’inquiétent de mon avenir, je commence le 5 janvier chez Harmonie Technologie (oui le site est en flash, c’est sale) une petite société spécialisée en gestion d’identité et en portail. Et donc oui, au revoir l’opensource (à la sauce quotidienne), au revoir Linux (enfin ca c’est pas trop pour me déplaire, hihihi), au revoir l’adminsys.. Et bonjour aux chemises !

Pour conclure, merci beaucoup à Linagora et surtout aux gens qui y travaillent, pour ces merveilleuses années, les nombreux litres de bières,

Categories: Social Tags:

(Open)Solaris et DSEE (LDAP)

December 15th, 2008 2 comments

Suite à ma présentation ce Mardi 9 Décembre sur LDAP et DSEE (Directory Server Enterprise Edition, le nouveau nom de iPlanet Directory Server, euh pardon, Sun Directory Server) pour l’association GUSES, voici le support de conférence. Une vidéo est également disponible, malheureusement, n’ayant pas (encore ?) de micro cravate/serre-tête le son n’est vraiment pas top, pour ne pas dire très mauvais.

Pour ceux qui n’ont pas le courage de suivre, voici (d’une manière très résumé) comment activer le support LDAP pour les comptes utilisateurs sur un Solaris.

Créer une entrée LDIF pour le profile ldapclient :

Sur le Solaris en question, activer ldapcilent via la commande suivante :

# ldapclient init -a profileName=default -a domainName=guses.org -a "proxyDN=cn=Directory Manager" -a proxyPassword=password host:port

Et finalement, un exemple PAM pour que cela fonctionne en login local, et via (fichier DIFF sur /etc/pam.conf)

23c23,24
< login auth required           pam_unix_auth.so.1
---
> login auth sufficient         pam_unix_auth.so.1
> login auth required           pam_ldap.so.1 try_first_pass
69c70,71
< other auth required           pam_unix_auth.so.1
---
> other auth sufficient         pam_unix_auth.so.1
> other auth required           pam_ldap.so.1 try_first_pass

Categories: Solaris, Sysadmin Tags: ,

XWiki, c’est décidemment magique

December 15th, 2008 No comments

Encore un billet dans la série XWiki, mais décidemment, cet outil me rend vraiment beaucoup de services. Ma dernière oeuvre (sic) consiste en la création d’une mini gestion des membres de l’association (GUSES, pour ceux qui ne le savent pas déjà !). Nous utilisons déjà Galette pour gérer les cotisations, mais malheureusement il n’y a rien (à ma connaissance) pour y brancher des hooks, dans mon cas ajouter l’utilisateur à la liste de diffusion de l’assocation.

Bref, quel rapport avec XWiki me direz vous ? Et bien, gràce à la bibliothèque SSH Trilead pour Java j’ai écrire une classe Groovy qui me permet d’exécuter des commandes (au sens unix) à distance. Et via quelques scripts shell et perl, il m’est désormais possible lors de l’ajout d’un utilisateur dans XWiki, d’automatiquement l’ajouter dans la base Galette, mais aussi l’inscrire à la liste de diffusion. D’autant plus que ces deux opérations étaient jusqu’alors réalisé par deux personnes différentes, n’arrangeant rien.

Un petit d’exemple d’utilisation de ma classe Groovy (sshhelper), en Groovy :

def sshHelper = new SshHelper()
sshHelper.openSession("hostname", "4222", "asyd", "/Users/asyd/.ssh/id_dsa", "password");
println sshHelper.runCommand("echo OK");

Le même utilisable directement depuis XWiki :

#set ($sshHelper = $xwiki.parseGroovyFromPage("Users.SshHelper"))
$sshHelper.openSession("hostname", "22", "user", "/Users/asyd/.ssh/id_dsa", "password")
#set ($buffer = $sshHelper.runCommand("echo OK")

Il est à noter que j’ai eu des problèmes (avec la bibliothèque Trilead) d’authentification en login / mot de passe vers des serveurs Linux (Debian) alors que cela fonctionne vers des serveurs Solaris. Cependant, l’authentification par clé a fonctionné vers les deux OS.

Categories: Business tools, Sysadmin Tags: ,

XWiki : mes retours

December 8th, 2008 No comments

À la demande de Vincent, je me lance dans un retour d’expérience sur XWiki, néanmoins même si cela fais quelques mois que j’utilise le produit, je n’ai passé que quelques jours à l’utiliser (enfin plutôt à le programmer) de manière avancée, donc à prendre avec un peu de recul. De plus, j’ai mis un certain temps à écrire ce billet, que j’ai repris de nombreuses fois, donc la trame n’est pas forcément fameuse, je m’en excuse par avance.

Commençons par le début : l’installation. Alors, cette étape est très facile, néanmoins il n’est pas toujours facile de bien comprendre les différentes versions, ce qu’elles font, etc. Pour ma part, ce billet ne parle que du produit XWiki Enterprise, en version 1.5 et 1.6, ne connaissant pas les autres produits.

Une fois le produit installé, la prise en main est assez rapide, et assez intuitive. Néanmoins à mes débuts (version 1.5 donc) j’ai été quelque peu déçu par la syntaxe assez pauvre, surtout pour moi qui utilise beaucoup dokuwiki, où la syntaxe permet par exemple de gérer l’alignement d’une cellule au sein d’un tableau. Cependant, la version 1.6 apporte de nouvelles syntaxes (dont une compatibilité avec des syntaxes répandues, comme celle de mediawiki), donc cela est en bonne voie.

Concernant mon expérience, j’utilise principalement XWiki pour sa partie développement d’application, c’est à dire la capacité de créer des petites applications (métier ? j’exagère peut être un peu, encore que…) à l’intérieur de XWiki, sans jamais modifier une seule ligne de code de XWiki. Ces développements s’effectuent via les capacités de scripting velocity, et d’extension via Groovy. C’est un vrai bonheur, en effet je ne connais peu (ou pas) d’autres moyens simples de développer rapidement une petite application Web, sans me préocccuper du rendu, du modèle, etc.

Coté produit, la partie Wiki pure est relativement bien documenté, avec une page sur la syntaxe très complète (mais pas tout à fait exhaustive), mais un petit regret concernant la documentation associé à la partie développement. Il existe plein de choses qui ne sont pas (encore) documentés, notamment pour les attributs lors de l’ajout d’une propriété à un objet. Mais après avoir discuté avec Jean-Vincent de XWiki, il semblerais que la partie dev ne soit pas la plus utilisée, ce qui peut expliquer… Et cela est peut-être liée ou pas, mais l’impossiblié de supprimer une propriété existante est vraiment pénible. Cela rend la création des objets assez périlleuses, et il faut savoir exactement à l’avance ce qu’on a besoin de mettre dans les objets 🙂

Pour finir avec la documentation,  XWiki est très bien documenté d’une manière générale, mais il n’est pas facile de s’y retrouver entre les différentes sources de documentation. Je pense qu’il manque de tutoriaux, celui-ci (création d’une application de FAQ) est vraiment bien, il en faudrais d’autres selon moi. Cependant, la communauté (que ce soit liste de diffusion ou IRC) étant vraiment très réactive, et d’une aide précieuse, cela compense un peu le fouillis (je vais me faire gronder par les gens de XWiki 🙂 dans la documentation.

Un autre bémol réside dans la customisation graphique. Bien que je n’ai pas regardé de prêt, il me semble difficile, voire très difficile, de modifier la forme de XWiki. Certes, il est très simple de modifier son apparence par CSS, mais faire des modifications plus profondes me semble vraiment très difficile.

Côté technique, un des plus grands reproche concerne la gestion de la mêmoire. Il existe par exemple une fonctionnalité très intéressante permettant l’import/export du contenu du wiki sous forme d’un xar (Xwiki ARchive) mais il semblerais que le moteur à besoin de tout monter en mémoire avant de mettre à disposition le fichier d’archive, ce qui est assez embêtant quand il y a un certain nombres de pages. De plus, du fait (enfin c’est mon interprétation) de l’utilisation d’hibernate, XWiki procède quelques fois à de *très* grosse requête SQL. Par exemple dans le cas d’une suppression d’une page avec des commentaires, l’ensemble des données (et donc pas juste l’id de la page) sont passées dans la requête, ce qui nécessite donc de paramètrer son serveur SQL pour accepter des requêtes SQL allant jusqu’à plusieurs dizaines de MB..

En conclusion, pour ceux qui ne l’ont pas encore compris, et malgré ces quelqus points négatifs, je suis devenu un très grand fan de XWiki ! Mais cela ne m’empêche pas de rester fan de dokuwiki, considérant les deux comme complémentaires. Son développement avancant à grand pas, avec des fonctionnalités probablement inédites (import de documents MS Office, OpenOffice.org) XWiki est en passe de devenir le leader (si ce n’est déjà pas le cas) sur le marché des wikis d’enterprises.

Categories: Business tools Tags:

JES et Solaris 10 update6, ca marche pas (directement) !

December 8th, 2008 No comments

Pour les gens qui utilisent JES 5 (même en update 1), faites attention, car il y a quelques problèmes avec l’update 6 de Solaris. En effet, Solaris 10 update installe une version plus récente du framework cacao que celle embarqué dans JES5U1, cela rend donc impossible le redémarrage de cacao après l’installation de JES6. Il y a un bug de soulever à ce propos sur opensolaris.org, néanmoins malgré le statut “Fix available” je n’ai pas réussi à trouver plus d’informations.

Pour ma part, voici mon workaround (j’utilisais JES5 pour installer uniquement DSEE 6.2, puis pour upgrade en 6.3, je ne sais donc pas si cela fonctionne pour les autres composants de JES)

  • Supprimer les paquetages cacao du système
  • Réinstaller ceux fournis dans le DVD de Solaris 10 u6
  • Désenregistrer le composant DSEE de cacao à l’aide de la commande cacao-unreg (dcssetup)
  • Enregistrer à nouveau le composant DSEE de cacao

Bien entendu, cela n’est qu’un workaround, et n’est probablement pas du tout supporté par Sun. Je vais ouvrir un ticket pour avoir plus d’infos à ce sujet.

Categories: Solaris, Sysadmin Tags: ,

MySQL pour Solaris, allo la terre ?

December 5th, 2008 2 comments

Premier billet en mode énervé (enfin, du moins en mode volontaire 🙂 mais là faut quand même pas déconner. Déjà, je sens venir la question, pourquoi tu veux MySQL sur un Solaris alors qu’il y a PostgreSQL de base sur Solaris ? La réponse est simple, parce que Sun n’est pas foutu de faire un schéma SQL pour Identity Manager, même en profitant d’une nouvelle version majeure (la 8 en l’occurence).

Bref, revenons au coeur du sujet, MySQL sur Solaris. J’ai découvert hier qu’il y avais (maintenant ?) un MySQL dans update 6, je me suis dis, chouette, je vais éviter d’installer le paquetage de merde (oui, je sais, je suis mal poli) de MySQL. Je commence à le configurer, etc, bon déjà l´absence de manifest SMF aurais du me mettre la puce a ĺ´oreille. Donc, au moment de vouloir choisir le connecteur JDBC pour ce MySQL, je pense seulement (honte sur moi) à regarder la version. Et la, je découvre donc une version 4.0.31… Je me dis bonnnnnnn, il va falloir revenir à ce paquetage de merde, finalement.

Donc, téléchargement du paquetage officiel pour Solaris depuis le site mysql.com. Installation, et déjà premier problème, le script de post-install ne s´éxecute pas correctement :


[ verifying class ]
## Executing postinstall script.
081205 11:56:52 [Warning] option 'thread_stack': unsigned value 65536 adjusted to 131072
ERROR: 1004 Can't create file '/var/tmp/installfnaGNY/#sql6559_1_0.frm' (errno: 13)
081205 11:56:52 [ERROR] Aborting

Ensuite, et là j´avoue que je trouve ca carrément énorme :


# /etc/init.d/mysql
/etc/init.d/mysql: cannot shift

Alors alors, vous avez compris ? Non ? Si je vous dis que le script commence par un shebang qui pointe sur sh ? Et bien oui, vous avez bien compris. Comme tout bon linuxien qui se respecte, le script contient plein de bashimes, mais commence par bin/sh, forcément, sous Linux bin/sh est un lien vers bash, donc ca pose pas de problème. Oui mais la on est pas sous Linux, mais sous Solaris, et bin/sh c´est un vrai SH. Allez, pour la route, une autre Linuxerie :


bash-3.00# /etc/init.d/mysql status
/etc/init.d/mysql: pidof: not found
/etc/init.d/mysql: test: argument expected

Et pour finir, une dernière bétise, le paquet s’installe dans /opt/mysql, mais… :


bash-3.00# ls /opt/mysql/
mysql

C’est vachement utile.. Et je vous parle pas des trucs qui trainent dans /usr..

En conclusion, vous l’aurez compris, je suis particulièrement remonté contre le packaging MySQL pour Solaris. En gros, si je veux un truc propre, il ne me reste qu’à recompiler.. trop génial… Merci MySQL ! Ah mais au fait, c’est pas Sun qui a racheté MySQL ?

Categories: Solaris, Sysadmin Tags: , ,

OpenSolaris 200811, que du bonheur !

December 4th, 2008 2 comments

J’avoue, sur la “nouvelle” mouture d’OpenSolaris (alors, pour ceux qui ont vraiment tout suivi, et c’est pas facile, c’est le “nouveau” nom d’Indiana), j’avais (j’ai toujours ?) quelques a priori négatifs. C’est probablement pourquoi je n’ai pas tester sa première version (200805).

Cependant, j’ai eu l’occasion pour la première fois d’installer OpenSolaris 200811, et j’avoue que je suis assez bluffé. Malgré quelques mésaventures techniques (non lié à OS200811, mais plutôt à un couple PEBKAC / matériel 🙂 l’installation est très (voire trop) simple. Cela se résume à quatre questions :

  • layout du clavier
  • langue d’installation
  • timezone
  • destination de l’installation (dans mon cas, le disque dur entier, je ne sais pas ce que cela donne dans les autres cas)
  • mot de passe root, compte utilisateur

Pour l’instant, je n’ai eu l’occasion que de tester deux (use cases) choses pertinentes pour moi (et une très importante) :

  • un terminal UTF-8 fonctionnel par défaut, sans aucune configuration (localeadm mon grand ami…)
  • le bon fonctionnement du déport console vidéo (via Java Web Start)

Alors, ce deuxième point peut paraitre étrange, mais pour moi il est très important. Mon poste de travail était jusqu’alors une version de SXCE (Solaris Express / Community Edition) datant d’approximativement 18 mois, et il m’était impossible d’accéder aux déports vidéos, effectués via une appli java webstart (en même temps, j’avais le même problème depuis un autre poste, sous Windows). Bref, une fois 200811 installlé, mon premier test fut de mon connecter à l’ILOM d’une lame 6840, pour justement tester le déport vidéo. Je click, et *hop* çà fonctionne ! Et en plus très rapidement.

Une autre chose assez notable – même si c’est cela est disponible depuis un petit moment via les ON builds OS200811 (tout comme Solaris 10 update 6) – réside dans l’utilisation de ZFS sur l’ensemble des systèmes de fichiers.

Alors, passons maintenant aux vraies apports d’OpenSolaris (du moins par rapport à un Solaris classique) :

  • le système de paquetage (nommé IPS)
  • l’intégration de ZFS dans le bureau

Concernant le premier point, je suis assez mitigé, mais comme beaucoup. Il est certes très appréciable de pouvoir faire un pkg install openoffice / screen et qu’il installe toutes les dépendances. Malheureusement, il est quand même assez (très ?) lent, mais bon, par rapport au bon vieux pkgadd des familles, il y a quand un net progrès.

Le second point, intégration de ZFS dans le bureau. Alors là j’avoue, chapeau. Il existe un service (qui n’est malheureusement pas activé par défaut, et je me demande bien pourquoi) qui prend un snapshot toutes les heures, tous les jours, et toutes les semaines. Bien que je n’ai pas encore eu l’occasion de le tester sur la longueur, le concept est quand même assez génial. D’autant que Nautilus dispose d’une petite barre qui permet de remonter dans le temps. Alors, pour ceux qui – comme moi – utilisent Time Machine d’OS X, on est en encore très loin au niveau de l’interface. Mais fonctionnellement, on est très proche, c’est vraiment une bonne chose.

Bref, vous avez compris, je ne peux que vous encourager à essayer OpenSolaris 200811, enfin, à l’essayer, et à l’adopter 🙂

Ah, une dernière chose, si vous avez une carte NVidia relativement vieille, vérifier que vous êtes bien en driver nvidia (en utilisant l’utilitaire), si ce n’est pas le cas, vous devez déinstaller le paquet NVidia, puis télécharger le driver adapté depuis le site de NVidia, désactiver GDM, faites un Xorg -configure, modifier le fichier pour mettre le driver “nvidia” au lieu de “nv” puis déposer ce fichier dans /etc/X11/xorg.conf, et réactiver GDM.

Categories: OpenSolaris Tags: