jeudi 4 octobre 2018

Lettres de Nouvelle Aquitaine (3/5)

Bien, au terme de cette troisième journée, nous avons dépassé la moitié de notre randonnée ! Et c'est tant mieux, car la fatigue commence à se sentir un peu...

Il faut dire aussi que la journée a été assez intense. Départ de Parentis-en-Bros vers 10h30 pour nous diriger vers Mimizan, puis Contis-Plage. Enfin... plus précisément Saint-Julien-en-Born, sur les hauteurs de Contis-Plage (plus d'infos à ce sujet plus tard).

Au réveil le temps est un peu maussade et surtout brumeux, mais le temps de prendre le petit déjeuner préparé par notre hôte Alexia (et son fils Joshua), la brume s'est levée laissant place à un beau soleil (hé oui, encore ! 😁)

Nous prenons donc la route en suivant pour la première fois la vélodyssée depuis le début. La piste cyclable est en parfait état, le plus souvent en sous-bois et très légèrement vallonnée. Bref, un regal !

La route nous mène rapidement à Gastes, sur les rives du lac sud de Biscarrosse qui héberge une des rares hydrobase française. L'occasion pour nous de voir, de loin, quelques amerrissages et décollages d'hydravions.

L'occasion également de logguer une petite cache de plus ;)

Le chemin reprend sans encombres vers Mimizan, et après avoir acheté nos sandwich à la boulangerie de Sainte-Eulalie-en-Born, nous nous arrêtons sur les bords du lac de Aureilhan pour une pause déjeuner.


Ayant repris quelques forces, nous repartons en direction de Mimizan, mais tombons rapidement sur les premières difficultés : Mimizan est en bord de plage, mais entre la route et la plage, se trouve une belle "dune" de forêt de pins. Nous avons donc affaire à nos premières montées/descentes, qui permettent d'alterner difficultés et ivresse de la vitesse :)

L'occasion également de voir une "culture" de sève de pin.


 
Passée cette petite difficulté, l'arrivée a Mimizan se fait sans encombres et nous goûtons pour la première fois du séjour a une belle vue sur l'océan Atlantique et sa brise marine rafraîchissante.




La visite du village est assez courte, mais nous apprécions néanmoins sa belle chapelle en bois et la vue depuis le pont qui enjambe l'estuaire du Courant.




Le jeu de montagnes russes va continuer lorsque nous repartons de Mimizan pour rejoindre Contis-Plage. La quasi totalité du chemin est située entre deux bandes de pins, sur une piste qui n'arrête pas de monter de quelques mètres pour mieux redescendre. Une route idéale pour s'entraîner à passer les vitesses du vélo !

Arrivés à Contis-Plage, nous apercevons son phare mais perché au cœur de la forêt, nous manquons de courage pour monter le voir.

Nous profitons par contre une seconde fois de la vue sur l'océan.





Bon... jusqu'ici tout allait presque parfaitement. 

Problème : Le gite que nous avons loué n'est pas à Contis-Plage, mais dans la commune à laquelle la plage est rattachée, Saint-Julien-en-Born, à 10km de là.

Vous me direz, on n'est plus vraiment à 10km près... sauf que ces kilomètres sont majoritairement en montée. Et quelle montée ! Alors qu'un tracé de la Vélodyssée va de la plage à Saint-Julien-en-Born, mon GPS nous fait passer par un ancien chemin quasiment désaffecté, qui n'est pas goudronné, mais pavé de grandes dalles de jardin. Nous passons donc d'une piste cyclable de 2m de large, à une fine allée d'à peine 50cm, partiellement recouverte de sable... Pour corser le tout, de chaque côté des dalles se trouvent à intervalles réguliers des arbustes piquant ! On se prendrait presque pour Mario Bros. essayant de sauver la princesse.




Au final, la montée vers le gite nous aura pris 1h au lieu de 30mn, mais malgré la fatigue, se sera montrée assez amusante 😁

Pour conclure nous allons demain tenter de rouler un peu moins, car depuis le début de la semaine, chaque jour nous roulons moins longtemps, mais faisons davantage de kilomètres et affrontons de plus fortes montées :( Pas sûr qu'on aille au bout dans ces conditions !

mercredi 3 octobre 2018

Lettres de Nouvelle Aquitaine (2/5)

Bien... après une bonne nuit de sommeil dans cet éco-gîte, on prends un sympathique petit déjeuner bio en discutant avec d'autres clients venant de Savoie, puis l'on visite le jardin potager avec notre hôte.

Bref, super accueil... mais il est déjà 11h, et il faudrait peut-être que l'on songe à partir si l'on veut rejoindre Parentis-en-Born.

Notre logement pour le soir n'est toujours pas réservé et nous tentons donc de faire du couchsurfing en nous inscrivant sur le site correspondant. Une première demande est lancée et nous nous mettons donc en marche.

Aujourd'hui au programme : Le Teich / Biscarrosse / Parentis-en-Born, soit une cinquantaine de kilomètres.

La nouvelle chambre à air fonctionne à merveille et je ne suis désormais plus embêté par mon vélo.

Après un départ un peu frais, nous avons la chance de faire la route sous un beau soleil, et ce soir, j'ai donc comme à l'accoutumée, mon chauffage personnel sur les joues (comprendre que j'ai légèrement cramé).

Pas de mauvaise surprise non plus sur les routes, qui sont bien goudronnées (même si certaines sont en meilleur état que d'autres...) et une grande partie du trajet se fait sur piste cyclable dédiée, ou sur des routes quasi désertes.

Nous avons tout de même droit a un micro-passage dans le sable.



Au cours de la traversée d'une des innombrables pinèdes, nous apercevons un petit chevreuil au loin. Malgré cela, ces forêts d'exploitation semblent peu peuplée d'animaux...

Même si le trajet est bien meilleur, nous devons, avant d'arriver à Sanguinet, affronter un vent de face sur près de 4km, sur une départementale assez empruntée... c'était heureusement le seul moment un peu pénible de la journée.

Déjeuner sur la mignonne place de la mairie a Sanguinet


Après cette "épreuve" nous arrivons aux abords de l'immense Lac Nord, aménagé pour la voile et ceint de campings et de pistes cyclables. Au passage, nous logguons une petite cache.



Mauvaise nouvelle de la journée, notre possible hôte pour le couchsurfing décline notre demande et nous devons a 16h trouver une alternative pour notre couchage du soir. Heureusement, AirBnb est là et nous trouvons rapidement une famille d'accueil pour la soirée à Parentis-en-Born. Seul (petit) hic, la chambre ne sera disponible qu'à 19h.


Après quelques kilomètres supplémentaires en sous-bois et sur pistes cyclables, nous faisons donc une petite halte à Biscarrosse pour patienter en attendant que la chambre soit prête. Finale... c'est pas mal aussi de faire des petites pauses ;)

Passé 18h nous entamons nos 10 derniers kilomètres de la journée pour rejoindre Parentis.

Nous aurons bien mérité notre repas quasi gastronomique et trop copieux, mais terriblement bon :)
Nous profiterons de ce repas pour admirer l'église toute proche.





lundi 1 octobre 2018

Lettres de Nouvelle-Aquitaine (1/5)

Bon... ce site est un peu en friche depuis de longues années... mais puisque Lydie et moi faisons une belle et originale randonnée en cyclotourisme entre Bordeaux et Bayonne, je me suis dit que c'était la bonne occasion pour reprendre cette série de publications.

Sans plus attendre, nous allons donc commencer ce recit.


Première étape donc, de Saint-Médard-en-Jalles, à proximité de Bordeaux, où nous avons été hébergés pour le weekend par nos amis Hervé et Maryline, jusqu'à Le Teiche, aux portes du bassin d'Arcachon, où nous avons loué une chambre dans un éco-gîte.

Google nous indique un trajet de 41.6km et une durée de parcours de 2h06, mais par expérience, et vu qu'on n'est pas particulièrement pressés (on est en vacances après tout !) nous savons que nous mettrons davantage de temps.


Et davantage de temps nous avons mis, pour sûr !! Cette première étape fût un peu plus compliquée que prévu, mais on est bien arrivé dans notre éco-gite au Teich.

Pour commencer, sur cette première étape qui, contrairement aux suivantes, ne fait pas partie de la vélodyssée, le GPS nous fait passer par quelques chemins sablonneux ou caillouteux... ce qui n'est bon ni pour la vitesse moyenne, ni pour les pneus...

D'ailleurs, les pneus sont le deuxième élément négatif de cette première étape, puisque peu de temps après le départ, je me rends compte que ma chambre à air arrière semble vouloir se dégonfler lentement mais sûrement... Qu'importe, j'ai une chambre de rechange et on profite donc de la pause déjeuner pour changer la roue. Las... après la pause, je m'aperçois que cette seconde chambre à air se dégonfle encore plus vite que la première :(
Je tente d'avancer autant que possible, mais impossible, regonfler le pneu tous les 2km est vraiment trop pénible... Nous nous arrêtons donc une nouvelle fois pour remettre la roue originale et chercher le chemin d'un supermarché ou marchand de sport. Petite étape à Marcheprime donc pour aller à l'Intermarché... mais ils n'ont pas d'accessoires pour vélo. Je devrais donc tenir avec cette maudite chambre à air jusqu'à l'Intersport de Biganos :(


Heureusement, il n'y a pas que des points négatifs : Pour commencer, nous avons trouvé une cache multi au niveau de l'ancienne gare de Saint-Médard-en-Jalles et de sa belle locomotive d'antan.




Ensuite, même si les chemins sablonneux sont très pénibles à suivre à vélo, que ce soit ceux de sable blanc ou de sable noir, ils sont magnifiques, déserts et pittoresques.



Enfin, quel plaisir de voir autant de pistes cyclables sur les abords des routes !
Il y a même sur Bordeaux un Réseau Express Vélo, dont nous empruntons la piste nº1 au départ de Saint-Médard.
Quel plaisir ce serait si on en avait autant en île de France !!

Pour terminer, un mot sur l'éco-gîte qui nous accueille pour la soirée. Il est l'œuvre d'un passionné de construction écologique qui construit ses maisons en paille. Isolation paille extérieure ou maille porteuse. Tout est possible.
Le sympathique jardin héberge un potager en permaculture.
Le petit déjeuner demain matin sera bio...
Bref, on est dans notre élément !! 😁

Bon et maintenant, au dodo, car mine de rien, ces petites balades, ça fatigue !!

PS: J'allais oublier le plus important pour le geek que je suis... le tracé de notre parcours sur Strava :


mardi 11 décembre 2012

Dans les alentours de Bellêmes

Petite balade autour de l'Etang de la Herse durant un week-end prolongé en famille dans le Perche Ornais.

Malgré le froid, on peut se délecter des magnifiques reflets et couleurs dans l'eau inerte de cette charmante petite pièce d'eau.

vendredi 2 novembre 2012

Installation d'un micro-serveur, part 3: SPACE (the final frontier...)

Bon... un micro-server avec seulement 250Go de stockage, c'est assez peu...
Du coup, un petit passage chez Amazon, et deux jours plus tard, me voilà avec 2 beaux disque durs Seagate Barracuda de 3To chacun !
De quoi voir venir question stockage, même si j'arrive à trouver le temps de numériser mes Laserdiscs !

Bon, mais les disques, il faut aussi les installer !

Comme j'aime bien que les choses soient bien rangées, on va créer une partition par type de fichier, c'est-à-dire :
- musiques
- vidéos
- photos
- documents (ceux de la famille !)
- doc_lydie et doc_tigrosaure (les documents un peu plus "perso")
- web (pour le stockage des pages du site qui sera hébergé sur le serveur)

J'ai beau avoir une petite idée de l'espace de stockage nécessaire à chacune de partitions... rien de mieux qu'un peu de souplesse ! On va donc créer une partition LVM (Logical Volume Manager).
Pour le moment, pas de RAID... je me contenterais d'un petit script qui effectuera une synchronisation automatique (Faut que je confirme cela... mais je n'aime pas trop l'idée du RAID, car, si le serveur tombe en panne... on a beau avoir deux disques redondés... on ne sait plus trop comment les exploiter !)

Aller, c'est parti !



Installation et partitionnement des disque


Installation physique

L'installation physique des disques est on ne peut plus simple :

  • Extraction du rack amovible du micro-serveur
  • Fixation du disque avec les disques fournies, insérées, avec la clé qui va bien, dans la porte du micro-serveur
  • Ré-insertion des racks disques.
Attention : Le micro-serveur ne gère pas le "hot-plug"... alors, penser à l'éteindre avant cette opération !

Une fois le serveur re-démarré, vérification que les disques sont bien détectés avec fdisk -l

Après la liste des partitions déjà configurées/formatées/utilisées précédemment, on doit voir les lignes suivantes pour chacun des nouveaux disques (avec des nom de "device" et des tailles différentes si les disques sont différents, bien sûr) :

Disk /dev/sdc: 3000.6 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

Disk /dev/sdc doesn't contain a valid partition table


Partitionnement des disques
(Merci au site TCPdump pour son excellent tutoriel sur LVM)

On va donc créer une partition de type 8E (Linux LVM) sur chacun de ces disques (/dev/sdb et /dev/sdc dans mon cas) .

Problème: fdisk ou cfdisk ne gère pas les partitions d'une taille supérieure à 2To :(
On va donc installer GPT fdisk: aptitude intall gdisk

On peut alors créer les partitions voulue en lançant gdisk /dev/sdb puis gdisk /dev/sdc.
Les commandes principales de gdisk:

  • p: print, liste les partitions disponbiles
  • n: new, créé une partition (par défaut qui prend l'ensemble du disque. Dans notre cas, pour le type de partition, il faudra choisir 8e00 (GTP / Linux LVM)
  • o: reset the GPT partition table. Ceci reset également le sector alignement à la valeur par défaut de 2048.
  • w: write, permet d'enregistrer les modification effectuée
  • q: quit, quitte gdisk.

Donc, une seule partition, de type Linux LVM, non bootable, est créé sur l'ensemble du disque.
Nous avons maintenant une partition sur chaque disque, comme nous l'indique fdisk :


WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.

Disk /dev/sdb: 3000.6 GB, 3000592982016 bytes
256 heads, 63 sectors/track, 363376 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1      266306  2147483647+  ee  GPT
Partition 1 does not start on physical sector boundary.

Fdisk nous averti qu'il n'est pas en mesure de gérer les disques utilisant GPT, mais on peut malgré tout constater que la partition est bien créée :)



Création du LVM


Installation et configuration de lvm2

On installe le package LVM : aptitude install lvm2
On vérifie que le type des métadonnées est format = "lvm2" dans /etc/lvm/lvm.conf et on redémarre le démon /etc/init.d/lvm2 restart


Création des Physical Volume

On va créer un seul Physical Volume par disque (et donc par partition, puisqu'on n'a qu'une seule partition sur chaque disque).

pvcreate /dev/sdb1
puis
pvcreate /dev/sdc1

On vérifie que les PV sont bien créés avec pvdisplay

Pour chaque disque on obtient ceci :

  "/dev/sdb1" is a new physical volume of "2.73 TiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               2.73 TiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               2u0EeQ-Ps3d-nTSh-moOC-3Yat-SOlW-mXmCh1


Création des Volume Group

On va créer un seul Volume Group sur chaque Physical Volume. Le premier aura comme nom "vgDataMain", le second "vgDataMirror".
Comme on utilise le noyau Linux 2.6 sur une machine 64bits, on garde la taille par défaut des Physical Extent de 4Mo.

vgcreate vgDataMain /dev/sdb1
puis
vgcreate vgDataMirror /dev/sdc1

On vérifie que les VG sont bien créés avec vgdisplay

Pour chaque disque on obtient ceci:


 --- Volume group ---
  VG Name               vgDataMain
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               2.73 TiB
  PE Size               4.00 MiB
  Total PE              715396
  Alloc PE / Size       0 / 0   
  Free  PE / Size       715396 / 2.73 TiB
  VG UUID               oa288G-788k-dQvX-njPy-IMa1-RoVA-mI5fLZ

On vérifie que les Physical Extent font 4Mo (PE Size) que le Volume Group fait bien (approximativement...) 3To (VG Size) et l'on voit le nombre total de PE (Total PE) et le nombre libres (Free PE / Size) et alloués (Alloc PE / Size).


Création des Logical Volume

Maintenant que le Volume Group est créé, on peut créé les Logical Volume, sur lesquels nous créerons les partitions "standard" à formater pour pouvoir enfin y stocker des données :)

 On va créer 4 Logical Volume pour stocker les 4 types de données du serveur :

  • lvMusique, pour la musique, taille 750Go
  • lvPhotos, pour les photos, taille 750Go
  • lvVideos, pour les vidéos, taille 1To
  • lvDocuments, pour les documents, taille 500Go (un peu moins en fait... ce sera le reste :))
L'avantage de LVM, c'est que si l'on s'aperçoit que la répartition de ces données ne suit pas ce que l'on a imaginé (moins de vidéo et plus de musique par exemple), on pourra re-dimensionner ces Logical Volume pour s'adapter à la réalité :)

lvcreate -L 750GB -n lvMusique vgDataMain
lvcreate -L 750GB -n lvPhotos vgDataMain
lvcreate -L 1TB -n lvVideos vgDataMain

On peut alors déterminer combien de PE restent disponibles et les allouer au dernier Logical Volume:
vgdisplay (et on cherche la ligne "Free PE / Size") puis
lvcreate -l 69252 -n lvMusique vgDataMain

Si on refait un vgdisplay, on constate que l'intégralité du Volume Group a bien été utilisé :)


Formatage des partitions

Les Logical Volume étant créés, on peut maintenant les formater.
On choisi le format ext4.

mke2fs -t ext4 /dev/vgDataMain/lvMusique
mke2fs -t ext4 /dev/vgDataMain/lvPhotos
mke2fs -t ext4 /dev/vgDataMain/lvVideos
mke2fs -t ext4 /dev/vgDataMain/lvDocuments


Montage des partitions

Avant de pouvoir utiliser les partitions, nous devons encore les monter ;)
Pour cela, nous créons pour commencer un créer le répertoire par lequel nous souhaitons pouvoir accéder à ces partitions.
Pour ma part ce sera :
/mnt/musique pour /dev/vgDataMain/lvMusique
/mnt/photos pour /dev/vgDataMain/lvPhotos
/mnt/videos pour /dev/vgDataMain/lvVideos
/mnt/documents pour /dev/vgDataMain/lvDocuments
et

/mnt/_backup/musique pour /dev/vgDataMirror/lvMusique
/mnt/_backup/photos pour /dev/vgDataMirror/lvPhotos
/mnt/_backup/videos pour /dev/vgDataMirror/lvVideos
/mnt/_backup/documents pour /dev/vgDataMirror/lvDocuments

Donc :
mkdir /mnt/musique /mnt/photos /mnt/videos /mnt/documents
mkdir /mnt/_backup/musique /mnt/_backup/photos /mnt/_backup/videos /mnt/_backup/documents

Si on ne veut pas que ces dossiers ne restent accesibles QUE à l'utilisateur ROOT... il faut alors penser à changer leur propriétaire, avec un petit coup de "chown owner:group /mnt/dossier" :)

Et maintenant le montage des partitions:
mount /dev/vgDataMain/lvMusique /mnt/musique
mount /dev/vgDataMain/lvPhotos /mnt/photos 
mount /dev/vgDataMain/lvVideos /mnt/videos
mount /dev/vgDataMain/lvDocuments /mnt/documents
et

mount /dev/vgDataMirror/lvMusique /mnt/_backup/musique
mount /dev/vgDataMirror/lvPhotos /mnt/_backup/photos 
mount /dev/vgDataMirror/lvVideos /mnt/_backup/videos
mount /dev/vgDataMirror/lvDocuments /mnt/_backup/documents

On peut vérifier que tout est monté correctement en listant les file-system à l'aide de df


Ajout dans fstab

C'est bien gentil de monter les partitions... mais on ne va pas le faire "à la main" à chaque re-démarrage !
Alors pour s'éviter du travail, on va ajouter ces partitions dans le fstab qui permet de monter automatiquement ces partitions au démarrage !

On va donc ajouter la ligne suivante pour chacune des partitions à monter dans le fichier /etc/fstab :
/dev/mapper/vgDataMain-lvMusique /mnt/musique ext4 defaults,nofail 0 0

L'option "nofail" permet de ne pas bloquer le démarrage du serveur si par malheur l'un des disque de Data venait à ne plus fonctionner.

Une fois les modifications effectuées, on peut vérifier qu'il n'y a pas d'erreur de syntaxe en démontant manuellement les partition et en les remontant à l'aide de ce fichier :
umount /mnt/musique
umount /mnt/photos
umount /mnt/videos
umount /mnt/documents
umount /mnt/_backup/musique
umount /mnt/_backup/photos
umount /mnt/_backup/videos
umount /mnt/_backup/documents
puis
mount -a
et enfin 
df -h
pour vérifer que toutes les partitions sont à nouveau là :)


