RSS
 

Docker : premiers pas

04 Fév

Je me lance dans la découverte de Docker et quelques billets jalonneront donc ma progression dans cet univers. Ce premier billet couvre le lancement et la gestion de base d'un conteneur.

Juste pour introduire Docker en une phrase, disons que c'est un gestionnaire de conteneurs logiciels open source écrit en Go. Voilà :)

Pour plus d'informations, je vous conseille l'excellent site officiel qui regorge d'informations utiles et qui me servira de guide : https://www.docker.com/

Je m'appuie ici sur un Docker en version 1.4.1 installé sur une machine Ubuntu 14.10.

 

Lire la suite … »

 
No Comments

Posted in Docker

 

CentOS 6 : schéma de partitionnement

18 Avr

Introduction

Suite à l'installation d'un nouveau serveur muni du système d'exploitation CentOS en version 6, je me suis posé la question du partitionnement.

Après la lecture de la documentation officielle de RedHat sur le sujet, j'en suis arrivé à la conclusion que le schéma de partitionnement ci-dessous convenait très bien pour un serveur avec 2 Gio de RAM et quelque soit la taille du disque dur associé.

Schéma

  • /boot : 256 Mio
  • / : 4 Gio
  • swap : 4 Gio
  • /home : 256 Mio
  • /tmp : 256 Mio
  • /var : 4 Gio

Explication des tailles

