Arborescence
- Création d'un dossier /data/mibin-boxs/vagrant/boxs
- Copie dans ce dossier des boxs existantes
- Organisation en sous-dossiers (libre à vous de définir votre plan de classement):
boxes
..linux
...._templates
....projet1
....projet2
.... etc
.. windows
....projet1
....projet2
.... etc
Installation de mongoose
J'utilise ici Mongoose comme serveur HTTP pour exposer l'entrepôt de box. C'est simple et efficace. Bien sûr, rien empêche de monter un apache, un nginx ou même un IIS (lol).
- Installation (ici sous redhat6 via yum)
yum install mongoose.x86_64
|
- Création d'un fichier de conf mongoose_vagrant.conf
document_root /data/mibin-boxs/vagrant
listening_ports 81
extra_mime_types .json=application/json
|
- Création d'un batch de lancement mibin.sh (start|stop|status). Exemple :
#!/bin/sh
startup= "mongoose ./mongoose_vagrant.conf"
start() {
echo -n $ "Starting Mongoose service: "
# sh $startup
nohup $startup &
echo $?
}
stop() {
echo -n $ "Stopping Mongoose service: "
#echo -n $ "NEED TO DO IT MANUALLY. "
# sh $shutdown
kill - 9 `ps -aef | grep "$startup" | grep -v mibin.sh | grep -v grep | awk '{print $2}' `
echo $?
}
restart() {
stop
start
}
status() {
test=$(ps -aef | grep "$startup" | grep -v grep)
if [ -z "$test" ] ; then
echo "Stopped"
else
echo "Running"
echo $test
fi
}
# Handle the different input options
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
restart
;;
*)
echo $ "Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit 0
|
Qualification des boxs
Pour chaque box :
- nommage du fichier box en : <nombox>_AA.MM.JJ.box ou AA, MM, JJ correspondent à la date de création de la box dans le repo (tient lieu d'indice de version)
- création d'un fichier <nombox>.json
exemple, avec 2 versions :
{
"name" : "lifeplus" ,
"description" : "lifeplus : centos64, postgres9, liferay6.2.0." ,
"versions" : [{
"version" : "14.2.25" ,
"providers" : [{
"name" : "virtualbox" ,
"checksum_type" : "sha1" ,
"checksum" : "e348c36dd40e45eb111ad88417e7bb45ba2c6e99"
}]
},{
"version" : "14.10.21" ,
"providers" : [{
"name" : "virtualbox" ,
"checksum_type" : "sha1" ,
"checksum" : "cf4a4d0bf06070b15253b0c80feeccd1d3f363a5"
}]
}]
}
|
Pour calculer le checksum d'une box :
openssl sha1 nomdelabox.box
|
- création d'un Vagrantfile
Exemple :
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don 't touch unless you know what you' re doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "lifeplus"
config.vm.post_up_message = "
Centos6. 4 64 bits
2 cpus
ram 4 Go
HD 8 Go
IP : 192.168 . 100.10
hostname : lifeplus.mibin.bzh
Root : root/*****
Liferay : mibin/*****
"
config.vm.hostname = "centos64.mibin.bzh"
# The url from where the 'config.vm.box' box will be fetched if it
# doesn 't already exist on the user' s system.
# Create a private network, which allows host-only access to the machine
# using a specific IP.
config.vm.network :private_network, ip: "192.168.100.10"
config.vm.provider :virtualbox do |vb|
vb.customize [ "modifyvm" , :id, "--memory" , "4096" ]
vb.customize [ "modifyvm" , :id, "--cpus" , 2 ]
vb.customize [ "modifyvm" , :id, "--macaddress2" , "08002755A4B5" ]
end
end
|
Aucun commentaire:
Enregistrer un commentaire