lindev.fr

Aller au contenu | Aller au menu | Aller à la recherche

14 juil. 2015

Monter un Bucket S3 sur un serveur Débian

S3, espace de stockage illimité chez Amazon avec des tarifs défiant toute concurrence. Qui en plus de son prix, offre des options plus qu’intéressantes...

  • chiffrement des données
  • versioning automatique
  • rotation ou mise en glacier des vielles versions ..


Etc ...
Je ne vais pas détailler ces options dans ce billet, mais juste expliquer comment monter un Bucket S3 ( répertoire S3 ) sur une machine / serveur linux afin d'y accéder comme un simple montage réseau . Nous verrons également comment le monter automatiquement via une simple ligne dans le fstab.

Prérequis

Nous allons utiliser fuse pour monter ce bucket, et l'authentification peut être chiffrée selon vos options, nous allons installer tout ce qu'il nous faut...

sudo apt-get install build-essential git libfuse-dev libcurl4-openssl-dev libxml2-dev mime-support automake libtool fuse-utils pkg-config libssl-dev

S3fs-fuse

Maintenant, S3 + fuse n'étant pas un "système de fichiers" conventionnel, nous allons utiliser l'outil s3fs-fuse disponible sur un dépôt Gît

cd /usr/local/src/
git clone https://github.com/s3fs-fuse/s3fs-fuse
cd s3fs-fuse/
./autogen.sh
./configure --prefix=/usr --with-openssl 
make
sudo make install

Authentification S3

Sauf si votre serveur se trouve sur la plateforme Amazon et que vous lui avez donné des droits spécifiques (S3) à sa création, il vous faudra obligatoirement préciser le couple "Access Key / Secret Key" récupéré sur la plateforme Amazon.
Personnellement, je donne à mes utilisateurs un minimum de droits. Dans mon exemple donc, mon utilisateur fictif "John Doe" aura uniquement accès à son bucket, qui sera appelé "jdbucket".
Nous allons donc éditer le fichier qui va lister les authentifications passwd-s3fs.

sudo vim /etc/passwd-s3fs

Le contenu devra respecter la forme suivante bucketName:accessKeyId:secretAccessKey :

jdbucket:AKIAIOSFODNN7EXAMPLE:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

Nous allons maintenant retirer un maximum de droits au fichier passwd-s3fs

sudo chmod 600 /etc/passwd-s3fs

Montage

Ne nous reste plus qu'à monter notre bucket jdbucket . Disons sur le répertoire /var/mntJdBucket

Commençons par créer le répertoire de montage.

sudo mkdir /var/mntJdBucket; sudo chmod 777 /var/mntJdBucket

Testons le montage avant de la mettre dans le fstab

/usr/bin/s3fs jdbucket /var/mntJdBucket -ouse_cache=/tmp,passwd_file=/etc/passwd-s3fs

Note: Spécifier le fichier de mot de passe S3 n'est pas obligatoire.
Si tout va bien .. vous voilà connecté à votre S3 !
Ne vous faite pas berner par le débit ( important ), ici le débit apparent sera celui de votre disque dur, car l'option use_cache=/tmp utilise un répertoire local comme cache entre votre système et le S3.

Fstab

Ne nous reste plus qu'à configurer notre montage dans le fstab, afin que le montage se fasse à chaque démarrage.

sudo vim /etc/fstab


Voici la ligne qu'il faut ajouter

#Fuse
s3fs#jdbucket	/var/mntJdBucket	fuse	rw,_netdev,use_cache=/tmp,allow_other,passwd_file=/etc/passwd-s3fs	0	0

Au niveau des options, du classique, droits en lecture et écriture pour les utilisateurs, attente de la connexion réseau pour tenter de monter le bucket, configuration du répertoire de cache et du fichier de mot de passe ( toujours facultatif )

Conclusion

Nous avons maintenant fait le tour du montage S3 sur une machine debian, rien de bien méchant. Cependant, suite à mes tests, je conseille d'utiliser les commandes s3cmd pour envoyer de gros fichiers ( plusieurs Gb ) celle-ci étant plus adaptée.

N'hésitez pas si vous avez des questions.

Ch.

20 juil. 2012

LTSP V5 lts.conf

Configurer les clients PXE

Dans le précédent billet nous avons installé notre serveur, avec tout ce qu'il faut pour un fonctionnement standard ..

Maintenant regardons de plus prés ce que nous pouvons faire au niveau des clients .. ( login automatique, activer le son, permettre le montage de clef usb/cdrom .., etc ... )

Pour gérer la configuration globale pour pour un poste précisément, tout se passe dans le fichier lts.conf que vous devrez créer à l'emplacement suivant

vim /srv/tftp/ltsp/classique/lts.conf

1342786540_alert-square-red.png il faut savoir que les modifications de ce fichier, ne seront validés qu’après une mise à jour de l'image, via la commande

//ltsp-update-image -a <nom de votre espace chroot> dans notre cas:
ltsp-update-image -a classique

Lts.conf

Je ne vais pas détailler toutes les options de ce fichier, si vous le souhaitez, regardez le man ( après avoir installé le paquet ltsp-docs )

