Giter Club home page Giter Club logo

devenv-vagrant's Introduction

⛔️ DEPRECATED

This repository is no longer supported, please consider using Den instead.

Summary

This repo provides the necesary pieces needed for setting up a Development Environment for Magento development.

Host Assumptions

A goal of this dev env is to avoid as many host assumptions as possible in order to make the environment portable. Documented below are the actual assumptions and implications if the assumption is not correct for a given host.

Host Requirement Installation

macOS Setup

Windows Setup

Hard Requirements

  • Vagrant installed on host.
    • Requirement: critical to start VMs
    • Implications: without Vagrant, VMs cannot be started.
  • Vagrant-Hostmanager installed on host.
    • Requirement: important for standard operation
    • Implications: without this plugin, hosts files will not be updated when VM IP changes
  • VirtualBox installed on host.
    • Requirement: critical if using local provider
    • Implications: without this hypervisor, local VMs cannot be used.
  • Ansible installed on host.
    • Requirement: critical
    • Implications: without Ansible on the host, the dev env cannot be provisioned.
  • [Git] installed on host.
    • Requirement: important for standard operation
    • Implications: without git on the host, the user will need to manage cloning the devenv-vagrant repo themselves.
  • Mutagen installed on host.
    • Requirement: important for standard operation
    • Implications: without mutagen on the host, the user will need to manage file syncronziation themselves.

Soft Requirements

  • [Python] + Gitman installed on host.
    • Requirement: convenient
    • Implications: without gitman on the host, you would need to follow several manual commands to clone, and initialize this dev env template into a project
  • Ability to sync root CA to local filesystem and trust it
    • Requirement: convenient
    • Implications: without trusting root CA, SSL certs will not be valid. Without syncing generated root CA to local filesystem, a new one will be generated on each VM (re)creation.
  • Ability to create predefined hosts entries for dev VMs.
    • Requirement: convenient
    • Implications: without using predefined hosts entries on host, copy-paste commands may not work as expected.
  • [PHP] + Composer + jq installed on host.
    • Requirement: convenient
    • Implications: allows composer credentials from host to be inserted into VM

Reference Test Configs

Example reference implementations used for testing variations on environment configurations can be found in the iac-test-lab repo.

Project Setup

Project Setup

Troubleshooting

Troubleshooting

CentOS 8 Fix for outdated repositories URLs (EOL)

CentOS 8 Fix

Supported Systems

Supported Vagrant Systems (images)

Mutagen

Mutagen

Optional Use

Digital Ocean Provider

Use of Digital Ocean for running the virtual machine in the cloud rather than on your local machine via VirtualBox.

The Digital Ocean Vagrant Provider must be installed prior to running VMs in the cloud.

# Display details of an existing droplet
export DO_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxx
export DO_DROPLET_ID=xxxxxxxx
curl -s -X GET -H "Content-Type: application/json" -H "Authorization: Bearer ${DO_TOKEN}" "https://api.digitalocean.com/v2/droplets/${DO_DROPLET_ID}" | jq .

TODO: Describe how to populate DO token, etc, and any changes to Vagrantfile loading.

devenv-vagrant's People

Contributors

andrewdaluz avatar bap14 avatar dependabot[bot] avatar ericthehacker avatar joshfedo avatar mrmattrc avatar stardustspeedway avatar timsayshey avatar yuriysklyarenko avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

devenv-vagrant's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.