Malgré le gros disque dur, il ne me semble pas nécessaire de tailler de grosses partitions dès le départ puisqu'elles peuvent facilement s'agrandir par la suite en fonction des besoins, d'autant que c'est une opération faisable à chaud via LVM (sauf les partitions / et /boot qui ne sont pas en LVM mais qui ne sont pas sensés grossir après l'installation, sauf à empiler les kernel :) ).

Par ailleurs, je considère que les applications principales devraient avoir leur propre volume logique pour le stockage des logs et données, le schéma indiqué ici ne devrait donc s'appliquer qu'à l'espace utilisé par le système et les applications mineures.

  • /boot : destiné à accueillir le noyau du système d'exploitation, je le laisse à la taille recommandée de 256 Mio
  • / : contient la plupart des fichiers et logiciels du système d'exploitation, notamment dans /usr que RedHat ne conseille pas de placer sur une partition séparée pour des questions de compléxité du processus de démarrage
  • swap : avec 2 Gio de RAM, on peut encore utiliser la formule de calcul "swap = 2 * RAM". Au-delà et jusque 8 Gio, mettre la même taille que la RAM
  • /home : taille minimum, à ajuster plus tard en fonction du nombre d'utilisateurs et de leurs besoins
  • /tmp : taille minimum
  • /var : contient des applications et sert de base au téléchargement des mises à jours de paquets : une taille de 4 Gio est plutôt conseillée

Et après ?

Le reste de la taille sera affecté à un ou plusieurs groupe de volumes LVM afin de pouvoir le distribuer plus tard aux différentes applications hébergées sur le serveur.

Variantes

Quelques variantes discutées dans les commentaires :

  • /home à 1 Gio
  • /var à 8 Gio
  • /tmp à 4 Gio
  • placer /usr et /lib dans des volumes séparés plutôt que dans /, et avoir un / plus petit
 
 

Authentifier avec Apache

17 Déc

Le but de cette petite note est l'authentification simple avec Apache permettant un contrôle d'accès sur un site.

L'environnement est un serveur Ubuntu en version 12.04 LTS muni d'un noyau Linux en version 3.2.13 et d'un serveur Apache en version 2.2.22.

1 – Créer un fichier utilisateur

La première chose à faire est de créer un fichier contenant les utilisateurs et mots de passe qui pourront se connecter au site.

Pour cela, il faut utiliser l'utilitaire htpasswd fourni par Apache.

La commande prendra trois arguments :

  • -c : pour créer le fichier, à ne plus utiliser lors de l'ajout d'autres utilisateurs
  • le nom du fichier contenant les utilisateurs/mots de passe
  • l'utilisateur à ajouter

Nous allons donc créer le fichier par l'ajout d'un premier utilisateur, la commande nous demandera ensuite de taper deux fois le mot de passe associé :

# htpasswd -c /etc/apache2/passwords toto
New password:
Re-type new password:
Adding password for user toto

Le nom et l'emplacement du fichier sont libres, attention à ne pas le mettre dans un répertoire accessible depuis l'Internet !

2 – Configurer Apache

La configuration de l'authentification peut se faire dans un fichier .htaccess situé dans le répertoire à protéger, ou dans une directive <Directory> de la configuration du site.

C'est cette deuxième méthode qui sera utilisée ici. Dans la section <Directory> correspondant au répertoire à protéger, nous allons ajouter ces directives :

AuthType Basic

Indique le type d'authentification, ici Basic. Attention, cela signifie que les mots de passe passeront en clair sur le réseau, ce type d'authentification est à coupler avec l'utilisation d'une couche SSL.

AuthName "Restricted Area"

Le nom de la zone à protéger. Elle sert à la fois d'information au visiteur mais permet aussi de regrouper plusieurs emplacements, évitant ainsi à l'utilisateur de devoir se ré-authentifier à chaque changement d'emplacement.

AuthBasicProvider file

Le fournisseur de l'authentification, ici un fichier. Ce pourrait être une base de données ou un LDAP par exemple.

AuthUserFile /etc/apache2/passwords

Comme on a précisé avant que l'on utilisé un fichier, cette directive indique son emplacement.

Require valid-user

Ce qui est requis pour accéder au répertoire. Ce pourrait être un nom d'utilisateur, ici on indique plutôt que tout utilisateur présent dans le fichier peut accéder au répertoire si son authentification a réussie.

3 – Redémarrer et tester

Il n'y a plus qu'à redémarrer Apache pour la prise en compte des modifications de configuration :

# service apache2 reload
 * Reloading web server config apache2                                                                    [ OK ]

Et à tester en se rendant sur la page : devrait alors apparaitre une boite de dialogue permettant de s'authentifier avec l'utilisateur et mot de passe configurés précédemment !

 
No Comments

Posted in Apache, Linux

 

Créer une base de données MySQL

16 Déc

La création d'une base de données MySQL est très souvent un pré-requis à l'installation d'application Web sur u serveur.

La procédure est toujours la même, et très simple.

La création d'une base de données avec MySQL implique deux étapes :

  • la création de la base de données proprement dite
  • la création d'un utilisateur et l'attribution des droits sur cette base

La première chose à faire est de se connecter au serveur MySQL avec l'utilisateur root :

# mysql -u root -p

Une fois connecté, nous pouvons créer notre base, toto par exemple :

mysql> CREATE DATABASE toto;
Query OK, 1 row affected (0.00 sec)

Puis nous créons notre utilisateur toto qui aura comme mot de passe secret :

mysql> CREATE USER 'toto'@'localhost' IDENTIFIED BY 'secret';
Query OK, 0 rows affected (0.00 sec)

Enfin, on attribue à la base de données toto tous les droits pour l'utilisateur toto :

mysql> GRANT ALL ON toto.* TO 'toto'@'localhost';
Query OK, 0 rows affected (0.00 sec)

Voilà, la base toto est désormais configurée avec un utilisateur toto. Ces paramètres pourront ensuite être renseignés dans l'application qui ira créer ses propres tables.

 
No Comments

Posted in MySQL

 

Installer et configurer vsFTPd

16 Déc

vsFTPd (pour Very Secure FTP Daemon) s'annonce lui-même comme étant "probablement le plus sur et le plus rapide des serveurs FTP pour systèmes Unix".

La configuration portera essentiellement sur deux usages :

  • utilisation du FTP avec du SSL
  • utilisation du FTP avec des utilisateurs virtuels qui peuvent uloader

L'environnement est un serveur Ubuntu en version 12.04 LTS muni d'un noyau Linux en version 3.2.13.

Lire la suite … »

 
4 Comments

Posted in FTP, Linux

 

Apache : ajouter un nouveau serveur virtuel par nom

16 Fév

La création de serveurs virtuels par nom dans Apache permet de faire cohabiter plusieurs sites sur une même adresse IP, chaque site étant accédé par son propre nom.

On aura ainsi, par exemple, deux sites Web http://monsite1.com et http://monsite2.fr qui pourront être hébergés dans le même serveur Apache tout en ne possédant qu'une seule adresse IP.

C'est la méthode la plus couramment utilisée pour créer des serveurs virtuels. L'autre méthode, la création de serveurs virtuels par IP, n'est à utiliser que dans des cas particuliers.

Logiciel utilisé : Apache 2.2.17

Distribution Linux : Ubuntu Server 11.04, Linux 2.6.38

Note : l'emplacement des fichiers de configuration est donné par rapport à l'installation du serveur Apache via Ubuntu Server. Pour une installation à partir des sources, toutes les directives seront à mettre dans le fichier httpd.conf. et la création du lien symbolique pour l'activation du site n'est pas nécessaire.

Lire la suite … »

 

VMWare : les fichiers d’une VM

15 Fév

Un petit article pour détailler la liste des fichiers créés sur un serveur VMWare ESX suite à la création d'une machine virtuelle.

A noter : cet article est écrit à partir d'une plate-forme VMWare ESXi 3.5.0 et les fichiers sont stockés sur des systèmes de fichiers VMFS.

Prenons l'exemple d'une machine virtuelle nommée myvm.

Dans un répertoire myvm du datastore accédé depuis un serveur ESX, nous pouvons donc trouver les fichiers suivants :

  • myvm.vmdk : fichier texte qui contient la description du disque dur virtuel
  • myvm-flat.vmdk : fichier qui contient le contenu du disque dur virtuel
  • myvm-Snapshot#.vmsn : fichier contenant l'état exact de la machine au moment de la prise du snapshot
  • myvm.vmsd : fichier texte contenant la description du snapshot
  • myvm.nvram : fichier contenant le bios de la machine
  • myvm.vmx : fichier de configuration de la machine virtuelle
  • myvm.vmxf : fichier de configuration supplémentaire
  • myvm.vswp : fichier contenant la mémoire principale de la machine virtuelle
  • myvm.hlog : fichier résultant d'une opération de vMotion
  • myvm-000001.vmdk : fichier texte qui contient la description du disque dur virtuel après snapshot
  • myvm-000001-delta.vmdk : fichier qui contient la différence de contenu entre le disque dur virtuel actuel et le snapshot
  • vmware.log : journal de la machine virtuelle
 
No Comments

Posted in VMWare

 

Ubuntu Server : installer un serveur LAMP (Linux Apache MySQL PHP)

15 Fév

Un serveur LAMP est un serveur utilisant 4 composants particuliers, destiné dans la plupart des cas à la publication de sites Web :

  • Linux : le système d'exploitation
  • Apache : le serveur Web
  • MySQL : le serveur de base de données
  • PHP : le langage de script

Le but ici est d'installer ces différents composants à partir des paquetages de la distribution Ubuntu Server 13.10 qui utilise actuellement les versions suivantes des composants :

  • Linux v3.10.23
  • Apache v2.4.6
  • MySQL v5.5.37
  • PHP v5.5.3

L'installation de l'ensemble est aisé grâce aux paquetages fournis par la distribution Ubuntu Server, le tout étant de les installer dans le bon ordre :)

