OpenSearch/vagrant/README.md

109 lines
3.3 KiB
Markdown

## Vagrant build environment
This provides a vagrant box for building the C++ side of Prelert (and the Java side,
although that is easily accomplished outside vagrant).
Provisioning the box will take a fair amount of time, since it needs to download
and compile a number of dependencies.
### Details
- Ubuntu Trusty64 (14.04.5 LTS)
- 25% of host's memory
- 100% host's cores
- Maps prelert source repository to `/home/vagrant/prelert/src`
- Directory is shared with the host, so you can point your IDE to the prelert repo
and build inside vagrant
- Maps prelert build directory to `/home/vagrant/prelert/build`
- Changes into `/home/vagrant/prelert/src` on login
### Pre-baked box
Don't feel like compiling the entire box? No fear, there's a pre-baked box available
on S3. It is ~1.1gb to download:
```bash
# Change into some random directory to download the box.
# Doesn't matter where this goes, but *cannot* go into prelert-legacy/vagrant
$ cd ~/some_directory
# Export the path to your prelert-legacy repo. This is so the box knows where
# to sync the folders
$ export PRELERT_SRC_HOME=/path/to/prelert-legacy
# Download the box from S3
$ s3cmd get s3://prelert-elastic-dump/prelert_env.box
# ...
# Downloading...
# ...
$ vagrant box add prelert prelert_env.box
$ vagrant init prelert
$ vagrant up
$ vagrant ssh
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 3.13.0-96-generic x86_64)
...
...
Last login: Tue Oct 4 16:06:32 2016 from 10.0.2.2
vagrant@vagrant-ubuntu-trusty-64:~/prelert/src$
```
Once you've logged into the box, you'll be in the prelert source directory. You
can build immediately via:
```bash
vagrant@vagrant-ubuntu-trusty-64:~/prelert/src$ gradle cppmake
```
The pre-baked box has already compiled prelert once, so subsequent compilations
should happen considerably faster.
### Compiling from Scratch
If you feel like compiling everything from scratch instead of downloading the pre-baked
box, simply `vagrant up` and let the provisioners run:
```bash
$ cd prelert-legacy/vagrant
$ vagrant up
# ...
# wait while vagrant provisions
# ...
$ vagrant ssh
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 3.13.0-96-generic x86_64)
...
...
Last login: Tue Oct 4 16:06:32 2016 from 10.0.2.2
vagrant@vagrant-ubuntu-trusty-64:~/prelert/src$
```
Once you've logged into the box, you'll be in the prelert source directory. You
can build immediately via:
```bash
vagrant@vagrant-ubuntu-trusty-64:~/prelert/src$ gradle cppmake
# ...
# much building
# ...
```
### Suspending your box
Once you've provisioned a box, you can use `vagrant suspend` to "sleep" the box.
This has the advantage of rebooting quickly when you `vagrant up`, and returns you
to exactly what you were doing. On the downside, it eats more disk space since it
needs to sleep the entire image.
You can alternatively use `vagrant halt`, which gracefully powers down the machine.
Rebooting via `vagrant up` takes longer since you are rebooting the entire OS,
but it saves more disk space.
### Fixing a broken box
If you accidentally kill the provisioning process before it completes, you can
attempt to reprovision it with `vagrant reload --provision`. That will run
the provisioners that did not complete previously.
If your box is still horribly broken, you can destroy it with `vagrant destroy`
and try again with `vagrant up`