Docker et Portainer part 6 – NextCloud avec Docker, Déployer un « Cloud » personnel

Docker et Portainer

Salut à tous, Ça vous dirait d’héberger vous même vos propres services « Cloud » (genre maps, notes, photos, contact, calendrier) ? Ça tombe bien aujourd’hui je vais vous parler de NextCloud avec Docker et comment déployer votre « cloud » personnel.

Pour le coup, je précise que suis pas un intégriste Anti-GAFAM quand-il s’agit mes données personnelles (j’ai quasiment tout qui fini ou passe chez Google à un moment ou à un autre). Par contre, quand il s’agit de mes activités « Pro » (à mon taf ou sur mes activités indépendantes avec System Sec) : je suis vachement moi chaud pour laisser trainer des données de clients ou de mon employeur chez eux bizarrement ! C’est dans ce cadre que je me suis retrouvé à monter une petite infra Drive & Notes sur le serveur.

Rappel des articles de la série « Docker et Portainer » :

Lire la suite

Docker et Portainer part 3 – Stack Docker Guacamole

Docker et Portainer

Salut à tous, dans le dernier TP on s’est penché sur la définition d’une Stack dans Portainer pour un service VSFTPD. Aujourd’hui on va regarder comment déployer une Stack Docker Guacamole avec plusieurs images docker, toujours dans Portainer. L’objectif du jour étant d’avoir un service Guacamole sur notre serveur à la fin du TP.

Rappel des articles de la série « Docker et Portainer » :

Guacamole ? bon appétit !

Apache Guacamole plus exactement, et qui … Lire la suite

Extraire le dernier élément de chaque ligne en regex

Extraire le dernier élément de chaque ligne

Bonjour à tous, aujourd’hui un petit TP sur les expressions régulières. J’ai un collègue qui m’a demandé comment on pouvait Extraire le dernier élément de chaque ligne dans un bout de texte de quelques centaines de lignes. Voici un exemple de format :

IP Address 595,537
IPv6 Address 1,443
MAC Address 0
MD5 163,573

La première version de la regex que j’ai proposée est simple au possible :

([^\s]+)$

Qui signifie en gros : « tout, sauf les espaces avant la fin de chaque ligne ». Cette expression a quand même un problème avec ses performances (326 steps sur regex101) dans la mesure le moteur d’évaluation avance dans le texte, il ne part pas de la fin et va donc avancer dans chaque mot avant de « backtracker », si celui ci n’est pas suivi de la fin de ligne.

Du coup, j’ai pu proposer une première version optimisée :

^.*?\s([^\s]+)$

C’est l’une des rares cas que j’ai croisé où l’usage d’un .* rends l’expression plus performante (120 steps sur le même texte) en l’obligeant à aller à la fin de ligne directement avant de matcher le dernier bloc. D’après regex101, on est donc déjà 3 fois plus … Lire la suite

API REST en PowerShell – développez avec Polaris !

API REST en PowerShell

Salut à tous, on va se faire un joli morceau aujourd’hui. On va voir comment développer une API REST en PowerShell et du comment coup piloter des scripts via du CURL sur linux, ou avec Invoke-RESTMethod en PowerShell.

Notez que cet article a été rédigé en collaboration avec ArnaudPETITJEAN de PowerShell-Scripting.com. Merci à lui !

C’est quoi une API REST ?

C’est un peu complexe à définir entièrement, d’ailleurs la définition de Wikipédia est floue au possible, mais je pense qu’on peut faire simple en disant que c’est simplement une API (bravo Sherlock… et si vous ne savez pas ce qu’est une API, je pense que c’est pas la peine d’aller plus loin 😉 ). Une API REST s’appelle non pas en important une bibliothèque dans un script (comme en C ou Python par exemple) mais en faisant une simple requête Web HTTP(S). L’action sera exécutée par le serveur qui expose l’API et vous pourrez exploiter le résultat directement dans votre script.

Les API REST sont à la mode depuis quelques années, notamment chez les DevOps. Elles présentent souvent les avantages d’être simples, interopérables, légères et accessibles à distance. Si vous cherchez des alternatives à REST, vous … Lire la suite