Eases Dev Box Setup with Multipass, Docker & Ansible compatible with Windows, MacOS and Linux. Main purpose is to have a common way of configuring a development environment that is simple, fast and automated, with minimal dependencies
Tools | MacOS | Windows | Linux |
---|---|---|---|
Package Manager | homebrew | scoop | snap |
Shell | Default | GitBash | Default |
Terminal | iTerm2 | cmder | Default |
Common Tools:
- Code Editors (IDE) - Jetbrains Tools, Visual Studio Code
- Virtualization Orchestrator - Multipass
- Containerization - Docker Desktop
FYI: Links provided only for packages that are not installed by Default
Limitations: Multipass will not work on Mac when connected to Cisco Any Connect.
Introductions & Installation Instruction For Prerequisite
In Terminal
$ git submodule update --init --recursive --remote
$ ci/check_bats.bash -f .precondition
All 7 Tests should pass - if you have issues, double check the Installation Instruction
$ ./sandbox.bash
Usage: ./sandbox.bash {up|down|status|logs}
up Provision, Configure, Validate Application Stack
down Application Stack
status Displays Status of Application Stack
logs Application Stack Log Dashboard
Dev Tools cookie-cutter solution for cross cutting concerns like (Logging, Monitoring, Authentication etc)
Learn Mode for step by step self learning
In order to override the default configuration file instance.env (optional)
$ cp instance.env dev.instance.env
Modify dev.instance.env to suit your needs. multipass.bash will pick up dev.instance.env if it is present else will default to instance.env. Note: dev.instance.env is excluded from check-in in .gitignore
Automates - Automates - Automates !!!
- Provides Workaround of Issue
through cloud-init configuration by editing the /etc/netplan/50-cloud-init.yaml through script.
- Refer cloud-init Template file
- Configuration driven - from provisioning to destroy of VM along with SSH Configuration
- Ability to connect and configure VM via Bastion Host - Making the experience seamless between Windows & Mac
- Test Driven Development for entire suite
- Modularization of Code for Easy Refactoring
- Workaround to invoke docker in a common way through wrapper both for windows and mac
Features
1. Adoption of Git Flow ✅
2. Add Automated Verification - CI
a. Travis (Linux Only) ✅
b. GitHub Actions (Linux,Mac & Windows) ✅
3. Configure VM through Ansible ✅
4. Infrastrcuture Test Automation using py.test & TestInfra ✅
5. Centralized Logging ✅
6. Log Shipper and Aggregation ✅
7. HTTPS Support ✅
8. CLI Builder ✅
9. WebTail ✅
10. Edge Routing or Reverse Proxy Support ✅
11. Edge Routing or Reverse Proxy Support ✅
12. Dev Tools Container Mgmt ✅
13. OAuth2 + SSO -> Authentication Support ✅
14. System Monitoring
15. Support for ADR
16. Explore workarounds for Multipass + Anyconnect Issue
17. Authorization or Policy Mgmt
18. Key or Secrets Management
19. Status Aggregator
20. AWS Support
21. vSphere Support
1. https://github.com/canonical/multipass/issues/961
2. https://multipass.run/docs/troubleshooting-networking-on-macos
3. https://discourse.ubuntu.com/t/troubleshooting-networking-on-macos/12901