PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

Microsoft crée SA distribution Linux !

lundi 21 septembre 2015 à 10:00

Dans l’objectif de renforcer son offre cloud Azure, Microsoft a développé sa propre distribution Linux baptisée “Azure Cloud Switch”.

logo-azure3C’est par l’intermédiaire d’un article de Kamala Subramaniam, architecte chez Azure Networking, que Microsoft a annoncé la nouvelle.

Cette distribution a pour objectif de faire tourner des périphériques réseau comme des switchs, pour un réseau géré directement au niveau de la couche logicielle.

La hache de guerre entre Microsoft et le monde Linux semble bel et bien enterrée, et c’est surement mieux pour tout le monde. Ce n’est pas d’aujourd’hui que Microsoft se rapproche de Linux puisque depuis plusieurs années déjà, Microsoft contribue au noyau Linux de manière importante.

Auto-hébergement et synchronisation : Problème d’URL

vendredi 18 septembre 2015 à 12:15

I. Présentation

L’auto-hébergement, notamment pour les solutions de stockage de fichiers de type “Cloud” est aujourd’hui assez répandue. Nous sommes nombreux à mettre en place, sur des Raspeberry Pi ou des NAS des solutions telles qu’Owncloud, CozyCloud ou Pydio pour se passer des services de géants tels que Microsoft ou Google, trop regardant sur nos données personnelles.

Si c’est votre cas et que votre solution est hébergée chez vous, vous avez sûrement rencontré le même problème que moi :

Lorsque vous êtes à l’extérieur de votre LAN, vous ciblez avec votre client de synchronisation une IP publique fixe, ou un système DynDNS, ou encore des systèmes DNS fournis par les constructeurs de NAS de type MyQNAPCloud.com ou Synology.me. Ceux-ci permettent, via la création d’un compte, d’avoir un système proche de celui du DynDNS afin de joindre son NAS a travers une IP publique dynamique

Cependant lorsque vous rentrez chez vous, vous souhaitez alors joindre votre NAS/ RaspberryPi avec son IP interne et non plus le système DynDNS ou le système DNS de votre NAS, c’est là qu’un problème se pose car il est difficile de changer dynamiquement la configuration du client de synchronisation à chaque fois

Nous allons donc voir ici ensemble une solution de contournement à ce problème basée sur un petit (vraiment petit) script.

Ce tutoriel a été réalisé avec l’environnement suivant :

Le but est alors le suivant :

Pour plaire à tout le monde, je vais bien entendu vous proposer le même système à la fois sous Linux et sous Windows. Il est à noter que selon votre contexte, il sera à adapter. Si vous utilisez le système Synology plutôt que QNAP par exemple.

Il faut savoir que pour savoir si je suis dans mon LAN ou non, je me base sur la présence d’une page web, celle-ci doit donc être unique à votre LAN. Ce n’est en soit pas très difficile à faire. Positionnez par exemple une page http://IPserveur/32542354254287425772.html sur votre serveur afin d’être certains que vous ne la trouverez dans aucun autre environnement. Pour ma part, je vise simplement la page d’accueil de mon NAS QNAP (son IP est 192.168.1.2 en local). Voici le déroulement du script :

auto-hebergement-probleme-url-01
Ce script sera donc exécuté à chaque démarrage, par exemple 2 minutes après le boot pour nous laisser le temps de trouver une IP et un accès au réseau. Ainsi, on pourra dynamiquement changer l’enregistrement DNS pour que notre client de synchronisation, utilisant toujours le même nom DNS, arrive sur l’IP privée ou publique de notre NAS ou autre solution d’hébergement.

II. Script Sous Windows : Powershell

Voici le script en question en Powershell :

$web = [net.webRequest]::Create("http://192.168.1.2:8080/cgi-bin")
$web.GetResponse()

if ( $? -eq "True")
    {Add-Content C:\Windows\System32\drivers\etc\hosts "192.168.1.2 123123123.myqnapcloud.com"}
