2017-03-03 15:45:04 +01:00
|
|
|
# -*- mode: ruby -*-
|
|
|
|
# vi: set ft=ruby :
|
|
|
|
|
2021-10-21 17:16:24 +02:00
|
|
|
#
|
|
|
|
# Tweak guest CPUS and MEMORY using:
|
2022-01-10 07:20:45 +01:00
|
|
|
# export VAGRANT_NO_PORT_FORWARDING=true
|
2021-10-21 17:16:24 +02:00
|
|
|
# export VAGRANT_CPUS=4
|
|
|
|
# export VAGRANT_MEMORY=4096
|
2022-03-29 14:25:34 +02:00
|
|
|
# vagrant up buster
|
2021-10-21 17:16:24 +02:00
|
|
|
#
|
2017-03-03 15:45:04 +01:00
|
|
|
|
2021-10-21 17:16:24 +02:00
|
|
|
Vagrant.configure('2') do |config|
|
2022-01-10 07:20:45 +01:00
|
|
|
if ! ENV.fetch('VAGRANT_NO_PORT_FORWARDING', 'false') == 'true'
|
|
|
|
config.vm.network 'forwarded_port', guest: 8080, host: 8080 # web
|
|
|
|
config.vm.network 'forwarded_port', guest: 8081, host: 8081 # api
|
|
|
|
config.vm.network 'forwarded_port', guest: 8000, host: 8000 # icecast2
|
|
|
|
config.vm.network 'forwarded_port', guest: 8001, host: 8001 # liquidsoap
|
|
|
|
config.vm.network 'forwarded_port', guest: 8002, host: 8002 # liquidsoap
|
|
|
|
config.vm.network 'forwarded_port', guest: 5432, host: 5432 # database
|
|
|
|
end
|
2017-03-03 15:45:04 +01:00
|
|
|
|
2021-10-21 17:16:24 +02:00
|
|
|
config.vm.provider 'virtualbox' do |v|
|
|
|
|
v.cpus = ENV.fetch('VAGRANT_CPUS', 2)
|
|
|
|
v.memory = ENV.fetch('VAGRANT_MEMORY', 1024)
|
2017-03-07 15:13:26 +01:00
|
|
|
|
2021-10-21 17:16:24 +02:00
|
|
|
# Enable audio drivers on VM settings
|
|
|
|
# See https://github.com/geoffreyplitt/vagrant-audio
|
|
|
|
if RUBY_PLATFORM =~ /darwin/
|
|
|
|
v.customize [
|
|
|
|
'modifyvm', :id,
|
|
|
|
'--audio', 'coreaudio',
|
|
|
|
'--audiocontroller', 'hda' # choices: hda sb16 ac97
|
|
|
|
]
|
|
|
|
elsif RUBY_PLATFORM =~ /mingw|mswin|bccwin|cygwin|emx/
|
|
|
|
v.customize [
|
|
|
|
'modifyvm', :id,
|
|
|
|
'--audio', 'dsound',
|
|
|
|
'--audiocontroller', 'ac97'
|
|
|
|
]
|
2017-03-07 15:13:26 +01:00
|
|
|
end
|
2017-03-07 12:18:34 +01:00
|
|
|
end
|
|
|
|
|
2021-10-21 17:16:24 +02:00
|
|
|
config.vm.provider 'libvirt' do |v|
|
|
|
|
v.cpus = ENV.fetch('VAGRANT_CPUS', 2)
|
|
|
|
v.memory = ENV.fetch('VAGRANT_MEMORY', 1024)
|
2021-09-21 10:39:23 +02:00
|
|
|
end
|
|
|
|
|
2021-10-21 17:16:24 +02:00
|
|
|
# NFS
|
|
|
|
def setup_nfs(config, nfs_version = nil)
|
|
|
|
config.vm.network 'private_network', ip: '192.168.10.100'
|
|
|
|
nfs_path = '.'
|
2017-03-08 12:39:59 +01:00
|
|
|
|
2021-10-21 17:16:24 +02:00
|
|
|
# NFS macOS support
|
|
|
|
if Dir.exist?('/System/Volumes/Data')
|
|
|
|
nfs_path = '/System/Volumes/Data' + Dir.pwd
|
|
|
|
end
|
|
|
|
|
|
|
|
# See https://www.vagrantup.com/docs/synced-folders/nfs#nfs-synced-folder-options
|
|
|
|
case
|
|
|
|
when nfs_version.nil? then config.vm.synced_folder nfs_path, '/vagrant', type: 'nfs'
|
|
|
|
when nfs_version == 4 then config.vm.synced_folder nfs_path, '/vagrant', type: 'nfs',
|
|
|
|
nfs_version: 4,
|
|
|
|
nfs_udp: false
|
|
|
|
else
|
|
|
|
raise 'Invalid nfs_version provided'
|
|
|
|
end
|
2019-01-10 08:08:45 +01:00
|
|
|
end
|
2021-10-21 17:16:24 +02:00
|
|
|
|
|
|
|
def setup_libretime(config, prepare_script, install_args = '')
|
|
|
|
config.vm.provision 'prepare',
|
|
|
|
type: 'shell',
|
|
|
|
path: 'installer/vagrant/%s' % prepare_script
|
|
|
|
|
|
|
|
$script = <<-SCRIPT
|
|
|
|
cd /vagrant
|
|
|
|
./install \
|
|
|
|
--force \
|
|
|
|
--in-place \
|
|
|
|
--verbose \
|
|
|
|
--postgres \
|
|
|
|
--apache \
|
|
|
|
--icecast \
|
|
|
|
--web-port=8080 \
|
|
|
|
#{install_args}
|
|
|
|
SCRIPT
|
|
|
|
|
|
|
|
config.vm.provision 'install', type: 'shell', inline: $script
|
2017-03-08 12:39:59 +01:00
|
|
|
end
|
|
|
|
|
2021-10-21 17:16:24 +02:00
|
|
|
# Define all the OS boxes we support
|
2022-03-29 14:25:34 +02:00
|
|
|
config.vm.define "focal" do |os|
|
2021-11-04 08:55:50 +01:00
|
|
|
os.vm.box = "bento/ubuntu-20.04"
|
2021-11-08 09:12:00 +01:00
|
|
|
setup_libretime(os, "debian.sh")
|
2021-11-04 08:55:50 +01:00
|
|
|
end
|
|
|
|
|
2022-03-29 14:25:34 +02:00
|
|
|
config.vm.define 'bionic' do |os|
|
2021-10-21 17:16:24 +02:00
|
|
|
os.vm.box = 'bento/ubuntu-18.04'
|
|
|
|
setup_nfs(config)
|
|
|
|
setup_libretime(os, 'debian.sh')
|
|
|
|
end
|
2017-03-08 12:39:59 +01:00
|
|
|
|
2022-03-29 14:25:34 +02:00
|
|
|
config.vm.define 'bullseye' do |os|
|
2021-11-09 10:21:40 +01:00
|
|
|
os.vm.box = 'debian/bullseye64'
|
|
|
|
config.vm.provider 'virtualbox' do |v, override|
|
|
|
|
override.vm.box = 'bento/debian-11'
|
|
|
|
end
|
|
|
|
setup_nfs(config, 4)
|
|
|
|
setup_libretime(os, 'debian.sh')
|
|
|
|
end
|
|
|
|
|
2022-03-29 14:25:34 +02:00
|
|
|
config.vm.define 'buster' do |os|
|
2021-10-21 17:16:24 +02:00
|
|
|
os.vm.box = 'debian/buster64'
|
|
|
|
config.vm.provider 'virtualbox' do |v, override|
|
|
|
|
override.vm.box = 'bento/debian-10'
|
|
|
|
end
|
|
|
|
setup_nfs(config)
|
|
|
|
setup_libretime(os, 'debian.sh')
|
2017-03-08 12:39:59 +01:00
|
|
|
end
|
2017-03-03 15:45:04 +01:00
|
|
|
|
2021-10-21 17:16:24 +02:00
|
|
|
config.vm.define 'centos' do |os|
|
|
|
|
os.vm.box = 'centos/8'
|
|
|
|
setup_nfs(config)
|
|
|
|
setup_libretime(os, 'centos.sh', '--selinux')
|
|
|
|
end
|
2017-03-03 15:45:04 +01:00
|
|
|
end
|