Add Vagrantfile
This commit is contained in:
parent
878bc194c4
commit
e25c79da76
2 changed files with 91 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
.vagrant
|
90
Vagrantfile
vendored
Normal file
90
Vagrantfile
vendored
Normal file
|
@ -0,0 +1,90 @@
|
|||
# -*- mode: ruby -*-
|
||||
# vi: set ft=ruby :
|
||||
|
||||
# find ssh pub key
|
||||
def guess_public_key
|
||||
%w(ecdsa rsa dsa).each do |method|
|
||||
path = File.expand_path "~/.ssh/id_#{method}.pub"
|
||||
return IO.read path if File.exist? path
|
||||
end
|
||||
fail 'Public key not found.'
|
||||
end
|
||||
|
||||
# provision script
|
||||
provision = <<SCRIPT
|
||||
# SSH
|
||||
mkdir -p /root/.ssh
|
||||
echo \"#{guess_public_key}\" >> /root/.ssh/authorized_keys
|
||||
# Timezone
|
||||
timedatectl set-timezone Europe/Paris
|
||||
|
||||
# Kernel Options
|
||||
mkdir -p /etc/default/grub.d
|
||||
echo 'GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT apparmor=1 security=apparmor"' | tee /etc/default/grub.d/apparmor.cfg
|
||||
update-grub
|
||||
|
||||
SCRIPT
|
||||
|
||||
# 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|
|
||||
# The most common configuration options are documented and commented below.
|
||||
# For a complete reference, please see the online documentation at
|
||||
# https://docs.vagrantup.com.
|
||||
|
||||
# Ensure plugins
|
||||
required_plugins = %w(vagrant-vbguest vagrant-disksize vagrant-hostmanager)
|
||||
if ARGV[0] == 'up'
|
||||
required_plugins.each do |plugin|
|
||||
system "vagrant plugin install #{plugin}" unless Vagrant.has_plugin? plugin
|
||||
end
|
||||
end
|
||||
|
||||
# Plugins config
|
||||
config.hostmanager.enabled = true
|
||||
config.hostmanager.manage_host = true
|
||||
config.vbguest.auto_update = true
|
||||
|
||||
# Ensure SSH forward agent
|
||||
config.ssh.forward_agent = true
|
||||
|
||||
# Every Vagrant development environment requires a box. You can search for
|
||||
# boxes at https://vagrantcloud.com/search.
|
||||
config.vm.box = "debian/stretch64"
|
||||
|
||||
# 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 = true
|
||||
|
||||
# Disk size
|
||||
config.disksize.size = "10GB"
|
||||
|
||||
# Hostname
|
||||
config.vm.hostname = "galaxy-vagrant.example.com"
|
||||
|
||||
# Example for VirtualBox:
|
||||
config.vm.provider "virtualbox" do |vb, override|
|
||||
# Name
|
||||
vb.name = "Galaxy-Vagrant"
|
||||
|
||||
# Display the VirtualBox GUI when booting the machine
|
||||
vb.gui = false
|
||||
|
||||
# Customize the amount of memory on the VM:
|
||||
vb.memory = "512"
|
||||
|
||||
# CPUs
|
||||
vb.cpus = 1
|
||||
|
||||
# IP
|
||||
override.vm.network :private_network, ip: "192.142.42.43"
|
||||
|
||||
end
|
||||
|
||||
# Provision
|
||||
config.vm.provision :shell, inline: provision
|
||||
|
||||
end
|
Loading…
Reference in a new issue