Monthly Archives janvier 2013

Proxmox, la virtualisation facile

Proxmox est une distribution Linux qui gagne à être reconnue. Créée en 2008 par la société Proxmox Server Solutions GmbH, la dernière version 2.2 est sortie le 24 octobre 2012. Cette distribution orientée serveur est basée sur Debian Squeeze avec un noyau personnalisé pour inclure le support OpenVZ (noyau repris de RedHat).

Elle peut être installée en mode « standalone » sur un serveur unique ou en mode cluster sur plusieurs nœuds. Cette dernière solution offrant des possibilités intéressantes telle que la migration de machines virtuelles à froid ou à chaud (!). La distribution Proxmox intègre deux technologies de virtualisation que sont KVM et OpenVz, les deux solutions sont parfaitement intégrées aux interfaces web et ligne de commande.

Pour rappel, la solution KVM est une solution de virtualisation complète, (hardware compris), permettant de virtualiser d’autres OS, tels que Solaris, ou Windows par exemple. Tandis qu’OpenVZ ne permet de virtualiser que des systèmes Linux, c’est une solution de gestion de conteneurs (comme les jails de BSD, zones de Solaris, et LXC de Linux). Cette technologie souvent utilisée lorsque l’on parle de Serveur Privé Virtuel (VPS), a l’avantage d’être plus rapide et moins gourmande en ressources systèmes.

Il n’y a qu’une seule version libre et gratuite de la distribution, la société Proxmox Server Solutions proposant du support payant à ceux qui en auraient besoin.

Les fonctionnalités sont impressionnantes :

  • une interface en ligne de commande et web (disponible en francais) permettant de gérer les machines virtuelles tant au format kvm que des conteneurs openvz
  • une belle intégration de la couche cluster de linux, permettant de reproduire les fonctionnalités comme HA (High Availability à la vmware), et la migration à chaud
  • la prise en charge simplifiée des sauvegardes et des restaurations
  • les snapshots de machine virtuelle (disque & ram)
  • l’intégration de l’authentification avec un annuaire ldap
  • le support de stockages partagés (nfs, iscsi, SAN, drbd)
  • le support du bonding en natif
  • la gestion de l’ordre de démarrage des VM
  • activation de KSM, (déduplication des pages mémoires KVM, démon ksmd)
  • Gestion du déport de console graphique en vnc/applet java sur https intégré de base dans l’interface web

Ce qui m’a plu

On peut passer aisément de l’interface web aux commandes cli spécifiques proxmox (pve*), tout en modifiant les fichiers de configuration standards (/etc/network/interface, cluster.conf, …) qui sont rechargés et réanalysés automatiquement. (ce qui est assez rare pour être signalé !)

Il est clair que Proxmox s’est fortement inspiré de l’interface web de l’acteur principal du marché, pour les néophytes l’adaptation est rapide.

La possibilité d’installer Proxmox depuis un iso amorçable ou de migrer depuis une Debian déjà installée (procédure).

Les risques à terme

La virtualisation par conteneur openvz, est-elle pérenne ?

  • Proxmox évoluera-t-elle vers LXC ? Sous quelle forme se passera la migration ?
  • OpenVz fonctionne bien sur ext3 et ext4, les autres systèmes de fichiers ne sont pas conseillés pour l’instant.
  • Il n’y a pas de noyau ultérieur au 2.6.32 supportant openvz.
  • Le mélange de la distribution Debian et d’un noyau RedHat peut sembler « original ».

Merci aux contributeurs et relecteurs de la dépêche : Sébastien Stoetzer, Marc Quinton, NeoX

mount -o loop d’un iso sous windows

Pour les habitués du montage d’un iso sous linux avec mount -o loop, effectué la même manipulation sous windows est souvent synonyme de : « Mais quel outil simple et minimaliste peux me permettre d’effectuer le montage d’un iso » :

 

Et bien la réponse est un gratuiciel et sans spyware intégré (daemon tools) :http://wincdemu.sysprogs.org/

rsync sous windows

La commande « équivalente à rsync » sous windows est robocopy, exemple

robocopy \\sbs2003\g$ . /mir

htaccess et ldap

Pour sécuriser un répertoire web par un login et mot de passe, la solution très connue d’authentification apache est d’utiliser avec un .htpasswd. C’est simple et efficace.

