snipe-it/Vagrantfile

112 lines
4.5 KiB
Ruby
Raw Normal View History

# -*- mode: ruby -*-
# vi: set ft=ruby :
SNIPEIT_SH_URL= "https://raw.githubusercontent.com/snipe/snipe-it/master/snipeit.sh"
NETWORK_BRIDGE= "en0: Wi-Fi (AirPort)"
Vagrant.configure("2") do |config|
config.vm.define "bionic" do |bionic|
bionic.vm.box = "ubuntu/bionic64"
bionic.vm.hostname = 'bionic'
VAGRANT: Fix Ubuntu Development VMs (#6909) * GITIGNORE: Add vagrant log and ansible retry files This patch adds the following to the project's .gitignore file: - Vagrant's log file - Ansible's retry files Signed-off-by: Mark Stenglein <mark@stengle.in> * ANSIBLE: Add Ubuntu Ansible playbook for dev env This patch adds an Ansible playbook to provision an Ubuntu based development environment. This playbook is fully idempotent and can be run multiple times without negative consequences. Signed-off-by: Mark Stenglein <mark@stengle.in> * VAGRANTFILE: Clean Vagrantfile There was a lot of extra VMs being provisioned by the existing Vagrantfile. Some of this may need to come back but I am removing it with this commit to demonstrate that this is all that is needed. Signed-off-by: Mark Stenglein <mark@stengle.in> * ANSIBLE: UBUNTU: PLAYBOOK: Add .env configuration I missed the configuration of the .env file in the initial commit. This patch adds these configuration steps as well as the needed Cron job for the Artisan scheduler. Signed-off-by: Mark Stenglein <mark@stengle.in> * Revert "VAGRANTFILE: Clean Vagrantfile" This reverts commit a608a30d6b387bea7da8394589f25ba6cb7dd479. * VAGRANTFILE: Fix Ubuntu Vagrant Development Boxes This patch addresses problems with the existing Vagrant deployment configurations for the Ubuntu VMs. - The vagrant file is configuring the VMs for an incorrect bridge interface. Fixed by changing the config to use the default networking as well as a port-forward. - Moves provisioning over to the Ansible-Local playbook I wrote. Signed-off-by: Mark Stenglein <mark@stengle.in>
2021-04-05 20:35:04 -07:00
bionic.vm.network "forwarded_port", guest: 80, host: 8080
bionic.vm.synced_folder ".", "/vagrant", :owner => 'www-data',
:group => 'vagrant', :mount_options => ['dmode=775', 'fmode=775']
bionic.vm.provision "ansible_local" do |ansible|
ansible.playbook = "ansible/ubuntu/vagrant_playbook.yml"
end
end
config.vm.define "xenial" do |xenial|
xenial.vm.box = "ubuntu/xenial64"
xenial.vm.hostname = 'xenial'
VAGRANT: Fix Ubuntu Development VMs (#6909) * GITIGNORE: Add vagrant log and ansible retry files This patch adds the following to the project's .gitignore file: - Vagrant's log file - Ansible's retry files Signed-off-by: Mark Stenglein <mark@stengle.in> * ANSIBLE: Add Ubuntu Ansible playbook for dev env This patch adds an Ansible playbook to provision an Ubuntu based development environment. This playbook is fully idempotent and can be run multiple times without negative consequences. Signed-off-by: Mark Stenglein <mark@stengle.in> * VAGRANTFILE: Clean Vagrantfile There was a lot of extra VMs being provisioned by the existing Vagrantfile. Some of this may need to come back but I am removing it with this commit to demonstrate that this is all that is needed. Signed-off-by: Mark Stenglein <mark@stengle.in> * ANSIBLE: UBUNTU: PLAYBOOK: Add .env configuration I missed the configuration of the .env file in the initial commit. This patch adds these configuration steps as well as the needed Cron job for the Artisan scheduler. Signed-off-by: Mark Stenglein <mark@stengle.in> * Revert "VAGRANTFILE: Clean Vagrantfile" This reverts commit a608a30d6b387bea7da8394589f25ba6cb7dd479. * VAGRANTFILE: Fix Ubuntu Vagrant Development Boxes This patch addresses problems with the existing Vagrant deployment configurations for the Ubuntu VMs. - The vagrant file is configuring the VMs for an incorrect bridge interface. Fixed by changing the config to use the default networking as well as a port-forward. - Moves provisioning over to the Ansible-Local playbook I wrote. Signed-off-by: Mark Stenglein <mark@stengle.in>
2021-04-05 20:35:04 -07:00
xenial.vm.network "forwarded_port", guest: 80, host: 8080
xenial.vm.synced_folder ".", "/vagrant", :owner => 'www-data',
:group => 'vagrant', :mount_options => ['dmode=775', 'fmode=775']
xenial.vm.provision "ansible_local" do |ansible|
ansible.playbook = "ansible/ubuntu/vagrant_playbook.yml"
end
end
config.vm.define "trusty" do |trusty|
trusty.vm.box = "ubuntu/trusty32"
trusty.vm.hostname = 'trusty'
VAGRANT: Fix Ubuntu Development VMs (#6909) * GITIGNORE: Add vagrant log and ansible retry files This patch adds the following to the project's .gitignore file: - Vagrant's log file - Ansible's retry files Signed-off-by: Mark Stenglein <mark@stengle.in> * ANSIBLE: Add Ubuntu Ansible playbook for dev env This patch adds an Ansible playbook to provision an Ubuntu based development environment. This playbook is fully idempotent and can be run multiple times without negative consequences. Signed-off-by: Mark Stenglein <mark@stengle.in> * VAGRANTFILE: Clean Vagrantfile There was a lot of extra VMs being provisioned by the existing Vagrantfile. Some of this may need to come back but I am removing it with this commit to demonstrate that this is all that is needed. Signed-off-by: Mark Stenglein <mark@stengle.in> * ANSIBLE: UBUNTU: PLAYBOOK: Add .env configuration I missed the configuration of the .env file in the initial commit. This patch adds these configuration steps as well as the needed Cron job for the Artisan scheduler. Signed-off-by: Mark Stenglein <mark@stengle.in> * Revert "VAGRANTFILE: Clean Vagrantfile" This reverts commit a608a30d6b387bea7da8394589f25ba6cb7dd479. * VAGRANTFILE: Fix Ubuntu Vagrant Development Boxes This patch addresses problems with the existing Vagrant deployment configurations for the Ubuntu VMs. - The vagrant file is configuring the VMs for an incorrect bridge interface. Fixed by changing the config to use the default networking as well as a port-forward. - Moves provisioning over to the Ansible-Local playbook I wrote. Signed-off-by: Mark Stenglein <mark@stengle.in>
2021-04-05 20:35:04 -07:00
trusty.vm.network "forwarded_port", guest: 80, host: 8080
trusty.vm.synced_folder ".", "/vagrant", :owner => 'www-data',
:group => 'vagrant', :mount_options => ['dmode=775', 'fmode=775']
trusty.vm.provision "ansible_local" do |ansible|
ansible.playbook = "ansible/ubuntu/vagrant_playbook.yml"
end
end
config.vm.define "centos7" do |centos7|
centos7.vm.box = "centos/7"
centos7.vm.hostname = 'centos7'
centos7.vm.network "public_network", bridge: NETWORK_BRIDGE
centos7.vm.provision :shell, :inline => "sudo yum -y update"
centos7.vm.provision :shell, :inline => "yum install -y wget"
centos7.vm.provision :shell, :inline => "wget #{SNIPEIT_SH_URL}"
centos7.vm.provision :shell, :inline => "chmod 755 snipeit.sh"
end
config.vm.define "centos6" do |centos6|
centos6.vm.box = "centos/6"
centos6.vm.hostname = 'centos6'
centos6.vm.network "public_network", bridge: NETWORK_BRIDGE
centos6.vm.provision :shell, :inline => "sudo yum -y update"
centos6.vm.provision :shell, :inline => "wget #{SNIPEIT_SH_URL}"
centos6.vm.provision :shell, :inline => "chmod 755 snipeit.sh"
end
config.vm.define "jessie" do |jessie|
jessie.vm.box = "debian/jessie64"
jessie.vm.hostname = 'debian8'
jessie.vm.network "public_network", bridge: NETWORK_BRIDGE
jessie.vm.provision :shell, :inline => "wget #{SNIPEIT_SH_URL}"
jessie.vm.provision :shell, :inline => "chmod 755 snipeit.sh"
end
config.vm.define "stretch" do |stretch|
stretch.vm.box = "debian/stretch64"
stretch.vm.hostname = 'debian9'
stretch.vm.network "public_network", bridge: NETWORK_BRIDGE
stretch.vm.provision :shell, :inline => "wget #{SNIPEIT_SH_URL}"
stretch.vm.provision :shell, :inline => "chmod 755 snipeit.sh"
end
config.vm.define "fedora27" do |fedora27|
fedora27.vm.box = "fedora/27-cloud-base"
fedora27.vm.hostname = 'fedora27'
fedora27.vm.network "public_network", bridge: NETWORK_BRIDGE
fedora27.vm.provision :shell, :inline => "dnf -y install wget"
fedora27.vm.provision :shell, :inline => "wget #{SNIPEIT_SH_URL}"
fedora27.vm.provision :shell, :inline => "chmod 755 snipeit.sh"
end
config.vm.define "fedora26" do |fedora26|
fedora26.vm.box = "fedora/26-cloud-base"
fedora26.vm.hostname = 'fedora26'
fedora26.vm.network "public_network", bridge: NETWORK_BRIDGE
fedora26.vm.provision :shell, :inline => "dnf -y install wget"
fedora26.vm.provision :shell, :inline => "wget #{SNIPEIT_SH_URL}"
fedora26.vm.provision :shell, :inline => "chmod 755 snipeit.sh"
end
config.vm.define "freebsd" do |freebsd|
freebsd.vm.box = "freebsd/FreeBSD-11.2-RELEASE"
freebsd.vm.hostname = 'freebsd12'
freebsd.vm.network "forwarded_port", guest: 80, host: 8080
freebsd.vm.network "forwarded_port", guest:3306, host:3306 # mysql
freebsd.vm.network "private_network", type: "dhcp"
freebsd.ssh.shell = "sh"
freebsd.vm.base_mac = "080027D14C66"
freebsd.vm.synced_folder ".", "/vagrant", :nfs => true, id: "vagrant-root",
:mount_options => ['rw', 'vers=3', 'tcp', 'actimeo=2']
freebsd.vm.provision "shell", inline: <<-SHELL
pkg install -y python27;
SHELL
freebsd.vm.provision "ansible" do |ansible|
ansible.playbook = "ansible/freebsd/vagrant_playbook.yml"
end
end
end