diff --git a/.gitignore b/.gitignore index 9ab03d0..9023093 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,6 @@ .proxy-config .vagrant DEADJOE -Vagrantfile /files/log /files/kaz/download /files/kaz/git diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 0000000..9162983 --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,50 @@ +# coding: utf-8 +# -*- mode: ruby -*- +# vi: set ft=ruby : + +unless Vagrant.has_plugin?("vagrant-disksize") + raise Vagrant::Errors::VagrantError.new, "vagrant-disksize plugin is missing. Please install it using 'vagrant plugin install vagrant-disksize' and rerun 'vagrant up'" +end + +# All Vagrant configuration is done below. The "2" in Vagrant.configure +# configures the configuration version (we support older styles for +# backwards compatibility). Please don't change it unless you know what +# you're doing. +Vagrant.configure("2") do |config| + + required_plugins = %w( vagrant-vbguest vagrant-disksize ) + _retry = false + required_plugins.each do |plugin| + unless Vagrant.has_plugin? plugin + system "vagrant plugin install #{plugin}" + _retry=true + end + end + + if (_retry) + exec "vagrant " + ARGV.join(' ') + end + + config.vm.box = "debian/bullseye64" + config.vm.hostname = 'kaz-vm' + config.disksize.size = '32GB' + + config.vm.provider "virtualbox" do |vb| + vb.memory = "4096" + vb.cpus = "2" + vb.name = "kaz-vm" + vb.customize ["modifyvm", :id, "--vram", "64", "--clipboard-mode", "bidirectional", '--graphicscontroller', 'vmsvga', '--natnet1', '192.168.64.0/24'] + vb.gui = true + end + + + + #permet d'avoir un répertoire partagé entre la VM et le host + config.vm.synced_folder "/tmp/", "/tmp_host" + config.vm.synced_folder "files/", "/root/kaz-vagrant" + + config.vm.provision "shell" do |s| + s.inline = "/vagrant/files/vm-provision.sh" + s.env = {"KAZGUARD" => "true", "HOSTLANG" => ENV['LANG'], "NOKAZ" => ENV['NOKAZ'], "KAZBRANCH" => ENV['KAZBRANCH']} + end +end diff --git a/Vagrantfile.dist b/Vagrantfile.dist deleted file mode 100644 index 69e6925..0000000 --- a/Vagrantfile.dist +++ /dev/null @@ -1,95 +0,0 @@ -# coding: utf-8 -# -*- mode: ruby -*- -# vi: set ft=ruby : - -unless Vagrant.has_plugin?("vagrant-disksize") - raise Vagrant::Errors::VagrantError.new, "vagrant-disksize plugin is missing. Please install it using 'vagrant plugin install vagrant-disksize' and rerun 'vagrant up'" -end - -# All Vagrant configuration is done below. The "2" in Vagrant.configure -# configures the configuration version (we support older styles for -# backwards compatibility). Please don't change it unless you know what -# you're doing. -Vagrant.configure("2") do |config| - - required_plugins = %w( vagrant-vbguest vagrant-disksize ) - _retry = false - required_plugins.each do |plugin| - unless Vagrant.has_plugin? plugin - system "vagrant plugin install #{plugin}" - _retry=true - end - end - - if (_retry) - exec "vagrant " + ARGV.join(' ') - end - - config.vm.box = "debian/bullseye64" - config.vm.hostname = 'kaz-vm' - config.disksize.size = '32GB' - - # Disable automatic box update checking. If you disable this, then - # boxes will only be checked for updates when the user runs - # `vagrant box outdated`. This is not recommended. - # config.vm.box_check_update = false - - # Create a forwarded port mapping which allows access to a specific port - # within the machine from a port on the host machine. In the example below, - # accessing "localhost:8080" will access port 80 on the guest machine. - # config.vm.network "forwarded_port", guest: 80, host: 8080 - - # Create a private network, which allows host-only access to the machine - # using a specific IP. - # config.vm.network "private_network", ip: "192.168.33.10" - - # Create a public network, which generally matched to bridged network. - # Bridged networks make the machine appear as another physical device on - # your network. - # config.vm.network "public_network" - - # Share an additional folder to the guest VM. The first argument is - # the path on the host to the actual folder. The second argument is - # the path on the guest to mount the folder. And the optional third - # argument is a set of non-required options. - # config.vm.synced_folder "data", "/vagrant_data" - # config.vm.synced_folder "..", "/root/mi-lxc", create:true, type:"rsync", - # rsync__exclude: [".git/", "zzlocal/", "vagrant/"] - - # Provider-specific configuration so you can fine-tune various - # backing providers for Vagrant. These expose provider-specific options. - # Example for VirtualBox: - # - config.vm.provider "virtualbox" do |vb| - # # Display the VirtualBox GUI when booting the machine - # vb.gui = true - # - # # Customize the amount of memory on the VM: - vb.memory = "4096" - vb.cpus="2" - vb.name = "kaz-vm" - vb.customize ["modifyvm", :id, "--vram", "64", "--clipboard-mode", "bidirectional", '--graphicscontroller', 'vmsvga', '--natnet1', '192.168.64.0/24'] - vb.gui = true - - end - - # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies - # such as FTP and Heroku are also available. See the documentation at - # https://docs.vagrantup.com/v2/push/atlas.html for more information. - # config.push.define "atlas" do |push| - # push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME" - # end - - # Enable provisioning with a shell script. Additional provisioners such as - # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the - # documentation for more information about their specific syntax and use. - - #permet d'avoir un répertoire partagé entre la VM et le host - config.vm.synced_folder "/tmp/", "/tmp_host" - config.vm.synced_folder "files/", "/root/kaz-vagrant" - - config.vm.provision "shell" do |s| - s.inline = "/vagrant/files/vm-provision.sh" - s.env = {"KAZGUARD" => "true", "HOSTLANG" => ENV['LANG'], "NOKAZ" => ENV['NOKAZ'], "KAZBRANCH" => ENV['KAZBRANCH']} - end -end diff --git a/init.sh b/init.sh deleted file mode 100755 index a2868f5..0000000 --- a/init.sh +++ /dev/null @@ -1,162 +0,0 @@ -#!/bin/bash - -### Personalisation de la VM - -cd "$(dirname $0)" - -BOLD='' -RED='' -GREEN='' -YELLOW='' -BLUE='' -MAGENTA='' -CYAN='' -NC='' # No Color -NL=' -' - -mkdir -p ./files/kaz/log/ ./files/kaz/download/ ./files/kaz/git/ -chmod a+rxw ./files/kaz/log/ ./files/kaz/download/ ./files/kaz/git/ - -cp Vagrantfile.dist Vagrantfile - -OLD_MEN=$(grep vb.memory Vagrantfile | sed -e 's%.*vb.memory\s*=\s*"\([^"]*\)".*%\1%') -OLD_CUPS=$(grep vb.cpus Vagrantfile | sed -e 's%.*vb.cpus\s*=\s*"\([^"]*\)".*%\1%') -MEM=$(expr $(head -1 /proc/meminfo | awk '{print $2}') / 4096) -CUP=$(expr $(nproc) / 2) - -cat < ${MEM} - CUP: ${OLD_CUPS} => ${CUP} -${NC} -Update './Vagrantfile' -EOF - -sed -i Vagrantfile \ - -e 's%vb.memory\s*=\s*"[^"]*"%vb.memory = "'${MEM}'"%' \ - -e 's%vb.cpus\s*=\s*"[^"]*"%vb.cpus = "'${CUP}'"%' - - -APT_CONF="files/.apt-mirror-config" -if [ -f "${APT_CONF}" ]; then - . "${APT_CONF}" -fi - -### Personalisation d'un cache apt -if [ -z "${APT_MIRROR_DEBIAN}" ]; then - APT_MIRROR_DEBIAN=$(grep "deb\s.*/debian[^-]" /etc/apt/sources.list | head -1 | sed -e "s%.*deb\s.*://\([^/]*\)/debian.*%\1%") -fi -if [ -z "${APT_MIRROR_DEBIAN_SECURITY}" ]; then - APT_MIRROR_DEBIAN_SECURITY=$(grep "deb\s.*/debian-security" /etc/apt/sources.list | head -1 | sed -e "s%.*deb\s.*://\([^/]*\)/debian-security.*%\1%") -fi -if [ -z "${APT_MIRROR_UBUNTU}" ]; then - APT_MIRROR_UBUNTU=$(grep "deb\s.*://\([^/]*\)/ubuntu" /etc/apt/sources.list | head -1 | sed -e "s%.*deb\s.*://\([^/]*\)/ubuntu.*%\1%") -fi -if [ -z "${APT_MIRROR_UBUNTU_SECURITY}" ]; then - APT_MIRROR_UBUNTU_SECURITY=$(grep "deb\s.*://\([^/]*\)/ubuntu.*-security" /etc/apt/sources.list | head -1 | sed -e "s%.*deb\s.*://\([^/]*\)/ubuntu.*%\1%") -fi - -if [ -z "${APT_MIRROR_UBUNTU}" ]; then - APT_MIRROR_UBUNTU="${APT_MIRROR_DEBIAN}" -fi -if [ -z "${APT_MIRROR_UBUNTU_SECURITY}" ]; then - APT_MIRROR_UBUNTU_SECURITY="${APT_MIRROR_DEBIAN_SECURITY}" -fi - -while : ; do - cat < "${APT_CONF}" < "${PROXY_CONF}" < "${CUSTOM_CONF}" - fi - chmod a+x "${CUSTOM_CONF}" - if ! grep -qw "${editor}" "${CUSTOM_CONF}" 2> /dev/null ; then - echo "DEBIAN_FRONTEND=noninteractive apt-get install -y ${editor}" >> "${CUSTOM_CONF}" - echo "rsync -a /vagrant/files/.emacs* /root/" >> "${CUSTOM_CONF}" - fi - break;; - ""|[Nn]* ) break;; - * ) echo "Please answer joe, emacs, vim or no.";; - esac -done