PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

Débuter avec Docker et les containers sous Debian 8

jeudi 23 octobre 2014 à 11:00

I. Présentation de Docker

Aujourd’hui, nous allons parler container avec la solution Docker. L’objectif de Docker n’est pas la création de machines virtuelles, il s’agit là de la création de container, mais alors quelle est la différence ? Nous verrons cela en début d’article, pour que tout cela soit clair dès le départ.

docker0En fait, Docker a pour objectif de faciliter le déploiement d’applications, d’avoir plusieurs versions d’une même application sur un son serveur (phase de développement, tests), mais aussi d’automatiser le packaging d’applications. Avec Docker, on s’oriente vers de l’intégration et du déploiement en continu grâce au système de container.

De plus, Docker permet de garder son système de base propre, tout en installant de nouvelles fonctionnalités au sein de containers. En quelque sorte, on part d’une base qui est le système d’exploitation et on ajoute différentes briques conteneurisées qui sont les applications.

Dans ce tutoriel, nous verrons ce qu’est Docker, la différence entre une VM et un container, mais également comment installer Docker et comment créer son premier container avec Docker. Pour ma part, je me trouve sur une machine virtuelle sous Debian 8 Jessie.

Note : Docker nécessite une installation 64 bits de votre distribution pour fonctionner.

II. Entre virtualisation et container

De nos jours, les machines virtuelles sont très répandues et de nombreux logiciels (hyperviseurs) de virtualisation existent : Hyper-V, VMware Workstation, VMware ESXi, VirtualBox, Proxmox, etc. Pour ne citer qu’eux.

Avec une machine virtuelle, on propose une couche d’abstraction au-dessus d’un système d’exploitation existant. Il s’agit de simuler l’exécution de très bas niveau d’un système d’exploitation par-dessus un système d’exploitation existant, sans créer de liaison entre les deux. Finalement, une machine virtuelle est tout simplement la simulation d’une machine physique sur une machine physique déjà installée, et ce grâce à un hyperviseur.

Par ailleurs, un container s’appuie sur le système d’exploitation de l’hôte pour fonctionner. Il s’agit de simuler un ensemble applicatif au sein de l’OS de l’hôte, cela de façon isolée au sein d’un container. Un container est léger, performant et peut être déployé rapidement, car il partage ses ressources avec le système d’exploitation de l’hôte physique : kernel, périphériques, processeur, RAM, etc.

Docker - Container VS VM

Source : Docker.io – CONTAINER vs VM

III. Installation de Docker

Étant sous Debian 8, il est possible d’installer Docker directement grâce au paquet “docker.io” disponible dans les dépôts Debian :

apt-get update
apt-get install docker.io

Comme le montre la copie d’écran ci-dessous, Docker nécessite moins de 50 Mo pour l’installation.

docker1

Note : Avec Debian 7, il est nécessaire d’ajouter la source “deb http://http.debian.net/debian wheezy-backports main” dans le fichier sources.list. Ensuite, exécutez la commande “apt-get install -t wheezy-backports linux-image-amd64” et installez Docker grâce à la commande d’exécution d’un script suivante “curl -sSL https://get.docker.com/ | sh“.

Lorsque l’installation sera terminée, il suffit de démarrer le service Docker comme un quelconque service :

service docker start

Nous pouvons passer à l’utilisation d’un container, nous prendrons un container LAMP comme exemple.

IV. Utilisation d’un container Docker

Docker propose de nombreux templates qui permettent de déployer des applications en container, très rapidement. La communauté est très active, ce qui permet aux utilisateurs de disposer de nombreux containers applicatifs préfaits.

Docker est basé sur LXC (Linux Containers) qui est une référence sous Linux quant à l’utilisation des containers. Par ailleurs, Docker intègre les éléments suivants :

cgroups (Control Groups) : Fonctionnalité du noyau Linux pour limiter, compter et isoler les ressources (CPU, RAM, etc.) utilisées par un groupe de processus.

AppArmor et SElinux : Gestion avancée des permissions aussi bien au niveau des applications qu’au niveau du système de fichiers.

Kernel namespace : Fonctionnalité du noyau Linux qui permet l’isolation, afin de s’assurer qu’un container ne puisse pas en affecter un autre.

chroot : Fonctionnalité qui permet de changer la racine d’un processus, afin de l’isoler sur un système par mesure de sécurité.

Docker propose des services pour effectuer facilement différentes actions : créer, éditer, publier et exécuter des containers. Vous entendrez souvent parler de containers, d’images et de DockerFile :