Et voilà, elle est pas belle la vie ?
 :)

Installation d'un micro-serveur, part 1: BASICS


Hello amis lecteurs,

Il y a quelques temps, je me suis fait plaisir, j'ai investi dans un micro-serveur Hewlett Packard ProLiant N40L.

  • Pas trop gros
  • Suffisamment puissant pour mes besoins (enfin, j'espère !) [Architecturé autour d'un AMD Turion II]
  • Equipé d'origine avec 2Go de mémoire (extensible à 4Go ECC)
  • Et, bonne surprise au déballage, d'un disque dur de 250Go ! (je pensais qu'il n'y en avait pas...)
  • Il me reste donc 3 emplacement 3,5" disponible, en sus de l'emplacement 5,25" ;)

Mais ce charmant petit serveur est livré "nu"... et c'est d'ailleurs ce qui m'a attiré, car je vais ainsi pouvoir m'amuser à y installer un vrai petit système "fait main" avec tout mon amour pour Linux :)

Voici donc les étapes de son installation !



Installation du système Debian de base
(Librement inspiré de l'article "Install et conf de base d'une Debian" de l'ami Guillaume Vaillant :))
Création de la clé USB bootable
  • Téléchargement de l'image ISO amd64 du CD1 sur debian.org
  • [Linux] Installer l'image ISO sur une clé USB (1Go minimum) à l'aide de la commande dd if= of= bs=4M; sync, avec le nom de l'image ISO à copier (CD1.iso), le nom du device où copier (/dev/sdX), bs=4M permet de lire/écrire des blocs de 4 Mo et améliore les performances, et sync permet de finaliser les opérations d'écriture avant la fin de la commande.
  • [Windows] Installer l'image ISO sur une clé USB (1Go minimum) à l'aide de UNetbootin

Installation et paramètres de base
  • Brancher un clavier, insérer la clé USB Debian, et démarrer le serveur :)
  • Suivre les étapes de l'installeur en mode texte :)
  • Installation en anglais
  • Clavier configuré en AZERTY
  • Langue et locale configurées en "en_US.UTF-8"

