Last active
August 28, 2019 08:16
-
-
Save oppara/6fe67246cb19c5608b478ede92c17e5a to your computer and use it in GitHub Desktop.
osquery/osquery https://github.com/osquery/osquery
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# https://github.com/osquery/osquery/blob/master/Vagrantfile | |
targets = { | |
"win10" => { | |
"box" => "inclusivedesign/windows10-eval" | |
}, | |
"macos10.12" => { | |
"box" => "jhcook/macos-sierra" | |
}, | |
"macos10.13" => { | |
"box" => "monsenso/macos-10.13" | |
}, | |
"debian7" => { | |
"box" => "bento/debian-7" | |
}, | |
"debian8" => { | |
"box" => "bento/debian-8" | |
}, | |
"debian9" => { | |
"box" => "bento/debian-9" | |
}, | |
"centos6" => { | |
"box" => "elastic/centos-6-x86_64" | |
}, | |
"centos7" => { | |
"box" => "elastic/centos-7-x86_64" | |
}, | |
"ubuntu15.04" => { | |
"box" => "bento/ubuntu-15.04" | |
}, | |
"ubuntu15.10" => { | |
"box" => "bento/ubuntu-15.10" | |
}, | |
"ubuntu16.04" => { | |
"box" => "bento/ubuntu-16.04" | |
}, | |
"ubuntu16.10" => { | |
"box" => "bento/ubuntu-16.10" | |
}, | |
"ubuntu17.04" => { | |
"box" => "bento/ubuntu-17.04" | |
}, | |
"ubuntu18.04" => { | |
"box" => "ubuntu/bionic64" | |
}, | |
"ubuntu12" => { | |
"box" => "ubuntu/precise64" | |
}, | |
"ubuntu14" => { | |
"box" => "ubuntu/trusty64" | |
}, | |
"ubuntu16" => { | |
"box" => "ubuntu/xenial64" | |
}, | |
"freebsd10" => { | |
"box" => "bento/freebsd-10" | |
}, | |
"freebsd11" => { | |
"box" => "bento/freebsd-11" | |
}, | |
"archlinux" => { | |
"box" => "archlinux/archlinux" | |
}, | |
"suse11" => { | |
"box" => "elastic/sles-11-x86_64" | |
}, | |
"suse12" => { | |
"box" => "elastic/sles-12-x86_64" | |
}, | |
"aws-amazon2015.03" => { | |
"box" => "andytson/aws-dummy", | |
"regions" => { | |
"us-east-1" => "ami-1ecae776", | |
"us-west-1" => "ami-d114f295", | |
"us-west-2" => "ami-e7527ed7" | |
}, | |
"username" => "ec2-user" | |
}, | |
"aws-rhel7.1" => { | |
"box" => "andytson/aws-dummy", | |
"regions" => { | |
"us-east-1" => "ami-12663b7a", | |
"us-west-1" => "ami-a540a5e1", | |
"us-west-2" => "ami-4dbf9e7d" | |
}, | |
"username" => "ec2-user" | |
}, | |
"aws-rhel6.5" => { | |
"box" => "andytson/aws-dummy", | |
"regions" => { | |
"us-east-1" => "ami-1643ff7e", | |
"us-west-1" => "ami-2b171d6e", | |
"us-west-2" => "ami-7df0bd4d" | |
}, | |
"username" => "ec2-user" | |
}, | |
"aws-ubuntu10" => { | |
"box" => "andytson/aws-dummy", | |
"regions" => { | |
"us-east-1" => "ami-1e6f6176", | |
"us-west-1" => "ami-250fe361", | |
"us-west-2" => "ami-1b2a1c2b" | |
}, | |
"username" => "ubuntu" | |
}, | |
"aws-oracle6.6" => { | |
"box" => "andytson/aws-dummy", | |
"regions" => { | |
"us-east-1" => "ami-20e4b748", | |
"us-west-1" => "ami-f3d83db7", | |
"us-west-2" => "ami-b34f6e83" | |
}, | |
"username" => "ec2-user" | |
}, | |
"aws-oracle5.11" => { | |
"box" => "andytson/aws-dummy", | |
"regions" => { | |
"us-east-1" => "ami-0ecd7766", | |
"us-west-1" => "ami-4b00150e", | |
"us-west-2" => "ami-6b57185b" | |
}, | |
"username" => "root" | |
}, | |
} | |
Vagrant.configure("2") do |config| | |
config.vm.provider "virtualbox" do |v| | |
if ENV['OSQUERY_BUILD_CPUS'] | |
v.cpus = ENV['OSQUERY_BUILD_CPUS'].to_i | |
else | |
v.cpus = 2 | |
end | |
if ENV['OSQUERY_BUILD_MEMORY'] | |
v.memory = ENV['OSQUERY_BUILD_MEMORY'].to_i | |
else | |
v.memory = 4096 | |
end | |
end | |
config.vm.provider "vmware_desktop" do |v| | |
if ENV['OSQUERY_BUILD_CPUS'] | |
v.cpus = ENV['OSQUERY_BUILD_CPUS'].to_i | |
else | |
v.cpus = 2 | |
end | |
if ENV['OSQUERY_BUILD_MEMORY'] | |
v.memory = ENV['OSQUERY_BUILD_MEMORY'].to_i | |
else | |
v.memory = 4096 | |
end | |
end | |
config.vm.provider :aws do |aws, override| | |
# Required. Credentials for AWS API. | |
aws.access_key_id = ENV['AWS_ACCESS_KEY_ID'] | |
aws.secret_access_key = ENV['AWS_SECRET_ACCESS_KEY'] | |
# Name of AWS keypair for launching and accessing the EC2 instance. | |
if [ ENV['AWS_KEYPAIR_NAME'] ] | |
aws.keypair_name = ENV['AWS_KEYPAIR_NAME'] | |
end | |
override.ssh.private_key_path = ENV['AWS_SSH_PRIVATE_KEY_PATH'] | |
# Name of AWS security group that allows TCP/22 from vagrant host. | |
if [ ENV['AWS_SECURITY_GROUP'] ] | |
aws.security_groups = [ ENV['AWS_SECURITY_GROUP'] ] | |
end | |
# Set this to the AWS region for EC2 instances. | |
if ENV['AWS_DEFAULT_REGION'] | |
aws.region = ENV['AWS_DEFAULT_REGION'] | |
else | |
aws.region = "us-east-1" | |
end | |
# Set this to the desired AWS instance type. | |
if ENV['AWS_INSTANCE_TYPE'] | |
aws.instance_type = ENV['AWS_INSTANCE_TYPE'] | |
else | |
aws.instance_type = "m3.large" | |
end | |
targets["active_region"] = aws.region | |
# If using a VPC, optionally set a SUBNET_ID. | |
if ENV['AWS_SUBNET_ID'] | |
aws.subnet_id = ENV['AWS_SUBNET_ID'] | |
end | |
end | |
targets.each do |name, target| | |
box = target["box"] | |
config.vm.define name do |build| | |
build.vm.box = box | |
if name.start_with?('aws-') | |
build.vm.provider :aws do |aws, override| | |
if aws.subnet_id != nil | |
aws.associate_public_ip = true | |
end | |
aws.ami = target['regions'][targets["active_region"]] | |
aws.user_data = [ | |
"#!/bin/bash", | |
"echo 'Defaults:" + target['username'] + | |
" !requiretty' > /etc/sudoers.d/999-vagrant-cloud-init-requiretty", | |
"chmod 440 /etc/sudoers.d/999-vagrant-cloud-init-requiretty" | |
].join("\n") | |
override.ssh.username = target['username'] | |
aws.tags = { 'Name' => 'osquery-vagrant-' + name } | |
end | |
build.vm.synced_folder ".", "/vagrant", type: "rsync", | |
rsync__exclude: [ | |
"build", | |
".git/objects", | |
] | |
end | |
if name.start_with?('macos') | |
config.vm.provision "shell", | |
inline: "dseditgroup -o read vagrant || dseditgroup -o create vagrant" | |
build.vm.synced_folder ".", "/vagrant", group: "staff", type: "rsync", | |
rsync__exclude: [ | |
"build", | |
".git/objects", | |
] | |
end | |
if name.start_with?('freebsd') | |
# configure the NICs | |
build.vm.provider :virtualbox do |vb| | |
vb.customize ["modifyvm", :id, "--nictype1", "virtio"] | |
vb.customize ["modifyvm", :id, "--nictype2", "virtio"] | |
end | |
# Private network for NFS | |
build.vm.network :private_network, | |
ip: "192.168.56.101", :mac => "5CA1AB1E0001" | |
build.vm.synced_folder ".", "/vagrant", type: "rsync", | |
rsync__exclude: [ | |
"build", | |
".git/objects", | |
] | |
build.vm.provision 'shell', | |
inline: | |
# Switching to latest may cause failures if dependencies are not built. | |
"sudo sed -i '' -e 's/quarterly/latest/g' /etc/pkg/FreeBSD.conf;"\ | |
"su -m root -c 'hostname vagrant';"\ | |
"su -m root -c 'pkg update -f';"\ | |
"sudo pkg install -y openjdk8 bash git gmake python ruby;"\ | |
"sudo mount -t fdescfs fdesc /dev/fd;"\ | |
"sudo mount -t procfs proc /proc;"\ | |
"echo -e \""\ | |
"fdesc /dev/fd fdescfs rw 0 0\n"\ | |
"proc /proc procfs rw 0 0"\ | |
"\" | sudo tee /etc/fstab;"\ | |
"sudo ln -f `which bash` /bin" | |
end | |
if name.start_with?('ubuntu', 'debian') | |
build.vm.provision 'bootstrap', type: 'shell' do |s| | |
s.inline = 'sudo apt-get update;'\ | |
'sudo apt-get install --yes git make python;' | |
end | |
end | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment