docs
This commit is contained in:
parent
c614f0aa79
commit
9eca40e0d2
100
docs/dev_setup.md
Normal file
100
docs/dev_setup.md
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
# Development environment setup
|
||||||
|
|
||||||
|
This project used vagrant for as standard development environment. This should
|
||||||
|
easy setting things up and reduce environment related errors.
|
||||||
|
|
||||||
|
## What you need
|
||||||
|
|
||||||
|
There are 3 things you will need to get before your local environment is up and
|
||||||
|
running.
|
||||||
|
|
||||||
|
### Git
|
||||||
|
|
||||||
|
This should already be installed on your system. If you are using Windows,
|
||||||
|
install [git bash for windows](https://git-scm.com/download/win)
|
||||||
|
|
||||||
|
### VirtualBox
|
||||||
|
|
||||||
|
Virtual box will be used to create a manged Linux VM on your computer. Please
|
||||||
|
install version 5.9 as version 6 is not supported.
|
||||||
|
|
||||||
|
### Vagrant
|
||||||
|
|
||||||
|
Vagrant is used to managed the local virtual environment and provision the VM.
|
||||||
|
**MAKE SURE GIT VIRTUAL BOX ARE INSTALLED FIRST!!!** At install time, vagrant
|
||||||
|
will integrate with them.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Once you have everything installed and the projected cloned on your local
|
||||||
|
computer, open a terminal( Git Bash for windows users ) and move to the root of
|
||||||
|
the project.
|
||||||
|
|
||||||
|
### Chef secrets
|
||||||
|
|
||||||
|
This project like many other used secret API tokens that we do want tracked in
|
||||||
|
the git repo. in the root of the project, create a file called 'secrets.json'
|
||||||
|
and populate like so:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"django": {
|
||||||
|
"github": {
|
||||||
|
"id": "<ID>",
|
||||||
|
"secret": "<SECRET>",
|
||||||
|
"token": "<TOKEN>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Basic vagrant usage and commands
|
||||||
|
|
||||||
|
We will interact with the project using vagrant. The work flow is `vagrant up`
|
||||||
|
creates a VM for your project and runs the provisioner to set everything up.
|
||||||
|
This command should be ran after the project is cloned or when you sit down to
|
||||||
|
start development. This command may take some time to complete depending on how
|
||||||
|
complex the project is. Once the VM is set up, you may now interact with it.
|
||||||
|
Vagrant will forward ports from the project to the user localhost address. For
|
||||||
|
example with this project, port 80 from the container will be mapped to
|
||||||
|
localhost:8000 and you will be able to access there. If you make a change to any
|
||||||
|
provisioning chef recipes, `vagrant provision` will need to ran. This will
|
||||||
|
run the chef provisioner on the VM making any changes needed.
|
||||||
|
|
||||||
|
Because we use the `secrets.json` file to store untracked configuration, all
|
||||||
|
vagrant command need to be ran where in the root of the project, where
|
||||||
|
`secrets.json` lives.
|
||||||
|
|
||||||
|
### `vagrant up`
|
||||||
|
|
||||||
|
Will start the local VM, creating it if needed. This command should always be
|
||||||
|
ran when a development session is started.
|
||||||
|
|
||||||
|
### `vagrant provision`
|
||||||
|
|
||||||
|
Will run the chef-solo provisioner. This will need to be ran anytime the chef
|
||||||
|
recipes or roles are changed.
|
||||||
|
|
||||||
|
### `vagrant status`
|
||||||
|
|
||||||
|
Will show you the status of local manged VM
|
||||||
|
|
||||||
|
### `vagrant halt`
|
||||||
|
|
||||||
|
Will shutdown the local VM. This should be done when you are finished working on
|
||||||
|
the project so you dont have a VM running in the background eating CPU/RAM and
|
||||||
|
battery. `vagrant up` can be used later to turn the VM back on.
|
||||||
|
|
||||||
|
### `vagrant destroy`
|
||||||
|
|
||||||
|
This will shutdown the VM and delete it. This command is useful if you have
|
||||||
|
messed up the VM and want to start from scratch. Or if you are done with the
|
||||||
|
project and want to free space from the computer.
|
||||||
|
|
||||||
|
### `vagrant ssh`
|
||||||
|
|
||||||
|
This will bring you into the local VM as the vagrant user. The vagrant user has
|
||||||
|
sudo. Use this only for debugging! **DO NOT INSTALL OR CHANGE THE STATE OF
|
||||||
|
PROJECT OR VM FROM HERE!!!!** that will break the concept of provisioning make
|
||||||
|
chef useless. Also make installation and configuration changes with chef.
|
Loading…
x
Reference in New Issue
Block a user