Partitionnement
  • montage: /boot, taille: 200Mo, type: ext3, options: nodev, nosuid, noexec, label: /boot, bootable flag: oui
  • montage: none, taille: 4000Mo, type: swap, label: swap
  • montage: /, taille: 20Go, type: ext4, options: relatime, label: /
  • montage: /tmp, taille: 10Go, type: ext4, options: relatime, nodev, nosuid, noexec, label: /tmp
  • montage: /var, taille: 10Go, type: ext4, options: relatime, nodev, label: /var
  • montage: /home, taille: 10Go, type: ext4, options: relatime, nodev, nosuid, label: /home
  • montage: /data, taille: le reste (180Go), type: ext4, options: relatime, nodev, nosuid, label: /data

Configuration du gestionnaire de packages
  • Editer le fichier /etc/apt/sources.list pour qu'il contienne:
deb http://ftp2.fr.debian.org/debian/ squeeze main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb http://ftp2.fr.debian.org/debian/ squeeze-updates main contrib non-free
deb http://backports.debian.org/debian-backports squeeze-backports main

deb-src http://ftp2.fr.debian.org/debian/ squeeze main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://ftp2.fr.debian.org/debian/ squeeze-updates main contrib non-free
deb-src http://backports.debian.org/debian-backports squeeze-backports main
  • Mettre à jour le gestionnaire: aptitude update
  • Mettre à jour le système: aptitude safe-upgrade

Installation des packages de base

Installation des packages suivants, avec "aptitude install xxx" (on peut lister tous les packages les uns à la suite des autres, séparés par des espaces)
  • atop: moniteur de ressources système et d'activité de processus (voir aussi htop)
  • bind9-host: Version de "host" intégrée avec BIND 9.x (pour le serveur DNS il faut ajouter aussi Bind9...)
  • bridge-utils: Utilitaires destinés à configurer le pont Ethernet sous Linux
  • bsd-mailx: Agent de courriel(MUA)  utilisateur simple (à priori, avec Exim4 installé par défaut en tant que MTA)
  • cron-apt: Automatic update of packages using apt-get
  • dmidecode: Extraction des données Desktop Management Interface
  • dnsutils: Clients fournis avec Bind
  • ethtool: Affiche ou change les paramètres des périphériques Ethernet
  • geoip-database: IP lookup command line tools that use the GeoIP library (country database)
  • hdparm: Optimisation des paramètres des disques durs
  • htop: moniteur de ressources système et d'activité de processus (voir aussi atop)
  • ifenslave: Attach and detach slave interfaces to a bonding device
  • inetutils-telnet: Telnet client (pas sûr que ça serve sur ce serveur :)
  • inotify-tools: Programmes en ligne de commande fournissant une interface simple à inotify
  • iptraf: Moniteur IP LAN interactif et coloré
  • less: Programme de pagination similaire à more
  • logrotate: Utilitaire de rotation de fichier journal
  • lshw: Informations sur la configuration matérielle
  • lsof: Liste des fichiers ouverts
  • minicom: Programme de communication série piloté par menus conviviaux
  • mlocate: Trouver rapidement des fichiers sur le système de fichiers d'après leur nom
  • mtr: Outil traceroute X11 et ncurses plein écran
  • multitail: View multiple logfiles windowed on console
  • nfs-common: Fichiers de support NFS communs au client et au serveur
  • nmap: Cartographe de réseau
  • ntpdate: Client pour définir l'horloge système à partir de serveurs NTP
  • parted: Programme de redimensionnement de partitions GNU Parted
  • pciutils: Utilitaires PCI Linux
  • psmisc: Utilitaires qui utilisent le système de fichiers proc
  • python: Langage interactif de haut niveau orienté objet
  • resolvconf: Name server information handler
  • rsync: Programme de copie de fichiers à distance rapide
  • screen: Multiplexeur d'écran avec émulation de terminal VT100/ANSI
  • smartmontools: Contrôle et surveillance de système de stockage utilisant S.M.A.R.T.
  • snmp: SNMP applications
  • snmpd: SNMP agents
  • ssmtp: Extremely simple MTA to get mail off the system to a mail hub (à voir si je garde ou pas...)
  • sudo: Fournit des privilèges super-utilisateurs à des clients spécifiques
  • tcpdump: Outil puissant pour la surveillance de réseau et l'acquisition de données
  • unzip: Extraction d'archives ZIP
  • vim-nox: Vim sans serveur X
  • vlan: User mode programs to enable VLANs on your ethernet devices
  • whois: Client whois intelligent
Configuration de base

Editeurs de texte
  • Editeur par défaut: update-alternatives --set editor /usr/bin/vim.nox
  • Pager par défaut: update-alternatives --set pager /bin/less
  • Configuration de Vim : Créer un fichier /etc/vim/vimrc.local avec le contenu suivant:
syntax on
set hls
set showmatch
set laststatus=2
set statusline=%t\ %y%r%{&ff}%m%=[%c%V,%1,%P]
set modeline
set modelines=1
set titlestring=%{expand($USER) }@%{hostname()}:vim\ %F%m%r
set title

Configuration de SSH et SSHd
  • Modifier le fichier /etc/ssh/sshd_config pour qu'il contienne:
Host *
ForwardAgent no
ForwardX11 no
RhostsAuthentication no
RhostsRSAAuthentication no
RSAAuthentication yes
PasswordAuthentication yes
BatchMode no
CheckHostIP yes
StrictHostKeyChecking ask
IdentityFile ~/.ssh/identity
Port 22
Protocol 2
Cipher blowfish
EscapeChar ~
FallBackToRsh no
UseRsh no
  • Modifier le fichier /etc/ssh/sshd_config pour qu'il contienne:
Port 22
# ListenAddress 0.0.0.0 # si on veut binder le service sur une seul interface
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 768
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin no # On n'accepte pas que le Root se logue
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes # Authentication par mot de passe acceptée
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
X11Forwarding no # On désactive le X11 forwarding (environnement graphique)
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes
# Déconnexion si pas de réponse pendant 3x300s = 30min.
ClientAliveInterval 300
ClientAliveCountMax 3
UseDNS no

