# Vagrantfile to install old OpenGnSys 1.0.6b virtual environment using VirtualBox provider. VAGRANTFILE_API_VERSION = "2" # VM provider: Oracle VM VirtualBox. ENV['VAGRANT_DEFAULT_PROVIDER'] = "virtualbox" # Language (accepted values: es_ES, ca_ES, en_GB). LANGUAGE = "es_ES" ENV['LC_ALL'] = LANGUAGE + ".UTF-8" # Number of OpenGnsys clients (accepted values: from 2 to 9). NCLIENTS = 4 # Repository virtual disk: file and size (GB). REPODISK = "ogRepo.vdi" REPOSIZE = 50 # Amount of memory for server and clients (MB) SERVERMEM = 1024 # Minimum: 512 CLIENTMEM = 512 # Minimum: 256 # Clients MAC address prefix. MACPREFIX = "08:00:27:0E:65" NETPREFIX = "192.168.2" # Local port to access OpenGnsys Server. LOCALWEBPORT = 8443 # OpenGnsys Server provisioning script: prepare repo disk, install OpenGnsys, change default interface, configure DHCP server. OGSERVERSCRIPT = </dev/null; then apt-get update apt-get install -y lvm2 fi pvcreate /dev/sdb vgcreate og /dev/sdb vgchange -ay lvcreate -ay -n images -l 100%VG og mkfs -t ext4 /dev/mapper/og-images mkdir -p /opt/opengnsys/images echo "/dev/mapper/og-images /opt/opengnsys/images ext4 defaults 0 0" >> /etc/fstab mount -a fi # Install OpenGnsys and change server address. wget -q https://opengnsys.es/svn/tags/opengnsys-1.0.6b/installer/opengnsys_installer.sh -O - | bash || exit $? mv /opt/opengnsys/log/bash.log /opt/opengnsys/log/opengnsys_installer.log echo y | /opt/opengnsys/bin/setserveraddr $(ip -o link show | tail -1 | cut -d: -f2) # Insert DHCP data. for ((i=#{NCLIENTS+10}; i>10; i--)); do sed -i "/^}$/ i host pc${i} { hardware ethernet #{MACPREFIX}:${i}; fixed-address #{NETPREFIX}.${i}; }" /etc/dhcp/dhcpd.conf done service isc-dhcp-server restart # Set language. export LANG="#{LANGUAGE}.UTF-8" echo "LANG=\"$LANG\"" > /etc/default/locale echo "LANG=\"$LANG\"" >> /etc/environment locale-gen --lang #{LANGUAGE} sed -i "s/XKBLAYOUT=.*/XKBLAYOUT=\"${LANG%_*}\"/" /etc/default/keyboard dpkg-reconfigure -fnoninteractive console-setup # Comment out next lines for automatic data insertion. #SQL="INSERT INTO aulas (nombreaula, idcentro, urlfoto, grupoid, ubicacion, puestos, modomul, ipmul, pormul, velmul, router, netmask, dns, proxy, modp2p, timep2p) VALUES ('Aula virtual', 1, 'aula.jpg', 0, 'Despliegue virtual con Vagrant.', 5, 2, '239.194.2.11', 9000, 70, '#{NETPREFIX}.1', '255.255.255.0', '', '', 'peer', 30); INSERT INTO ordenadores (nombreordenador, ip, mac, idaula, idrepositorio, idperfilhard, idmenu, idproautoexec, grupoid, router, mascara, arranque, netiface, netdriver, fotoord) VALUES" #for ((i=11; i<=#{NCLIENTS+10}; i++)); do # SQL="$SQL ('pc$i', '#{NETPREFIX}.$i', REPLACE('#{MACPREFIX}$i',':',''), 1, 1, 0, 0, 0, 0, '#{NETPREFIX}.1', '255.255.255.0', '00unknown', 'eth0', 'generic', 'fotoordenador.gif')," #done #mysql -u usuog -ppassusuog -D ogAdmBD -e "${SQL%,}" #if ! grep -q "1\.0" /opt/opengnsys/doc/VERSION.txt; then AUX=1; fi #/opt/opengnsys/bin/setclientmode ogAdmin pc11 $AUX #for ((i=12; i<=#{NCLIENTS+10}; i++)); do # /opt/opengnsys/bin/setclientmode ogClient pc$i $AUX #done echo "New OpenGnsys local URL: https://localhost:#{LOCALWEBPORT}/opengnsys/" EOT # Client 1 OS provisioning script. MODELSCRIPT = <