Archives de catégorie : Debian

Docker et les réseaux

Docker est probablement l’une des « technologies » les plus importantes de ces dernières années. Bien que s’appuyant sur des briques et des principes qui existaient depuis longtemps (en particulier LXC), l’équipe de Docker a réussi à s’imposer là ou tous les autres ont échoué, en grande partie grâce à sa simplicité (de façade).

Mais en essayant de tout simplifier pour les débutants ou les développeurs, ils ont parfois fait des choix techniques plus que discutables.

Pour un développeur qui travail dans son coin ce n’est pas gênant et ça rend les choses plus simples, mais quand vient l’heure de la mise en production, de gros problèmes peuvent survenir.

Heureusement on peut maintenant (ça n’a pas toujours été le cas) changer tout ou partie de ce comportement, c’est ce qu’on va voir ici. Continuer la lecture

Mémo – installer le JDK (et le jre) d’Oracle

Quelques temps après avoir racheté Sun, Oracle a changer les conditions de distribution de Java. Il n’est donc plus possible pour la plupart des distributions de proposer un paquet d’installation de la JDK d’Oracle.

Donc il n’est plus possible de le mettre à jour automatiquement. Un beau pied de nez à celles et ceux qui essayent de maintenir un peu de sécurité dans leurs environnements de production !

A ma connaissance il n’y a que 3 alternatives :

  1. ne pas utiliser java : c’est ce que je fais le plus souvent
  2. utiliser OpenJDK : GPL et 99% compatible
  3. installer manuellement le JDK d’Oracle

Récupérer JavaSE :

Sur le site d’Oracle, on récupère l’archive de JavaSE (ou la JVM selon les besoins) correspondant à la plateforme, par exemple : jdk-7-linux-x64.tar.gz

Installer le paquet :

mkdir /opt/java-oracle
tar -zxf /tmp/jdk-7-linux-x64.tar.gz -C /opt/java-oracle

 L’intégrer au système :

JHome=/opt/java-oracle/jdk1.7.0_51
update-alternatives --install /usr/bin/java java ${JHome%*/}/bin/java 20000
update-alternatives --install /usr/bin/javac javac ${JHome%*/}/bin/javac 20000
update-alternatives --config java

Il ne reste plus qu’à sélectionner la version de Java à utiliser par défaut.

On vérifie :

java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

Debian – Installation automatisée

Un petit memo pour faire une image (ISO) d’installation automatisée d’une Debian, ici c’est pour une Squeeze, mais la méthode est valable pour les autres versions.

Il faut disposer d’un fichier de preseed, des droits root et d’une image du CD d’installation.

On commence par créer un fichier de preseed, c’est un fichier texte qui contient les réponses aux questions posées durant l’installation.
Voici un fichier d’exemple où il faut juste donner les informations réseau et de partitionnement :

# Locales
d-i debian-installer/language string en
d-i debian-installer/country string FR
d-i debian-installer/locale string en_US.UTF-8

d-i debian-installer/fallbacklocale select fr_FR.UTF-8
d-i debian-installer/locale select en_US.UTF-8

# Keyboard
d-i console-keymaps-at/keymap select fr-latin9
d-i debian-installer/keymap string fr-latin9

# Network
d-i netcfg/choose_interface select auto
d-i netcfg/disable_dhcp boolean false
d-i netcfg/dhcp_failed note
d-i netcfg/dhcp_options select Configure network manually
d-i netcfg/confirm_static boolean true
d-i netcfg/wireless_wep string
d-i hw-detect/load_firmware boolean true

# Users
d-i passwd/root-login boolean true
d-i passwd/root-password password passwordRootTemporaire
d-i passwd/root-password-again password passwordRootTemporaire
d-i passwd/make-user boolean false

# Clock
d-i clock-setup/utc boolean true
d-i time/zone string Europe/Paris
d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server string mon.serveur.ntp

# Miroirs
d-i mirror/country string manual
d-i mirror/http/hostname string mon.miroir.debian:8080
d-i mirror/http/directory string /debian
d-i mirror/suite string squeeze
d-i mirror/http/proxy string
d-i mirror/protocol select http
d-i mirror/codename string squeeze
d-i mirror/http/mirror select mon.miroir.debian:8080

# APT
d-i apt-setup/non-free boolean true
d-i apt-setup/contrib boolean true
d-i apt-setup/services-select multiselect
popularity-contest popularity-contest/participate boolean false
# Update
d-i pkgsel/upgrade select full-upgrade

# Paquets : on ajoute le serveur SSH
tasksel tasksel/first multiselect none
d-i pkgsel/include string openssh-server

# Grub
d-i grub-installer/only_debian boolean true

# Reboot automatically
d-i finish-install/reboot_in_progress note

On passe root :

su -<br>

Puis on créé une arborescence dans TMP :

rm -rf /tmp/preseed && mkdir -p /tmp/preseed/tmp && cd /tmp/preseed/tmp<br>

On copie l’ISO et le fichier de preseed dans le dossier /tmp/preseed.
Selon l’architecture, on déclare quelques variables :
La version utilisée :
export VERSION=6.0.1a
En 32bits :

export ARCH=i386
export sARCH=386

En 64bits :

export ARCH=amd64
export sARCH=amd

Puis on fabrique l’image :

mkdir debian-$VERSION-$ARCH initrd &&
bsdtar -C ./debian-$VERSION-$ARCH -xf ../debian-$VERSION-$ARCH-netinst-non-free.iso &&
cd initrd/ &&
gunzip -c ../debian-$VERSION-$ARCH/install.$sARCH/initrd.gz | cpio -id &&
cp ../../preseed.cfg . &&
find . | cpio --create --format='newc' | gzip > ../initrd.gz &&
cd .. &&
chmod u+w debian-$VERSION-$ARCH/install.$sARCH &&
cp initrd.gz debian-$VERSION-$ARCH/install.$sARCH/initrd.gz &&
chmod u-w debian-$VERSION-$ARCH/install.$sARCH &&
cd debian-$VERSION-$ARCH/ &&
md5sum `find ! -name "md5sum.txt" ! -path "./isolinux/*" ! -name "debian" -follow -type f` > ./md5sum.txt &&
cd .. &&
genisoimage -o ./debian-$VERSION-$ARCH-preseed.iso -V di`date -u +%m%d%H%M%S` -r -J -no-emul-boot -boot-load-size 4 -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat ./debian-$VERSION-$ARCH &&
rm -rf debian-$VERSION-$ARCH initrd initrd.gz

Vous avez maintenant une ISO toute fraiche.

sources :