Configuration du logrotate

  • Modifier le fichier /etc/logrotate.con pour qu'il contienne:
daily
rotate 31
create
include /etc/logrotate.d

/var/log/wtmp {
    missingok
    monthly
    create 0664 root utmp
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0660 root utmp
    rotate 1
}


Et voilà ! Nous avons maintenant un Microserveur avec un système Debian assez minimaliste auquel on peut accéder de façon sécurisée par SSH et qui ne demande plus qu'à évoluer vers quelque chose d'un peu plus "utile" :)

A bientôt pour la suite :)

Installation d'un micro-serveur, part 2: FANCY

Hello tout le monde,

Bon, ce n'est sans doute pas la partie le plus cruciale de ce microserveur... mais quand on est Geek, on l'est aussi pour se faire plaisir :)

Alors, voici comment se faire un beau message d'accueil lors de la connexion au serveur (en SSH par exemple).


Trouver un beau logo :)

(Merci à Michauko pour le court, mais sympathique article sur linuxlogo :))
Pour rester dans l'esprit "Geek", un bon moyen de trouver un logo d'ouverture de session, est d'utiliser le package linuxlogo qui permet de générer dans un terminal la plupart des logos des distributions usuelles.

  • aptitude install linuxlogo pour installer le package
  • linuxlogo -L list pour lister l'ensemble des logos disponibles
  • linuxlogo -L xx, avec xx le numéro ou le nom du logo pour l'afficher
  • Une fois le logo choisi, on peut "figer" la configuration en éditant le fichier /etc/linux_logo.conf
  • Pour afficher le logo, il suffit alors d'exécuter linux_logo dans la ligne de commande.
  • Si on voulait l'afficher à chaque connexion, il suffirait de rajouter la ligne linux_logo à la fin du fichier /etc/profile.

