-
Notifications
You must be signed in to change notification settings - Fork 31
/
Vagrantfile
102 lines (88 loc) · 3.98 KB
/
Vagrantfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Comment this out if not using a host-only network
class VagrantPlugins::ProviderVirtualBox::Action::Network
def dhcp_server_matches_config?(dhcp_server, config)
true
end
end
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
config.vm.define "chtcsite"
config.vm.hostname = "chtcsite.vm"
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.
# Every Vagrant development environment requires a box. You can search for
# boxes at https://vagrantcloud.com/search.
config.vm.box = "ubuntu/bionic64"
# Disable automatic box update checking. If you disable this, then
# boxes will only be checked for updates when the user runs
# `vagrant box outdated`. This is not recommended.
# config.vm.box_check_update = false
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
# NOTE: This will enable public access to the opened port
# config.vm.network "forwarded_port", guest: 80, host: 8080
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine and only allow access
# via 127.0.0.1 to disable public access
# config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
# Create a private network, which allows host-only access to the machine
# using a specific IP.
# config.vm.network "private_network", ip: "192.168.33.10"
# Create a public network, which generally matched to bridged network.
# Bridged networks make the machine appear as another physical device on
# your network.
# config.vm.network "public_network"
# Share an additional folder to the guest VM. The first argument is
# the path on the host to the actual folder. The second argument is
# the path on the guest to mount the folder. And the optional third
# argument is a set of non-required options.
config.vm.synced_folder ".", "/chtc-website-source", type: "rsync",
rsync__args: ["--verbose", "--archive", "--delete"]
# Provider-specific configuration so you can fine-tune various
# backing providers for Vagrant. These expose provider-specific options.
# Example for VirtualBox:
#
# config.vm.provider "virtualbox" do |vb|
# # Display the VirtualBox GUI when booting the machine
# vb.gui = true
#
# # Customize the amount of memory on the VM:
# vb.memory = "1024"
# end
#
# View the documentation for the provider you are using for more
# information on available options.
config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get install -y make gcc g++
echo 'export NO_PUSH=1' > /etc/profile.d/NO_PUSH.sh
snap install --classic ruby
gem install bundle
cd /chtc-website-source
runuser -u vagrant -- bundle install
runuser -u vagrant -- git config --global user.name "Vagrant"
runuser -u vagrant -- git config --global user.email "[email protected]"
echo
echo
echo ===============================================================================
echo "Setup complete!"
echo
echo "The repo checkout is in /chtc-website-source."
echo
echo "Run 'script/cibuild to build the pages, and script/cideploy to deploy them."
echo "(cideploy will run all deploy steps except for the actual push.)"
echo ""
echo "Set BRANCH and TARGET_REPO to test deploying to a different branch"
echo "or GitHub repo."
echo
echo "If you make changes to files outside of the image, run 'vagrant reload'"
echo "to restart the VM with these new changes."
SHELL
end