DevFest Lille 6 : L’open-source à la rescousse de mes API

Dans cette présentation, David et Guillaume mettent en oeuvre un API manager Gravitee sur une application assez simple, qui permet néanmoins de voir la plupart des cas d’utilisation de Gravitee pour sécuriser une API.

Créer une application

David avait déja fait cette présentation au chtijug.

CORS

Il est facile de rajouter les entêtes CORS dans une API avec Gravitee (vraiment facile).

Authentification et autorisation

Ben là, le plus simple, c’est de passer par Keycloak (qui a également été présenté au chtijug !).

Création du realm

Pour le coup, onv a utiliser Keycloak en authentifieur OpenID. Il faut donc créer un CLIENT_ID pour l’application.

Connexion de l’interface web à Keycloak

Pas bien compliqué, puisque Keycloak fournit l’api JS pour s’authentifier auprès du serveur Keycloak. Et on peut évidement utiliser tout un tas de fournisseurs OpenID.

Sécurisation d’API

Identification

Dans ce cas, il faut créer pour le client (l’interface web en l’occurence) une clé d’API qui lui permettra d’accéder aux ressources qui sont protégées par le plan définissant cette clé. Ce qui n’est pas une clé d’autorisation : c’est juste une identification. === Autorisation Pour autoriser l’accès à l’API, on va encore une fois passer par Keycloak, qui sera cette fois le provider OAuth2.

Conclusion

L’un des intérêts du coupe Gravitee + Keycloak, c’est qu’on peut ajouter des fonctionnalités à l’application sans jamais toucher au serveur backend. Et ça, en terme d’évolutivité, c’est top !

Publicités

Power metal

Comme je l’écrivais hier, j’ai installé un chouette Pi-DigiAMP+ dans mon Raspberry. Et je l’ai testé avec Volumio aujourd’hui. Et bon sang de bois, le son remplit correctement la pièce . Du coup, ça va être bien chouette. La suite ? Connecter les boutons physiques et la télécommande (pour commencer). Bon, par contre, volumio ne […]

MORR POWAH !

Pour ma webradio en cours de rémission, j’avais acheté un petit amplificateur à brancher sur mon Raspberry. Hélas, j’avais oublié que mes haut-parleurs avaient une impédance de 5 ohms … Ce qui faisait que ma carte Pi-DAC+ ne pouvait sortir qu’un son minimal sur ces chouettes haut-parleurs.

Du coup, j’ai dû demander au fournisseur d’échanger la carte (ce qu’il a fait de bon coeur – je dis ça parce qu’il s’agit d’un fournisseur anglais, qui n’est pas à ma connaissance tenu par les lois de la consommation française).

Et j’ai maintenant un amplificateur Pi-DigiAMP+ ! Je ne l’ai pas encore testé, mais je suis déja satisfait du packaging et de la qualité des livraisons. Et demain, je ferais les premiers tests histoire de voir si je peux sortir quelque chose.

OwnCloud, c’est cool

J’ai installé il y a un bout de temps OwnCloud sur mon Raspberry, mais pendant longtemps, je n’en avais rien fait.

Hier, j’ai enfin installé le client de synchronisation sur ma machine Windows et mon téléphone.

Et surtout, j’ai déplacé tout le contenu de mon dossier Dropbox dans le dossier OwnCloud.

Et franchement, ça marche rudement bien.

De mon point de vue de simple utilisateur, ça marche aussi bien que Dropbox.

Du coup, adieu Dropbox !

Une petite mise à jour de rss-bridge, ça vous dit ?

Suite aux mises à jour de Sexactu, j’ai dû réécrire le bridge correspondant, et j’en ai donc profité pour mettre à jour rss-bridge.

Et même si je n’aime pas spécialement le PHP, je dois dire que les choix d’API sont quand même vachement pratiques.

En bonus, avec xampp et Eclipse-PDT, c’est quand même super facile de bosser.

Du coup, j’en ai profité pour mettre à jour tous mes bridges … et évidement les envoyer sur github. Et franchement, c »était facile. Bravo à l’équipe rss-bridge.

Il est re-RAID

Bon, c’est bien dépassé (genre ça fait pile un mois). Mais mon NAS a retrouvé son RAID. La leçon essentielle est qu’il faut bien lire les messages des différentes commandes Linux, parce qu’en fait, j’avais démonté le mauvais disque dur … Dès que j’ai pensé à enlever le bon disque dur, ça c’est mis à […]

Il est un peu moins RAID …

Mais ça va s’arranger.

Parce que j’ai reçu aujourd’hui mon disque de remplacement.

J’ai d’abord essayé de remplacer le disque à l’arrache, avant de me souvenir qu’il y a sur le site de Alt-F une page complète sur le changement d’un composant dans un disque RAID.

J’ai donc repris la procédure en suivant méthodiquement les étapes.

Hélas, dès la suppression du composant, c’est le drame :

[root@dlink-6A4EB1]# mdadm --manage /dev/md0 --fail /dev/sda2
mdadm: set device faulty failed for /dev/sda2:  Device or resource busy

Et j’ai passé du temps avant d’avoir l’éclair de lucidité.

En fait, j’ai partitionné mes disques « simplement » : une grosse partition en RAID1 avec tout dedans. Tout … y compris ffp … Lequel ffp fournit évidement les services SSH et compagnie. Du coup, évidement, quand j’essaye d’enlever le composant (enfin, le disque, mais en RAID, apparemment, ça s’appelle un composant), ça ne marche pas … Attendez, c’est du RAID1, donc ça devrait marcher, non ?