Les trois termes ci-dessus sont importants, notamment si vous souhaitez vous lancer dans la création de votre propre ensemble Docker.

Le saviez-vous ? Docker est développé avec le langage Go

Passons à la pratique ! Dans ce premier tutoriel, nous allons déployer un container LAMP (Linux Apache MySQL PHP) afin de déployer un serveur web grâce à Docker.

A. Rechercher un container Docker

Nous souhaitons obtenir un container LAMP, pour cela nous allons regarder les images dans les dépôts Docker :

docker search lamp

docker2

La liste que l’on obtient est longue… Il y a de la concurrence et du choix ! Pour faire votre choix, appuyez-vous sur trois critères principaux : la description, la popularité du container (stars) et le fait que ce soit un container officiel ou non.

Vous pouvez aussi consulter au préalable le repository de Docker : Docker Browser

Pour ma part, je pars sur l’image “tutum/lamp” qui est à l’heure actuelle l’image container de LAMP la mieux notée.

B. Installer un container Docker

La commande pour installer (récupérer, déployer) une image de container sur sa machine est la suivante :

docker pull tutum/lamp

Il suffit de remplacer tutum/lamp par le nom de l’image choisie.

docker3

C. Démarrer le container Docker “LAMP”

Le démarrage d’un container s’effectue grâce à “docker run“, comme ceci :

docker run -d -p 80:80 -p 3306:3306 tutum/lamp

Ce container écoute sur deux ports : le 80 pour le HTTP, le 3306 pour les connexions MySQL. On peut alors accéder à notre serveur web :

docker5

Il faut savoir que chaque container peut disposer de ces options d’exécution et de configuration. Pour cela, il faut consulter la “fiche” du container concerné sur le repository de Docker.

L’option -p permet d’indiquer les ports d’écoutes du container et fonctionne sous cette forme :

docker run -p <hôte_port1>:<container_port1> -p <hôte_port2>:<container_port2>

Le port d’hôte correspond au port sur lequel vous devez contacter l’hôte pour accéder au service, le port container correspond au port vers lequel sera redirigée la requête au niveau du container. Il y a en fin de compte un “NATage” de ports.

Si l’on regarde les ports listen sur notre serveur Debian 8, on remarque qu’il y a “docker-proxy” en écoute sur les deux ports que nous avons indiqués précédemment (80 et 3306) :

netstat -petula

docker6

V. Redémarrer et arrêter un container

Démarrer un container c’est bien, savoir l’arrêter et le redémarrer c’est encore mieux. Pour cela, deux commandes sont à connaître :

docker start <container-id-ou-container-name>

docker stop <container-id-ou-container-name>

Note : Le fait de redémarrer un container (d’ailleurs, c’est bien start et non restart), ne réinitialise pas ses options il sera exécuté avec les mêmes options que l’exécution initiale.

Comment savoir le nom ou l’ID d’un container ? Réponse à l’étape suivante.

VI. Quels sont les containers Docker en cours ?

Un container par ci, un container par là… L’exécution des containers peut vide se multiplier. Pour visualiser quels sont les containers en cours d’exécution, on utilisera la commande suivante :

docker7

Vous remarquerez sur la copie d’écran que le container tutum/lamp est bien en cours d’exécution (c’est celui que nous avons exécuté précédemment).

Voici la signification des différentes colonnes :

VII. Consulter l’aide

Pour vous guider, comptez sur la documentation officielle de Docker mais également sur les fichiers man :

man docker

Mais également plus précisément pour chaque comment :

man docker run

Ainsi, vous obtiendrez des informations précieuses quant à l’utilisation de certaines options, certaines commandes, si vous désirez déjà aller plus loin dans l’utilisation de Docker.

Documentation officielle : docs.docker.com

Ce premier tutoriel sur Docker touche à sa fin, il vous permettra de débuter sous Docker et de mieux comprendre la documentation officielle et les différents man fournis. N’hésitez pas à partager vos avis et expérience sur ce très bel outil !

Internet Facts 2014 : L’infographie qui résume Internet

jeudi 23 octobre 2014 à 10:00

Une infographie nommée Internet Facts 2014 et publiée par Host Advice, fournie des données concernant Internet dans le monde, qui en une vingtaine d’années s’est fait une place indispensable dans notre société.

Les informations à retenir :

– Sur les 7 milliards d’habitants sur la Terre, 2.4 milliards utilisent Internet

– Sur ces 2.4 milliards, 1.7 milliard provient d’Asie

– 8.7 milliards de périphériques connectés

