Vagrant – JDK Oracle sur Ubuntu
Récemment, j’ai voulu créer une box Vagrant contenant un environnement de développement Java prêt à l’usage. Sur GNU/Linux, il existe deux possibilités pour le JDK :
Souhaitant rester au plus proche de la version de production, j’ai décidé d’installer la version d’Oracle. Cette version n’est pas disponible sur les dépôts officiels d’Ubuntu. Il faut passer par les dépôts PPA.
Sommaire
Création de la VM
Déclaration
La déclaration de la box est assez simple avec le fichier VagrantFile :
Vagrant.configure("2") do |config| config.vm.box = "ubuntu/trusty32" config.vm.provision :shell, :path => "scripts/provision_java.sh" end
Provisionning
Comme je n’ai pas encore eu le temps de me pencher sur Puppet ou Chef, l’installation automatique du JDK 8 d’Oracle est réalisée au travers d’un simple script shell qui se charge de réaliser les tâches suivantes :
- vérifie si le provisionnement de Java a déjà été fait
- configure les dépôts APT les plus rapides
- ajoute le dépôt PPA
- lance l’installation automatique de Java 8
- configure la variable d’environnement JAVA_HOME
- nettoie le système (utile en cas d’échec de l’installation)
Voici le contenu du fichier scripts/provision_java.sh :
echo "[vagrant provisioning] Checking if the box was already provisioned..." if [ -e "/home/vagrant/.provision_java_check" ] then echo "[vagrant provisioning] The box is already provisioned..." exit fi echo "[vagrant provisioning] Updating mirrors in sources.list" sudo sed -i -e '1ideb mirror://mirrors.ubuntu.com/mirrors.txt trusty main restricted universe multiverse\ndeb mirror://mirrors.ubuntu.com/mirrors.txt trusty-updates main restricted universe multiverse\ndeb mirror://mirrors.ubuntu.com/mirrors.txt trusty-backports main restricted universe multiverse\ndeb mirror://mirrors.ubuntu.com/mirrors.txt trusty-security main restricted universe multiverse\n' /etc/apt/sources.list sudo apt-get update echo "[vagrant provisioning] Installing Java..." sudo apt-get -y install python-software-properties sudo add-apt-repository -y ppa:webupd8team/java sudo apt-get update echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections echo oracle-java8-installer shared/accepted-oracle-license-v1-1 seen true | sudo /usr/bin/debconf-set-selections sudo apt-get -y install oracle-java8-set-default export JAVA_HOME="/usr/lib/jvm/java-8-oracle/jre" echo "[vagrant provisioning] Java installed" sudo dpkg --configure -a apt-get autoremove -y echo "[vagrant provisioning] Creating .provision_java_check file..." touch .provision_java_check
Avec ces deux fichiers, vous pouvez lancer les commandes suivantes :
$ vagrant up $ vagrant ssh
Une fois la VM créée et une fois connecté sur celle-ci, vous pouvez vérifier que le Java est correctement installé :
$ echo $JAVA_HOME /usr/lib/jvm/java-8-oracle $ java -version java version "1.8.0_20" Java(TM) SE Runtime Environment (build 1.8.0_20-b26) Java HotSpot(TM) Client VM (build 25.20-b23, mixed mode)
Votre environnement de développement Java 8 est prêt !
Packaging de la box
Vous avez pu remarquer que le provisionnement de cette VM a pris un certain temps (une dizaine de minutes lors de mon test) entre la mise à jour des dépôts APT et le téléchargement du Java 8. Afin que la création des prochaines VM soit plus rapide, vous pouvez packager celle-ci. Dans un premier temps, il faut effacer l’empreinte mémoire pour réduire au maximum la taille de la box avant de l’arrêter :
$ sudo dd if=/dev/zero of=/EMPTY bs=1M $ sudo rm -f /EMPTY $ sudo shutdown -h now
Il existe des articles qui expliquent une ou deux méthodes pour réduire significativement la taille d’une box Vagrant.
Ensuite, il faut créer la box avec la commande suivante :
$ vagrant package --output trusty32-java8-oracle.box
Installation de la box
Cette dernière étape est très simple et s’effectue avec la commande :
$ vagrant box add trusty32/java8/oracle trusty32-java8-oracle.box
Réutilisation de la box
Pour réutiliser cette box dans de nouvelles VM Vagrant, il suffit d’exécuter les commandes suivantes :
$ vagrant init trusty32/java8/oracle $ vagrant up
Ou bien de créer le fichier VagrantFile suivant :
Vagrant.configure("2") do |config| config.vm.box = "trusty32/java8/oracle" end
Cette fois, la création et le démarrage de la VM a pris moins de 3 minutes !
Vous êtes maintenant équipé pour créer à la demande des environnements de développement Java 8 très très rapidement.
https://blog.lecacheur.com/2014/09/16/vagrant-jdk-oracle-sur-ubuntu/https://blog.lecacheur.com/wp-content/uploads/2014/09/java-ubuntu.pnghttps://blog.lecacheur.com/wp-content/uploads/2014/09/java-ubuntu.pngDéveloppementJava EELinuxjava,linux,vagrantRécemment, j'ai voulu créer une box Vagrant contenant un environnement de développement Java prêt à l'usage. Sur GNU/Linux, il existe deux possibilités pour le JDK : OpenJDK Oracle JDK Souhaitant rester au plus proche de la version de production, j'ai décidé d'installer la version d'Oracle. Cette version n'est pas disponible sur les...SeBSébastien LECACHEUR23r0@laposte.netAdministratorLe weblogue de SeB
Laisser un commentaire