Files

63 lines
2.2 KiB
Ruby

# frozen_string_literal: true
uptimelink_root = ENV.fetch('UPTIMELINK_ROOT', File.expand_path('..', __dir__))
controller_ip = ENV.fetch('UPTIMELINK_VAGRANT_CONTROLLER_IP', '192.168.56.10')
runner_ip = ENV.fetch('UPTIMELINK_VAGRANT_RUNNER_IP', '192.168.56.11')
controller_port = ENV.fetch('UPTIMELINK_VAGRANT_CONTROLLER_PORT', '8080')
runner_id = ENV.fetch('UPTIMELINK_VAGRANT_RUNNER_ID', 'vagrant-runner-1')
runner_token = ENV.fetch('UPTIMELINK_VAGRANT_RUNNER_TOKEN', 'vagrant-token')
target_port = ENV.fetch('UPTIMELINK_VAGRANT_TARGET_PORT', '18081')
Vagrant.configure('2') do |config|
config.vm.box = ENV.fetch('UPTIMELINK_VAGRANT_BOX', 'bento/ubuntu-24.04')
config.vm.synced_folder '.', '/vagrant', disabled: true
config.vm.synced_folder uptimelink_root, '/uptime.link',
type: 'rsync',
owner: 'vagrant',
group: 'vagrant',
rsync__auto: false,
rsync__exclude: [
'.git/',
'.nogit/',
'.vagrant/',
'node_modules/',
'**/.git/',
'**/.nogit/',
'**/.vagrant/',
'**/node_modules/',
'**/.cache/',
'**/.pnpm-store/',
'**/dist/',
'**/dist_*/',
]
config.vm.provider 'virtualbox' do |vb|
vb.cpus = ENV.fetch('UPTIMELINK_VAGRANT_CPUS', '2').to_i
vb.memory = ENV.fetch('UPTIMELINK_VAGRANT_MEMORY', '2048').to_i
end
config.vm.provider 'libvirt' do |lv|
lv.cpus = ENV.fetch('UPTIMELINK_VAGRANT_CPUS', '2').to_i
lv.memory = ENV.fetch('UPTIMELINK_VAGRANT_MEMORY', '2048').to_i
end
config.vm.define 'controller', primary: true do |controller|
controller.vm.hostname = 'uptime-controller'
controller.vm.network 'private_network', ip: controller_ip
controller.vm.provision 'shell', path: 'scripts/provision-common.sh'
end
config.vm.define 'runner' do |runner|
runner.vm.hostname = 'uptime-runner'
runner.vm.network 'private_network', ip: runner_ip
runner.vm.provision 'shell', path: 'scripts/provision-common.sh'
runner.vm.provision 'shell', path: 'scripts/provision-runner.sh', env: {
'UPTIMELINK_CONTROLLER_URL' => "http://#{controller_ip}:#{controller_port}",
'UPTIMELINK_RUNNER_ID' => runner_id,
'UPTIMELINK_RUNNER_TOKEN' => runner_token,
'UPTIMELINK_TARGET_PORT' => target_port,
}
end
end