– Toutes les 60 secondes, 72 heures de vidéos YouTube sont mises en ligne

– 78% des Nord Américains utilisent Internet

– Les villes les plus connectées sont en Corée du Sud et au Japon

– 19% des couples mariés se sont rencontrés en ligne

infographie-internet2014

Avast! Antivirus Gratuit 2015 est disponible !

mercredi 22 octobre 2014 à 14:31

La version 2015 de l’antivirus Avast! est désormais disponible, avec à la clé une version gratuite – comme d’habitude. Une nouvelle interface flat design et quelques nouveautés intéressantes sont intégrées : allez, on fait le point.

Au niveau de l’interface, les changements sont surtout au niveau du design, vous ne serez pas perdu avec cette nouvelle version. Toutefois, l’accès aux fonctionnalités et aux outils principaux est simplifié grâce au volet d’accès rapide, situé à gauche.

avast20151

On retrouve bien du Avast! dans cette interface avec la mention “Vous êtes protégé” mentionnée, et qui permet de savoir en un clin d’œil l’état de sa protection.

Intéressons-nous aux nouvelles fonctionnalités et à celles améliorées :

Sécurisation du réseau domestique : Les informations fournies concernant cette fonctionnalité sont vagues et imprécises… Il semblerait que l’outil analyse votre connexion afin de vérifier les paramètres de la connexion, du routeur et d’obtenir des informations sur les hôtes connectés. Si un problème est détecté, Avast! pourra vous guider pour le résoudre.

avast20152

Agent web : Cet outil d’analyse prend maintenant en charge les sites HTTPS. De ce fait, vous pourrez les ajouter en liste blanche afin qu’un ne soit plus analysé (et la navigation ralentie).

Nettoyage du navigateur : L’outil analyse les barres d’outils et de recherche installées au sein de votre navigateur, dans le but de les évaluer.

SmartScan : Fonctionnalité qui permet l’exécution de plusieurs actions en une seule tâche : analyse antivirus, mise à jour des logiciels Software Updater, analyse du réseau domestique et désencombrement du système avec GrimeFighter.

Un mot sur le Software Updater qui permet de mettre à jour les logiciels installés sur votre machine, dont la version est obsolète. Toutefois, pour automatiser ce processus, vous devez disposer de la version Premium d’Avast!

avast20153

Pour finir et à titre d’information, je précise que l’éditeur Avast! fête ses 25 ans à l’occasion de cette nouvelle version.

Source

GNS3 : Importer une image IOS Cisco

mercredi 22 octobre 2014 à 10:00

I. Présentation

Dans ce tutoriel, nous allons voir comment importer une image IOS Cisco dans un élément réseau (routeur, switch, ASA. ) d’un réseau virtuel GNS3. Pour rappel, GNS3 est un émulateur réseau qui tire parti de l’outil Dynamips permettant d’émuler de façon totale des systèmes Cisco. On peut alors virtuellement créer un réseau entier en profitant de toutes les fonctionnalités Cisco, ce qui n’est pas le cas de Packet Tracer par exemple.

Pour démarrer un élément actif comme un routeur Cisco dans GNS3, il faut cependant que celui-ci ait une véritable image d’un IOS Cisco à disposition, comme c’est le cas d’ailleurs sur un routeur réel. On doit pour cela passer dès le début de notre prise en main de GNS3 par cette phase d’importation d’une image IOS Cisco dans GNS3. C’est une procédure relativement simple, mais qui comporte tout de même quelques subtilités qu’il faut connaitre pour utiliser pleinement les fonctionnalités de GNS3.

Je ne détaillerai pas ici comment trouver et télécharger une image IOS Cisco.

II. Importer un IOS CISCO dans GNS3

Dans GNS3, il faut commencer par aller dans “Éditer” puis dans “Images et Hyperviseurs” pour ajouter une image IOS Cisco et l’assigner à un routeur :

gns3 importer ios cisco

On se rend ici dans le paramétrage des images IOS

On se retrouve donc ensuite avec cette fenêtre :

gns3 importer cisco ios

Voici la fenêtre qui nous permet de gérer les IOS Cisco

Il faut ici cliquer sur “…” à droite de “Image binaire” puis aller chercher le fichier au format binaire (.bin) qui est l’image IOS CISCO que vous souhaitez importer dans GNS3. Pour ma part, il s’agit d’une image pour un routeur Cisco c1700 :

gns3 importer ios cisco

Image IOS Cisco au format binaire a importer

Sur l’image importée, GNS3 m’avertit que celle-ci est compressée et me demande une confirmation pour la décompresser, cela va créer un fichier au format .image qui sera utilisé ensuite par GNS3 :

