Installation
Enough background info, let's get into the technical steps. Here's a high-level overview of the process to get your range up and running:
- Clone the project locally from Github
- Install dependencies
- Deploy your range using the
stationctl
CLI - Validate the new range by performing the "Functions Check"
- Use
stationctl
to cleanup and reset the environment - Itterate and learn!
Installing Dependencies
Let's kick the process off by installing the required software for your host platform!
A simple and unified user experience is our goal, so we're working to build the dependency installation process into the Station Control CLI, stay tuned. More on stationctl
in a bit!
We have used macOS for the lion's share of the development and testing of the project (and currently provides the most validated experience).
- Ensure you have the Homebrew package manager, which is used for all subsequent installs
- Update your new brew install by running: $
brew update
- Install Virtualbox: $
brew install --cask virtualbox
(password entry required) - In order to continue, you must allow these changes in macOS security preferences
- After the prompted reboot, you're ready to continue the install process!
- Install Vagrant: $
brew install --cask vagrant
- Install Git: $
brew install git
- Install Vagrant plugins: $
vagrant plugin install vagrant-disksize vagrant-vbguest
The Chocolatey package manager is the recommended method for Windows10 installation. Get this requirement first, and then use for all following steps.
- Install Git: PS>
choco install -y git
- Launch the "Git Bash" terminal emulator and "Run as administrator"
- Use this new Git Bash terminal to perform the below steps
- Install Virtualbox: PS>
choco install -y virtualbox
- Install Vagrant: PS>
choco install -y vagrant
- When politely asked to, reboot your machine!
- Install Vagrant plugins: PS>
vagrant plugin install vagrant-disksize vagrant-vbguest
Note: Vagrant requires a restart as part of the installation!.
This section assumes that you're using a fully updated Centos 7 box. All listed are run from a root shell (sudo -s
).
- Install requirements
yum groupinstall -y "Development Tools" yum install -y \ kernel-devel \ kernel-devel-3.10.0-1127.el7.x86_64 \ epel-release \ yum install -y git
- VirtualBox:
a. add repo file:
curl -o /etc/yum.repos.d/virtualbox.repo http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo
b. import key:rpm --import https://www.virtualbox.org/download/oracle_vbox.asc
c. install:yum install -y VirtualBox-6.0
d. grant permissions:sudo usermod -aG vboxusers "$(whoami)"
- Vagrant:
a. install:
yum install -y https://releases.hashicorp.com/vagrant/2.2.10/vagrant_2.2.10_x86_64.rpm
b. install required plugins:vagrant plugin install vagrant-disksize vagrant-vbguest
This section assumes that you're using a fully updated Fedora 33 box. All listed are run from a root shell (sudo -s
).
- Install requirements
sudo dnf install -y \ binutils \ gcc \ make \ patch \ libgomp \ glibc-headers \ glibc-devel \ kernel-headers \ kernel-devel \ dkms \ qt5-qtx11extras \ libxkbcommon \ rpmrebuild
- VirtualBox:
a. Add repo file:curl -o ~/VirtualBox-6.1-6.1.16_140961_fedora32-1.x86_64.rpm http://download.virtualbox.org/virtualbox/rpm/fedora/32/x86_64/VirtualBox-6.1-6.1.16_140961_fedora32-1.x86_64.rpm
b. Rebuild for Fedora:rpmrebuild --change-spec-preamble='sed -e "s/6.1.16_140961_fedora32/6.1.16_140961_fedora33/"' --change-spec-requires='sed -e "s/python(abi) = 3.8/python(abi) >= 3.8/"' --package VirtualBox-6.1-6.1.16_140961_fedora32-1.x86_64.rpm
c. Install package:dnf install -y ~/rpmbuild/RPMS/x86_64/VirtualBox-6.1-6.1.16_140961_fedora33-1.x86_64.rpm
d. Grant permissions:sudo usermod -aG vboxusers "$(whoami)"
- Vagrant:
a. Install package:dnf install -y https://releases.hashicorp.com/vagrant/2.2.10/vagrant_2.2.10_x86_64.rpm
b. Install required plugins:vagrant plugin install vagrant-disksize vagrant-vbguest
Note:
If you don't see your OS flavor listed, please consider contributing!
Getting the Project
Now that you have all the requirements installed, it's time to clone the project code locally:
- Change directories into wherever you prefer the repo to be. For example: $
cd ~/code
- Clone the repo: $
git clone https://github.com/thremulation-station/thremulation-station.git
- Move into the new project folder, and more specifically the "vagrant" dir: $
cd thremulation-station/vagrant
The next page will cover deploying your VM range.