Provisioning of the sandbox using the Hashicorp Vagrant automation tool (IaC).
Fully managed and configured through Ansible roles.
Vagrant is an tool for building and managing virtual machine environments in an sigle workflow.
Provides easy to configure, reproducible and portable work environments built on top of industry-standard technology and controlled by an single consistent workflow to help maximize the productivity and flexibility.
Vagrant has a concept of providers
which map to the virtualisation engine and its API.
The most popular and well-supported provider is Virtualbox; plugins exist for libvirt
, kvm
, lxc
, vmware
and more
- Declarative approach through YAML configuration format.
- Extensible through Vagrant plugins (host) and Ansible roles (guest).
- Flexible networking setup:
- NAT/PAT
- Multiple network adapters
- DNS setup
- Host/Guest Time sync
- System or Application proxy
- Resizing of virtual disk(s) size, addition or removal of it/them.
- Support of Linux & Windows host OS.
- Support of MacOS with Intel processors only.
Many PC laptops (especially those from Lenovo, HP and Dell) have Intel's VT-x virtualization turned off by default, which can cause issues with many Vagrant boxes. Enable VT-x in your system BIOS/UEFI settings.
Install the Git command line tool.
- On Linux OS/Mac OS X use your distribution package manager.
- On Windows OS download and install Git.
- Don't forget to include the Git BASH during installation.
Use your distribution package manager and install the following mandatory
packages:
- VirtualBox
mandatory
- Vagrant
mandatory
- Install (as Administrator) the Package Manager Chocolatey:
The following mandatory
packages must be installed through Chocolatey:
- VirtualBox
mandatory
- Vagrant
mandatory
There is no need to install the above packages manually, use the automated steps as described below.
In case of Windows 7 install the Powershell patch:
Based on Ubuntu jammy/22.04
box from: HashiCorp's Vagrant Cloud
- vagrant
- vault
- terraform
- docker
- docker-compose
- kubectl
- helm
- helm-dashboard
- kind
- k9s
- kubectx
- kubens
- kubeshell
- kubeps1
- kubecolor
- kubeshark
- kubetail
- tshark (from source code)
- git-core
- git-lfs
- git-crypt
- openjdk
- groovy
- maven
- allure
- Gem
- Bundle
- go
- github.com/nektos/act
- golang.org/x/lint/golint
- github.com/rhysd/actionlint
- github.com/mkouhei/gosh
- golang.org/x/tools/gopls
- github.com/go-delve/delve/cmd/dlv
- honnef.co/go/tools/cmd/staticcheck
- Python
3.10
- Robot Framework
- Jinja2
- Jenkins
- hadolint
- golint
- .vimrc
- .gitconfig
- .bash_profile
- .bash_aliases
- lynx
- socat
- sshpass
- jq
- yq
- bridge-utils
- x11-apps
- xdg-utils
- lsyncd
In order to clone the project source code you need:
- Request membership to vagrantenv project.
Open Git BASH as Administrator:
git clone git@github.com:theodore86/vagrantenv.git
cd vagrantenv/tools/windows
cmd "/C provision.bat"
shutdown /r (Reboot Windows PC)
Open your terminal:
git clone git@github.com:theodore86/vagrantenv.git
cd vagrantenv/tools/linux
bash provision.sh
sudo shutdown -r (Reboot your Linux PC)
cd vagrantenv
export HTTP(S)_PROXY=x.x.x.x:8080 (if behind proxy)
vagrant up
vagrant ssh
cd vagrantenv
git pull
vagrant box update
vagrant up or reload
vagrant ssh
vagrant ssh-config
vagrantenv
├── AUTHORS.md
├── bin (d)
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Dockerfile
├── docs (d)
├── Gemfile
├── Gemfile.lock
├── lib (d)
├── LICENSE
├── mkdocs.yml
├── provisioners (d)
├── README.md
├── requirements.d (d)
├── tools (d)
├── tox.ini
├── Vagrantfile
└── vagrant.yaml
bin
: Project executablesDockerfile
: File to build project CI docker containersdocs
: Project documentationlib
: Vagrant ruby helper modulesprovisioners
: Vagrant (shell, ansible) provisionersrequirements.d
: Python project dependenciestools
: Generic project toolstox.ini
: Test automation command line toolvagrant.yaml
: Vagrant central configuration fileVagrantfile
: Vagrant main ruby file
For more details, generate and serve locally the project documentation:
tox -e docs -- --dev-addr 0.0.0.0:8000