importer image cisco gns3

Demande de décompression de l’image IOS

Le champ suivant est “Config de base”, dans GNS3, il existe une configuration basique qui est stockée dans un fichier.txt. Quand un élément actif démarre (routeur, switch …), celui-ci va lire sa configuration basique et appliquer les paramétrages qui s’y situent. On peut alors paramétrer par défaut des éléments actifs dès leurs démarrages. Pour une utilisation basique, il n’est pas nécessaire de modifier ces fichiers et ce champ, mais il faut tout de même savoir qu’ils existent. On peut ensuite sélectionner notre plate-forme, cela dépendra de l’image que vous avez chargé dans GNS3. Dans mon exemple, il s’agit d’une image pour un routeur C1700, je sélectionne donc la plate-forme c1700 et le premier modèle qui est pour les routeurs c1700 le 1710. :

gns3 cisco ios importation

Sélection du modèle de routeur/swtich correspondant à l’image chargée

Nous allons ensuite passer à une particularité de GNS3 qui est le champ “IDLE-PC”. En effet, les utilisateurs de GNS3 rencontrent souvent des difficultés concernant l’utilisation des ressources CPU par GNS3, le champ “IDLE-PC” est là pour répondre à cette problématique. Le problème est que, contrairement à Packet Tracer, GNS3 émule un véritable routeur et l’exécution des instructions est donc faite différemment. IDLE PC va en effet, pour chaque image, calculer une valeur qui va permettre l’optimisation et l’économie des ressources pour qu’un réseau virtuel puisse être correctement exécuté sans besoin de ressource considérable. Sur la version actuelle de GNS3 Windows, GNS3 est capable de calculer lui même cette valeur, ce qui n’est pas forcément le cas dans d’autres versions. Après avoir uploadé notre image, il faut donc simplement cliquer sur “Auto Calculation” :

gns3 idle-pc configuration

Paramétrage automatique de la valeur IDLE-PC dans GNS3

 Note : Si aucune valeur Idle-PC n’est saisie, vous aurez le message d’erreur suivant lors de la sauvegarde

gns3 idle pc erreur

Erreur lors d’un oubli de configuration du IDLE PC

On peut également paramétrer dans “RAM par défaut” la RAM que chaque plate-forme (ici “c1700″ utilisant cette image va avoir). Une fois que nous avons terminé le paramétrage de ces différents champs, nous pouvons passer au test de notre image avant la sauvegarde, on clique pour cela sur “Test Settings” :

gns3 importer image ios cisco

Démarrage Test de l’image IOS Cisco importée

GNS3 va alors simplement effectuer un premier démarrage de notre image IOS, si ce test va jusqu’au bout, vous pourrez entrer quelques lignes de commandes. On cliquer alors sur “Sauvegarder” pour finaliser l’importation de notre image.

III. Utiliser l’image importée

Maintenant que nous avons importé une image, nous allons simplement intégrer un élément actif réseau comme un routeur dans un réseau GNS3 afin de voir si tout se passe bien et si notre image est bien utilisée. Pour cela, on clique sur l’icône de l’élément actif associé à l’image que vous avez chargé, pour moi il s’agit donc d’un routeur et plus précisément d’un Cisco c1700. Il nous suffit donc de le sélectionner puis de le glisser sur le cadre blanc central :

gns3 utilisation configuration

Intégration d’un routeur dans le schéma du réseau virtuel GNS3

Une fois que notre routeur sera sur le réseau virtuel, nous pourrons faire un clic droit puis “Démarrer” pour initialiser son lancement :

gns3 cisco

Démarrage du routeur virtuel dans GNS3

On pourra alors faire à nouveau un clic droit puis “Console” pour ouvrir une console d’administration via Putty sur le routeur en question et voir qu’il démarre correctement avec l’image et la version configurée précédemment :

gns3 utilisation routeur cisco

Vue terminale du routeur démarré

Nous avons ici vu l’une des premières étapes que l’on effectue lorsque l’on apprend à se servir de GNS3 qui est un outil très puissant lorsque l’on connaît ses subtilités. N’hésitez pas à réagir dans les commentaires ou à poser des questions et partagez vos expériences sur GNS3 dans notre Forum.

 

 

Quoi ? Vous êtes encore sous Windows XP ?

mardi 21 octobre 2014 à 14:00

Il y a quelques jours, j’ai « visité » une grande administration française, dans le cadre de mes activités… Quelle ne fut pas ma surprise de voir plus d’une centaine de postes de travail avec Windows XP, MS Office 2003 et l’anti-virus de McAfee…