Mais quand il y a,comme chez certain de nos clients, plusieurs dizaines de serveur et que ldap est déjà en place au niveau de ssh, il est bien plus pratique de connecter l’authentification apache au ldap.

Il suffit pour cela de modifier la configuration de la manière suivante :

AuthBasicProvider ldap
 AuthType               basic
 AuthName               "Authentification Apache"
 AuthLDAPURL            ldaps://ldap.domaine.fr/dc=1g6,dc=fr?uid?sub?(ObjectClass=posixAccount)
 AuthLDAPGroupAttribute member memberUid
 AuthUserFile /dev/null
 AuthLDAPRemoteUserIsDN off
 AuthLDAPGroupAttributeIsDN off
 require   ldap-group cn=phpmyadmin,dc=1g6,dc=fr

Il est possible également d’indiquer un second serveur :

AuthLDAPURL "ldaps://ldap.domaine.fr ldap2.domaine.fr/dc=1g6,dc=fr?uid?sub?(ObjectClass=posixAccount)"

Switch infiniband

Toujours en quête d’apprentissage de nouvelle technologie nous venons d’acquérir un switch infiniband. Cela va nous permettre de relier certain de nos serveur en 10 Gbits.

switch

PHP – Concaténation de include_path dans php.ini

Comment concaténer des include_path dans un ou plusieurs php.ini.

Tout d’abord le contexte :

Debian 5, installation standard,  et j’utilise 3 php.ini dont les 2 premiers sont inchangés :

  • /etc/php5/apache2/php.ini  –>  qui est le php.ini pour les pages web
  • /etc/php5/cli/php.ini  –>  qui est le php.ini pour les scripts php en ligne de commande
  • /etc/php5/conf.d/fichier.ini  –>  Par défaut tout ce qui est dans conf.d/ est ajouté au php.ini des pages web et de la ligne de commandes. C’est ce fichier commun aux deux autre que je modifie.

D’après la doc php, pour concaténer des include_path il faut faire :

include_path = ${include_path}:/nouv/path


Mais ceci n’est pas suffisant :

Si on regarde le path en ligne de commande avec la commande php -i | grep include_path , on obtient :

include_path => .:/usr/share/php:/usr/share/pear


On pense à un path par défaut (ce qui est vrai car include_path est commenté dans le php.ini)

Mais quand on ajoute à « /etc/php5/conf.d/fichier.ini »  la ligne include_path = ${include_path} :/nouv/path on obtient comme nouveau path :

include_path => :/nouv/path


On peut donc penser que l’ajout du path n’a pas fonctionné.

Oui mais à présent décomentons dans le fichier « /etc/php5/cli/php.ini » la ligne include_path = ".:/usr/share/php

la path devient à présent :

include_path => .:/usr/share/php:/nouv/path


La concaténation a fonctionné !

En conclusion il faut comprendre qu’on ne peut pas concaténer de path au path par défaut, mais seulement à un path déjà définit.

Nouveau contrat : Application de gestion en WEB pour cabinet comptable

Nous sommes sur le point de livrer le développement d’une application de gestion en WEB pour cabinet comptable.
Le projet gérera l’activité commerciale d’un cabinet comptable ou bien l’activité de plusieurs cabinets regroupés sur une région.

Plusieurs niveau d’accès sont prévu, Directeur d’agence, Manageur, Collaborateur.

Des tableaux de bord sont disponible avec leur équivalent en export excel.

L’application est prévue pour être hébergé sur internet (SAAS) , mais peut également être installée en Intranet.

Technique :

  • Utilisation de PHP / mysql avec le framework ZEND.
  • Utilisation de Jquery pour améliorer l’utilisation de l’application (Drag and Drop, Double click, …)
  • Utilisation importante d’Ajax pour rendre l’application très fluide.

IPv4 est mort, vive IPv6 !

Article publié le 30 octobre 2010 sur linuxfr par Nicolas Parpandet (gérant et ingénieur informatique chez 1G6) : Lien vers l’article.

Nous venons de passer en dessous du seuil de 5% d’adresses IPv4 publique libres, et il ne reste plus que 223 jours avant d’épuiser le stock d’IPv4, oui moins d’un an ! Oui, on vous l’a déjà fait plein de fois celle-là, mais il semblerait que ce soit la bonne !

  • Les services comme Google (depuis 2008), Facebook, ou Youtube sont déjà accessibles en IPv6
  • Les hébergeurs OVH & Dedibox (pas encore toutes les box) le proposent également ainsi que l’hébergeur IELO
  • Côté fournisseur d’accès, il y a Free, Nerim ou FDN
  • 9 des 13 serveurs racine DNS sont accessibles en IPv6