Du coup, si c’est pas ça … je fais quoi, moi ? Ben j’en sais rien. Enfin, j’ai bien une idée : je peux toujours copier tout le contenu de mon montage RAID1 sur mon nouveau disque, et le faire évoluer vers un disque RAID1 en reformattant le composant qui reste dans le RAID1.

Bon, en théorie, la solution idéale serait quand même de mettre mon nouveau disque directement dans le conteneur RAID1 … mais je ne sais pas trop comment faire ça, ni dans l’interface d’Alt-F, ni même dans mdadm. Je sens que je vais encore aller écumer ServerFault, moi …

Il est RAID … mort ?

Bon, ça sent pas bon

2017-03-07 19_48_12-

Oui, mon RAID est dégradé.

Mais comment ?

Une première réponse grâce à cet article : How to get the status of a Linux software raid?

Qui donne ce résultat éloquent :

[root@dlink-6A4EB1]# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sda2[0]
975585856 blocks [2/1] [U_]

unused devices: 

Effectivement, le U_ est clair : l’un des deux disques semble être dysfonctionnel. Mais lequel ?

En regardant dans l’interface de Alt-F, je peux avoir ces informations là :

/dev/sda2:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : a112692c:cd4ddd32:b98be83a:b8b6c728
  Creation Time : Sun Feb  8 22:22:54 2009
     Raid Level : raid1
  Used Dev Size : 975585856 (930.39 GiB 999.00 GB)
     Array Size : 975585856 (930.39 GiB 999.00 GB)
   Raid Devices : 2
  Total Devices : 1
Preferred Minor : 0

    Update Time : Tue Mar  7 20:15:34 2017
          State : clean
 Active Devices : 1
Working Devices : 1
 Failed Devices : 1
  Spare Devices : 0
       Checksum : 67beb987 - correct
         Events : 12447483


      Number   Major   Minor   RaidDevice State
this     0       8        2        0      active sync   /dev/sda2

   0     0       8        2        0      active sync   /dev/sda2
   1     1       0        0        1      faulty removed
/dev/sdb2:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : a112692c:cd4ddd32:b98be83a:b8b6c728
  Creation Time : Sun Feb  8 22:22:54 2009
     Raid Level : raid1
  Used Dev Size : 975585856 (930.39 GiB 999.00 GB)
     Array Size : 975585856 (930.39 GiB 999.00 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0

    Update Time : Wed Feb 15 09:09:56 2017
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0
       Checksum : 67a3a500 - correct
         Events : 12444067


      Number   Major   Minor   RaidDevice State
this     1       8       18        1      active sync   /dev/sdb2

   0     0       8        2        0      active sync   /dev/sda2
   1     1       8       18        1      active sync   /dev/sdb2

Et donc, clairement, mon disque /dev/sda1 a un problème.

Du coup, j’essaye de l’enlever via Alt-F, encore une fois. Et c’est le drame :

Removing the sda2 partition from the md0 RAID device failed:

mdadm: hot remove failed for /dev/sda2: Device or resource busy

Damned ! Comment je fais, maintenant ?

Evidement, un coup d’oeil à ServerFault donne des réponses …comme celle-là, mais par prudence, je ne vais pas l’appliquer tout de suite …

Et je vais surtout (encore) acheter un nouveau disque de 1 To …

J’en profiterai évidement pour faire jouer la garantie, parce que le disque Toshiba n’a quand même qu’un an …

Mon NAS …. amélioré

Il y a quelques temps, j’avais failli perdre mon NAS. J’avais donc remplacé mes disques, et remplacé le firmware d’origine par Alt-F. Et ça marchait … à peu près bien.

J’avais juste un problème lié au fait que rss2imap prenait environ 100% du CPU, tout en ramant comme un malade et en empêchant totalement mldonkey de fonctionner ben quoi, moi aussi je télécharge des distributions Linux).

J’y ai donc un peu réfléchi … et je me suis donné deux pistes de résolution pendant mes vacances

  1. Transformer mon vieil iBook en serveur : je peux y faire tourner du Python (merci MacPorts) et xDonkey
  2. Acheter (argh) un Raspberry PI, et y installer tout ce qu’il faut

Comme mes vacances sont finies (re-argh), j’ai pu tester ces deux pistes, et j’en ai tiré quelques conclusions

  1. Utiliser l’iBook marche bien pour rss2imap, par contre xDonkey refusait de se connecter aux serveurs du web
  2. J’ai donc fait l’acquisition d’un Raspberry Pi 3 (avec le wifi, le bluetooth, et tout ce dont on peut rêver) … et ça marche bien !

Donc, oui, j’ai maintenant un raspberry caché sous ma freebox (et non pas dans ma freebox) sur lequel j’ai l’intention de faire tourner l’ensemble des éléments consomateurs de ressource (Python, mldonkey, lighttpd) pour ne laisser sur le NAS que la diffusion de contenu (donc le serveur ssh, et minidlna).

Du coup, j’ai à nouveau un iBook qui ne sert à rien, que j’ai posé à côté des deux ordinateurs de bureau que j’ai à la cave (et qui ne servent eux aussi à rien). Que faire de tout ça ?