else
    {(Get-Content C:\Windows\System32\drivers\etc\hosts) -notmatch "123123123" | Out-File C:\Windows\System32\drivers\etc\hosts}

Ici, on récupère donc une page qui ne pourra se trouver que sur notre LAN, cela peut être une page créée pour l’occasion. Pour ma part, je vise simplement l’IP de mon NAS. On utilise “Get.Response()” pour effectuer notre requête. Si la commande aboutie, la variable d’environnement “$?” (qui fonctionne de façon similaire sous Windows et sous Linux) retournera “True“, sinon cela causera une erreur et la “$?” vaudra “False“. On pose donc notre condition en conséquence.

Si je suis dans mon LAN ($? = True), j’ajoute dans le fichier “hosts” l’enregistrement de l’IP locale pour le domaine visé par mon client de synchronisation.

Sinon, je supprime les enregistrement dans mon fichier “hosts” concernant cet enregistrement. On peut naturellement modifier ce script pour switcher entre IP publique fixe et une IP locale par exemple.

Vous pourrez donc stocker ces lignes dans un fichier au format .ps1 puis l’exécuter au besoin. Il est important d’exécuter ce script en tant qu’administrateur car il est le seul habilité à modifier le fichier hosts.

C:\Windows\System32\drivers\etc\hosts

III. Script Sous Linux : Bash et Cron

Pour les personnes comme moi disposant d’un environnement Linux, voici le script que j’utilise :

#!/bin/bash
# Vérifier si l'on se situe dans notre LAN.
# Je récupère le code HTTP d'une page située sur un élément de mon LAN (mon NAS)
command=$(curl -o /dev/null --silent --head --write-out '%{http_code}\n' http://192.168.1.2:8080/cgi-bin/)

# Si l'élément répond, je suis dans mon LAN donc je bypass la résolution DNS par l'IP interne
if [[ $command -eq "200" ]];then
    echo "192.168.1.2 123123123.myqnapcloud.com"  >> /etc/hosts
# Sinon, je laisse le système de résolution de QNAP faire le travail DNS
else
    sed -i '/123123123/d' /etc/hosts
fi

Ici, on utilise la commande “curl‘” pour récupérer le code HTTP retourné par la page spécifique à notre LAN. Si le code retourné est “200“, cela signifie que l’on est dans le LAN, on peut donc utiliser notre fichier hosts local pour résoudre le domaine de notre NAS ou DynDNS. Sinon, on supprime tout enregistrement concernant ce domaine présent dans notre fichier hosts. Il est important que ce soit “root” qui fasse tourne ce script car il est le seul habilité à modifier le fichier /etc/hosts

Je l’ai stocké dans /root/Documents/scripts/ et l’ai noblement nommé Owncloudconnect.sh. En tant que root, on utilisera ensuite la commande “crontab -l” pour y ajouter la ligne suivante :

@reboot sleep 120 && /root/Documents/scripts/Owncloudcorrect.sh

Celle-ci permettra, 2 minutes après chaque reboot, l’exécution automatique du script. Vous n’aurez alors plus rien à faire ! :)

L’application Send de Microsoft débarque pour Android

jeudi 17 septembre 2015 à 14:00

Ce n’est pas la première fois que je vous parle d’une application issue du Microsoft Garage. Aujourd’hui, c’est l’application Send qui fait parler d’elle puisqu’elle débarque sur Android en version Preview.

Send est une application qui a pour objectif de proposer une alternative aux échanges de mails classiques, en passant plutôt par de brèves communications. Un peu à la manière de WhatsApp, Send propose de discuter directement avec vos contacts Outlook, c’est d’ailleurs votre adresse e-mail qui est utilisée comme identifiant. Les messages envoyés par Send sont rapides, on évite tout ce qui peut être formule de politesse, signatures… L’intérêt étant de diffuser rapidement un message comme on le ferait avec un SMS.

send1

Pour le moment, Send est disponible seulement pour les professionnels aux États-Unis et au Canade disposant d’une souscription à Office 365 (Send s’appuie sur votre compte Outlook). En espérant qu’elle arrive en France pour pouvoir être testée. Au niveau de la version Android, il faut disposer au minimum de la version 4.2.

