63 lines
2.2 KiB
Ruby
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
|