Ben alors, c’est ce quoi ce « binz » ? Moi qui croyait que Windows XP était entré dans le camp des O.S pestiférés et que la menace d’Ebola n’était que du « pipi de chat » par rapport aux menaces visant Windows XP sans ses mises à jour de sécurité !

Je file alors faire un tour sur le très sérieux site du gouvernement traitant de la sécurité informatique (A.N.S.S.I Agence Nationale pour la Sécurité des Systèmes Informatiques) afin de voir ce qu’ils en pensent… Euh ben pas grand chose puisqu’ils ne parlent pas de la mort de Windows XP, pire ils donnent encore des conseils pour mettre à jour son système basé sur cet O.S…alors que tout le monde le sait : il n’y a plus de mises à jour de cet O.S déclaré « obsolète » par son créateur.

Alors, on nous aurait menti ? Peut-on encore utiliser cet O.S dans l’entreprise sans craindre l’arrivée du méchant loup ?

windowsxp
Vous avez tout compris ! Le problème ne consiste pas à éradiquer Windows XP de nos organisations mais plutôt à se poser la question suivante : par quoi remplacer ce « bon » vieil O.S ?

Comme bon nombre d’entre vous, mon parc de postes de travail reposait essentiellement (à 80%) sur Windows XP et, aujourd’hui, le renouvellement naturel de mon parc fait que je me retrouve avec une petite moitié sous Windows Seven et le reste sous Windows XP…

On a passé pas mal de temps afin d’intégrer Windows Seven et à faire en sorte que les utilisateurs ne puissent pas s’égarer dans des fonctionnalités jugées complètement inutiles pour les besoins qui sont les nôtres. En bref, nous avons tout enlevé, nous avons appliqué le « papier-peint » de l’entreprise et nous avons laissé quelques icônes sur le bureau (le strict minimum) afin de lancer les quelques applications qui sont encore en mode « client lourd » et qui se comptent sur les doigts d’une main désormais. La majorité de nos applications sont « passées » en mode full-web et ne nécessitent qu’un « simple » navigateur (l’autre cauchemar des années à venir…). Cerise sur le gâteau, on s’aperçoit, au passage que le fait de disposer d’un annuaire « ancien » (Active Directory sous Windows Server 2003) ne facilite pas vraiment le déploiement d’un parc en Windows Seven. De plus, je ne vous cache pas le fait que nous avons rencontré quelques soucis dans l’installation de nos « vieux » clients lourds sur ce nouvel O.S… Bref, on en a un peu bavé quand même…

Résultat des courses : nos utilisateurs n’ont strictement rien gagné et le service informatique s’est arraché les cheveux pour déployer tout cela ! Wahou ! Quelle bonne affaire ! Ajoutez à cela que votre boss vous demande le PC portable dernier cri, avec Windows 8.1 et là, vous êtes au paroxysme du n’importe quoi ! Pire, je pense que la multiplicité des O.S dans l’entreprise représente une bien plus grande faille de sécurité que celle représentée par l’utilisation de Windows XP même au-delà de sa période de maintenance… Humm, ça sent l’obsolescence programmée tout cela… Mais bon, on l’a échappé belle, Windows 9 ne sortira pas et on passera directement à la version 10 ! C’est chouette hein ?

Cela commence à me chauffer un tantinet toutes ces c……….. et nous passerons bientôt plus de temps à déployer nos postes de travail qu’à créer de la valeur ajouté à nos « métiers »…et quand j’entends que la solution « miracle » résiderait dans le fait de virtualiser ses postes de travail (dans le cloud bien entendu…) afin de s’assurer d’une bonne homogénéité et d’une bonne consistance des configurations alors là, c’est le pompon puisque cela consiste à se payer une Citroen DS4 toutes options, à en retirer tout le confort et tous les boutons (pour que nos petits chéris ne jouent pas avec) et à transformer le tout en Dacia Sandero qui suffira amplement à nos petits trajets quotidiens et à partir une fois par an au bord de la grande bleue…

Certes, il faut relativiser, je n’officie pas dans une agence de communication ou une grande chaîne de télévision où là, on pourrait comprendre que Twitter et Facebook et autres « réseaux sociaux » doivent s’afficher en plein écran avec des dizaines de pop-up…mais alors, pour les besoins de mon entreprise (secteur de la logistique et des transports), c’est quoi le poste de travail idéal ?

Et vous, comment appréhendez-vous tout cela ?