Quoi qu’il en soit, Send a du travail pour s’imposer face aux mastodontes de la catégorie que sont WhatsApp et Facebook Messenger.

Pipo X9 : La tablette de salon multifonctions

jeudi 17 septembre 2015 à 11:30

Il y a quelques mois, nous vous présentions la tablette PIPO X8. Aujourd’hui, c’est au tour de son grand frère, le X9 d’être sur le devant de la scène.

Cette tablette “hybride” est un appareil intéressant (et original), d’abord de par son aspect qui peut sembler peu commun lorsque l’on parle de tablette.

pipo-x9

Cette “tablette de salon” est en réalité un mix entre une tablette standard, tactile avec un écran de 8″9 et un box TV/mini PC.

Le plus intéressant reste que ce petit appareil est en dual boot avec un système Android 4.4 (dommage pas d’Android 5.0) et un système Windows 10. Cela correspond donc à un très large panel d’utilisation :

Côté ressource, on retrouve un CPU Intel Quad Core Z3736F 2.16GHz, 2 GO de RAM et 64 Go de ROM (+ carte Micro SD 32Go possible).

Une connectivité Wifi (2.4G)/Bluetooth et également un port Ethernet ! La connexion multimédia (utilisation Box TV par exemple) se fera à l’aide d’un port HDMI. Chose peu commune pour une tablette, on retrouve également 4 ports USB.

Pour les intéressés par cette tablette hybride, vous pourrez la retrouver sur le site Gearbest : Pipo X9

VMware ESXi : Forcer l’extinction d’une VM

jeudi 17 septembre 2015 à 10:00

I. Présentation

Lors de l’utilisation de machines virtuelles sous VMware ESXi, il peut arriver qu’une machine virtuelle soit visuellement allumée dans le client vSphere mais que le vSphere lui estime qu’elle est allumée. Cet état intermédiaire et plutôt curieux oblige une extinction forcée et manuelle en ligne de commandes de la VM concernée.

Lorsque l’on tentera d’éteindre depuis le client vSphere la VM, on obtiendra le message d’erreur suivant : “L’opération tentée ne peut être effectué dans l’état actuel (Désactivé).

vmware-erreur-poweroff-1

Avant de commencer, vous devez activer le SSH et le Shell sur votre serveur ESXi pour initier une connexion à distance en SSH (port 22).

II. Procédure

Commencez par lister toutes les VMs exécutées sur cet ESXi :

vim-cmd vmsvc/getallvms

On obtient une liste :

vmware-erreur-poweroff-2

On repère l’identifiant (ID) de la VM que l’on souhaite éteindre, ici 268. On demande à obtenir l’état de cette VM :

vim-cmd vmsvc/power.getstate 268

Du point de vue de l’ESX, cette VM est allumée :

Retrieved runtime info
Powered on

On va tenter d’éteindre la machine virtuelle proprement mais il y a de fortes chances pour que ça ne fonctionne pas… Indiquez la commande ci-dessous avec votre ID :

vim-cmd vmsvc/power.off 268

Ceci ne fonctionne pas :

Powering off VM:
Power off failed

Désormais nous allons réaliser un arrêt forcé mais pour cela il faut obtenir le “World ID” correspondant à la VM. On va lister les processus VM en fonctionnement :

esxcli vm process list

On repère la ligne WorldID de la VM ciblée :

vmware-erreur-poweroff-3

Ma VM avec l’ID 268 dispose du WorldID 4365, donc pour forcer l’arrêt cela donnera :

esxcli vm process kill -t force -w 4365

Enfin, on vérifie que la VM est bien éteinte avec la commande que l’on a utilisée précédemment :

vim-cmd vmsvc/power.getstate 268

C’est tout bon puisque la VM est éteinte :

Retrieved runtime info
Powered off

Il ne reste plus qu’à démarrer votre VM depuis le client vSphere et tout doit rentrer dans l’ordre !