Provisioners
Provisioners is a growing set of cloud solution provision scripts collection. You can customize and create solution on any private or public cloud service.
The latest solution progress please refer to Github Project.
Prerequisites
- PC with Internet (Seriously!!!)
- VirtualBox
- Vagrant
Usage
- Clone this repo via
git clone git@github.com:wizardbyron/provisioners.git
. - Customize your solution via Vagrantfile and solution scripts.
- Provision your solution by
vagrant up
. - (Option) Add the VM to your
hosts
file. - Enjoy your solution.
Platforms
- X86/64 Virtual Machines via VirtualBox
- Kubernetes
- Amazon Web Service
- Azure (TBD)
- Google Cloud Platform (TBD)
- Aliyun (TBD)
- Tencent Cloud (TBD)
Linux Distros
- CentOS 7
- Ubuntu Focal64
service
service list please refer to service/README.md.
solution
- DevOps Platform
- Kubernetes Platform
- Microservice Platform (TBD)
- BigData(TBD)
Workflow
- Fork and clone this repo.
- Provision & update solution in solution scripts.
- Extract & Push service script from solution scripts.
- Verify service script in solution scripts.
- Push solution script.
Convention
- Facilites scripts can be verified indivadually.
- Distro-crossed scripts are better than distro-specified scripts.
- Docker is better than shell.
- Docker-compose is better than docker in shell.
- Follow Terraform best practices
Terraform best practices
- Don’t commit the
.tfstate
file - Configure a backend
- Back up your state files
- Keep your backends small
- Use one state per environment
- Setup backend state locking
- Execute Terraform in an automated build
- Manipulate state only through the commands
- Use variables (liberally)
- Use modules (only where necessary)
Known Issues
umount /mnt
error
1. Please uninstall your current version VirtualBox Guest Plugin by following command:
vagrant plugin uninstall vagrant-vbguest
Then install earlier version 0.21
by following command:
vagrant plugin install vagrant-vbguest --plugin-version 0.21
2. macOS Monterey and VirtualBox 6.1.28 (Fixed in VirtualBox 6.1.30)
Ref: hashicorp/vagrant#12557 (comment):
To summarize this issue, there are currently issues with VirtualBox on macOS Monterey. There's three different things which are causing issues:
- VMs cannot be started headless VB#20636
- kexts not being loaded properly VB#20637
- Cannot create network within given subnet VB#20626
For 1, the only way to workaround this is to enable the GUI within the provider configuration:
config.vm.provider :virtualbox do |vb|
vb.gui = true
end
For 2, the kernel extensions can be loaded manually (which may be required after reboot):
sudo kextload -b org.virtualbox.kext.VBoxDrv;
sudo kextload -b org.virtualbox.kext.VBoxNetFlt;
sudo kextload -b org.virtualbox.kext.VBoxNetAdp;
sudo kextload -b org.virtualbox.kext.VBoxUSB;
For 3, the 6.1.28 release introduced a new restriction when creating networks which can be found here. PR #12564 adds validation to given addresses and returns back useful error message for how to add more ranges to the VirtualBox configuration.
How to contribution
- Create an issue in Project Issues for your requirement.
- Fork this repo and clone to your local.
- Following the [convention] to write your scripts.
- Commit code with your issue id in the front of your commit message.
- Before push, please test your script in the Vagrant in onetouch.
- Create a pull request in 1 commit you squashed.
- Waiting for review and merge.