À quand notre LinuxFr préféré ? Ou votre site ?

Petit rappel

IPv6 est composé de 128 bits, qui s’écrivent en hexadécimal, les 64 premiers bits servent au routage et au FAI, petit gâchis me semble-t-il : les 64 derniers bits sont pour la partie hôte (oui, plus pour vous que pour la planète entière en IPv4).

Cela ne va pas sans poser de problème de confidentialité, car par défaut l’adresse IPv6 est composée dans la partie hôte par l’adresse MAC de l’équipement connecté. Ce comportement par défaut peut bien sûr être modifié.

Il n’y a plus besoin de serveur DHCP (bien que DHCPv6 existe), IPv6 intégrant nativement la distribution des paramètres réseau depuis les routeurs, les postes obtiennent ainsi automatiquement leur réseau et leur partie hôte de l’IP (calculée automatiquement par la MAC). Une RFC ajoute également la distribution du serveur DNS par ce moyen (merci aux commentaires experts de retrouver son numéro !)

Point négatifs

IPv6 devait apporter de nombreuses fonctionnalités natives qui n’ont – me semble-t-il – pas été implémentées sur les routeurs « d’Internet », telle qu’IPv6 mobile ou le multicast.

Rappel de commandes utiles

  • ifconfig -a
    • Si je n’ai qu’une adresse de type « fe80::2 », non ce n’est pas bon, il s’agit d’une adresse de lien local, et non d’une IPv6 publique
    • Si j’ai une seconde IPv6 => ok , type 2a01:e35… pour les freenautes (case à cocher dans votre console de gestion pour activation), c’est parfait !
  • ping6 ipv6.google.com
  • traceroute6 ipv6.google.com
  • ip -6 neigh

En conclusion

Nous revenons au début d’Internet, et oui beaucoup d’entre vous l’ont oublié, mais chaque poste était relié au net par une IP publique !
Attention donc aux réglages des paramètres de sécurité (pare-feux…). Pour cette raison en entreprise l’adoption de l’IPv6 ne sera sans doute pas activée avant très longtemps, une IPv6 publique fera sans doute du NAT pour aller vers internet, et/ou un proxy se chargeant de relayer les requêtes IPv4 vers IPv6 (merci à la dernière version squid). Il n’en est rien cependant pour les particuliers où la demande d’adresse est la plus importante !

Envoyer un email en vba sans popup de sécurité

La question qui nous intéresse aujourd’hui est comment envoyer un email en vba sans popup de sécurité ?

L’astuce est simple : Ne pas utiliser outlook pour envoyer l’email mais passer directement par un serveur smtp.

Dans la fonction suivante vous verrez également comment rendre le mail au format html et ajouter une pièce jointe.

Public Sub envoie_mail(depuis, destinataire, sujet, Body, fichier)

Dim Objemail
Dim iconf

    Set Objemail = CreateObject("CDO.Message")
    Set iconf = Objemail.Configuration

    With iconf.Fields
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "adresse.du.serveur.smtp"
        .Update
    End With
    
    Objemail.From = depuis
    Objemail.To = destinataire
    Objemail.Subject = sujet
    If Body  "" Then
        Objemail.HTMLBody = Body
    End If
    
    If fichier  "" Then
        Objemail.AddAttachment fichier
    End If
    
    Objemail.Send
    
End Sub


Nombre de table limité à 249 dans le concepteur de phpmyadmin (designer)

Certaines de mes bases étant particulièrement bien remplies (910 tables), je suis arrivé à une limitation de 249 tables enregistrées dans le concepteur de bases de données intégrées à phpMyAdmin.

Après quelques recherches non concluantes, j’ai fini par me rendre compte que cette limitation provenait de l’extension Suhosin.

Pour repousser la limite à 1000 tables il faut changer les valeurs suivantes dans votre php.ini :

suhosin.post.max_totalname_length=1024
suhosin.request.max_totalname_length=1024
suhosin.post.max_vars=4000
suhosin.request.max_vars=4000


12