Les étapes seront les suivantes :

  1. Installer le serveur Apache
  2. Installer le module PHP pour Apache
  3. Installer le serveur MySQL
  4. Installer le module MySQL pour PHP

Article mis à jour pour Ubuntu Server 13.10

Lire la suite … »

 

Ubuntu Server : nouveau serveur et consommation mémoire

19 Jan

Je viens de réinstaller un serveur dédié avec une distribution Ubuntu Server en version 11.04 et un noyau Linux 2.6.38.
Envie de voir comment se comporte la version Server d'Ubuntu par rapport à un serveur Debian :) (sachant que je suis plutôt allergique à la version Desktop d'Ubuntu …).

Première impression plutôt positive : je regarde la consommation mémoire de mon serveur fraichement installé : moins de 100 Mio (99 Mio pour être précis). Ce qui est plutôt de bonne augure pour la suite !

Autre résolution qui va de paire avec le choix de cette distribution qui offre des packages plus souvent mis à jour qu'une Debian : utiliser les packages fournis plutôt que de compiler les sources … à voir à l'usage si c'est plus avantageux …

 
No Comments

Posted in Linux

 

Dovecot : utilisation de SSL pour l’IMAP

21 Jan

Le but de cette note est de sécuriser une connexion IMAP à un serveur Dovecot via l'utilisation du protocole SSL/TLS.

Pour l'installation de Dovecot, on se reportera à cette note : http://blog.moncoindunet.fr/linux/installer-un-serveur-de-mail-sous-linux-23-dovecot/

Logiciels utilisés : Dovecot 2.0.8, OpenSSL 1.0.0

Lire la suite … »