# -*- mode: ruby -*- # vi: set ft=ruby : # Default user # ---------------------- # login: vagrant # pass: vagrant Vagrant.configure("2") do |config| # Basic configuration config.vm.provider "virtualbox" config.vm.box = "ubuntu/focal64" config.ssh.forward_agent = true # 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 "../../..", "/home/vagrant/Rublon-Linux" config.vm.provider "virtualbox" do |vb| vb.memory = 2560 vb.vcpu = 4 # Display the VirtualBox GUI when booting the machine vb.gui = false # Fix for 'SSH auth method: Private key' stuck vb.customize ["modifyvm", :id, "--cableconnected1", "on"] end # Enable provisioning with a shell script. Additional provisioners such as # Ansible, Chef, Docker, Puppet and Salt are also available. Please see the # documentation for more information about their specific syntax and use. config.vm.provision "shell", inline: <<-SHELL export BASE=/home/vagrant/Rublon-Linux export DISTRO=ubuntu2004 export BUILDDIR=${BASE}/${DISTRO} DEBIAN_FRONTEND=noniteracactive\ apt-get update && apt-get install -y \ gcc \ g++ \ build-essential \ openssh-server \ libcurl4-openssl-dev \ libpam0g-dev \ libssl-dev \ git \ rapidjson-dev \ cmake # get dependencies mkdir ${BUILDDIR} -p; cd ${BUILDDIR} git clone --recurse-submodules https://github.com/socketio/socket.io-client-cpp.git cmake -B socket.io-build -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release socket.io-client-cpp cmake --build socket.io-build --target install -- -j ln -s /usr/bin/make /usr/bin/gmake # Build project cd ${BUILDDIR} cmake -B rublon_ssh-build .. cmake --build rublon_ssh-build -- -j cmake --build rublon_ssh-build --target package -- -j # Register Rublon pam SSHD_CONF=/etc/ssh/sshd_config grep -qe "^PasswordAuthentication" $SSHD_CONF && sed -i 's/^#*PasswordAuthentication[[:space:]]\+.*/PasswordAuthentication yes/' $SSHD_CONF useradd -s /bin/bash -m bwi echo "bwi:bwi"|chpasswd sudo dpkg -i /home/vagrant/Rublon-Linux/${BUILDDIR}/*pam_* cp /home/vagrant/Rublon-Linux/rublon.config /etc/rublon.config service sshd restart SHELL end