Transférer ce logo dans le MOTD

MOTD, c'est le "Message of the Day".
Ce message est défini par le fichier /etc/motd.
Pour copier le logo précédent dans le motd, il suffit de faire linux_logo > /etc/motd pour copie la sortie écran de linux_logo dans le fichier /etc/motd.


Rendre le logo dynamique

(Merci à Parker Samp pour l'astuce !)

Ce logo est bien sympathique... mais les informations qu'il affiche n'étaient valable que lors du moment où il a été généré. L'uptime notamment, ne sera vraisemblablement pas correct la prochaine fois que vous vous loggerez.

Création d'un script

Première étape pour rendre ce logo dynamique, créer le script suivant, par exemple dans /usr/local/bin/ :

#!/bin/bash

echo -e "

-> Insérer ici le contenu du fichier /etc/motd

"

Pensez à rendre le script exécutable en faisant un chmod a+x nom_du_script

Insertion des variables

Seconde étape, remplacer les textes qui étaient "figés" dans le fichier /etc/motd par des variables dont le contenu sera calculé lors de l'exécution du script.

En ce qui me concerne, je "calcule" les variables suivantes lors de l'exécution du script:


# Version de Linux installée
VERSION=`cat /proc/version | sed 's/\([azAZ09\.]*\)(.*) .*/\1/'`
# Date de compilation du Linux
COMPILE=`cat /proc/version | sed 's/.*\((.*)\) \(.*\)/\2/'`
# Nombre de processeurs
CPU_NB=`grep -c processor /proc/cpuinfo`
# Type de processeur
CPU_TYPE=`cat /proc/cpuinfo | grep "model name" | awk -F ":" {'print $2'} | head -n 1`
# Fréquence des processeurs
CPU_FREQ=`cat /proc/cpuinfo | grep "cpu MHz" | awk -F ":" {'print $2'} | head -n 1`
# Mémoire totale du serveur
TOTALMEM=`cat /proc/meminfo | grep MemTotal | awk {'print $2'}`
TOTALMEM=`expr $TOTALMEM / 1024`
# Mémoire disponible
FREEMEM=`cat /proc/meminfo | grep MemFree | awk {'print $2'}`
FREEMEM=`expr $FREEMEM / 1024`
# Charge processeur pour les 1, 5 et 15 dernières minutes
LOAD=`uptime | sed 's/.*average: \(.*\)/\1/'`
# Uptime
UPTIME=`uptime | sed 's/.*up \([^,]*\), .*/\1/'`
# Hostname
HOSTNAME=`hostname`

Exécution du script à chaque connexion au serveur

Avant tout chose, il faut désactiver l'affichage du MOTD:
  • Dans /etc/ssh/sshd_config, configurer le paramètre PrintMotd sur no
  • Redémarrer le démon SSH
  • Désactiver l'affichage du MOTD dans PAM en mettant en commentaire la ligne sesssion optional  pam_motd.so du fichier /etc/pam.d/login.
Ajouter l'exécution du script à la fin du fichier /etc/profile en ajoutant la ligne /usr/local/bin/dynmotd.sh (en remplaçant par le nom de votre script bien entendu :))

Et en ce qui concerne le PROMPT?

Le minimum syndical...

Pour le minimum syndical, on va juste activer la coloration syntaxique et diminuer les risques d'erreurs pour les sessions ROOT.

Pour ça, on édite le fichier bashrc : nano /root/.bashrc et on décommente les lignes

export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
et
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'



Et voilà, désormais à chaque connexion, vous aurez un beau login, toujours à jours ! ;)
Elle est pas belle la vie de Geek ?