apt-get install ltsp-docs
man lts.conf

Configuration générale

Nous allons commencer par entrer la configuration qui sera partagée / par défaut à tout les clients PXE, on va donc créer dans le fichier lts.conf la section default

[default]
    LOCALDEV=True
    SOUND=True
    NBD_SWAP=True
    SYSLOG_HOST=10.0.0.136
    XKBLAYOUT=fr
    SCREEN_02=shell
    SCREEN_03=shell
    SCREEN_04=shell
    SCREEN_05=shell
    SCREEN_06=shell
    SCREEN_07=ldm
    LDM_DIRECTX=True
    LDM_SYSLOG=True
    LDM_AUTOLOGIN=False
    #LDM_USERNAME=
    #LDM_PASSWORD=

Bon faisons un point

  • LOCALDEV active la gestion des supports de la station PXE , comme les lecteurs CD , clefs USB etc ...
  • SOUND active le son coté client PXE
  • NBD_SWAP active le swap par le réseau , sur le serveur LTSP , si vous l'activez , il ne faut pas oublier d'ajouter dans le fichier /etc/hosts.allow la ligne nbdswapd: ALL: keepalive
  • SYSLOG_HOST Permet de spécifier un serveur SYSLOG autre que le serveur hôte. par défaut, c'est le serveur Hôte
  • XKBLAYOUT Spécifie la disposition du clavier
  • SCREEN_0x Permet de définir le type de session par tty
  • LDM_DIRECTX Permet de limiter le chiffrement qu'au moment de l’authentification de la session ( permet de meilleurs perfs et stabilité )
  • LDM_SYSLOG Log les ouvertures de sessions dans le fichier SYSLOG à la place du fichier ldm.log
  • LDM_AUTOLOGIN Active ou non l'authentification automatique
  • LDM_USERNAME login utilisé pour l'authentification automatique
  • LDM_PASSWORD mot de passe utilisé pour l'authentification automatique

Voilà ... pas forcément besoin de plus d'infos ... la page de man est clair .

Configuration vip

Il est possible d'appliquer différents paramètres en fonction des clients PXE.

Pour les identifier, il faut spécifier une nouvelle section avec l'adresse MAC ( matériel ) du client concerné .

Par exemple, pour ma station Linutop ayant pour adresse mac 00:14:0b:80:33:68, nous allons créer une section comme ceci ( toujours dans le fichier lts.conf )

[00:14:0b:80:33:68]
        LDM_AUTOLOGIN=True
        LDM_USERNAME=login
        LDM_PASSWORD=mdp

Voilà l'authentification automatique sera effective sur cette station uniquement , les autres paramètres de la section default sont évidemment repris pour cette station.

1342786540_alert-square-red.png L'adresse mac de l'exemple peut normalement aussi s'écrire :14b:b80:33:68 mais ne sera pas valide pour ltsp, il faut absolument indiquer les 0

Bien après avoir modifier notre fichier lts.conf i lne nous reste plus qu'à mettre à jour l'image

ltsp-update-image -a classique

Mets du son!!

Bien que ce ne soit pas toujours nécessaire, il peut-être intéressant de pouvoir utiliser la sortie son de son client PXE.

Comme nous l'avons activé, dans le fichier lts.conf, autant en profiter.

Commençons par vérifier que le paquet pulseaudio est bien installé sur le serveur LTSP ( normalement oui si vous avez suivi le précédent tutoriel )

apt-get install pulseaudio

Enfin, nous allons nous chrooter dans la distrib minimaliste ( chargé sur le client PXE ) afin d'y installer quelques paquets .

chroot /opt/ltsp/classique
apt-get install libasound2 libesd-alsa0 alsa-oss alsa-base linux-sound-base aumix alsa-utils esound-clients libasound2-plugins

Un peu de configuration

cd /etc
touch aumixrc
echo "vol:84:84:P pcm:85:85:P line:0:0:P mic:0:0:P cd:0:0:P pcm2:85:85:P igain:0:0:P line1:0:0:P dig1:0:0:P" > aumixrc

Et on quitte le chroot

exit

Et voilà .. à vous la dernière PL de "David Guetta" ... ou pas ;)

Monte ta clef

Très pratique les clef USB, nous allons pas nous en priver ... Pour cela, comme le précise la doc, il nous faut utiliser fuse, installons le !

Toujours sur le serveur LTSP

 
apt-get install fuse-utils libfuse2 libx11-protocol-perl

On active le module

modprobe fuse

On peut vérifier la présence du module comme ceci :

lsmod fuse

Bien maintenant, il faut autoriser un ou plusieurs utilisateurs à utiliser fuse ( à monter des clef usb ou cd ) .

Imaginons, notre utilisateur toto, doit pouvoir monter sa clef ... il suffit juste de l'ajouter au groupe fuse comme ceci :

adduser toto fuse

Et voilà toto peut monter sa clef sur sa session de n'importe ou .

Conclusion

Bien, je vais en rester là pour cet article, j’espère qu'il servira plus d'un, n'hésitez pas à laisser un commentaire sur le sujet,

A bientôt ,

Ch.