This application is developed with Vagrant 1.8.0
and Ansible 2.0
for a Debian 8
environment.
To run the application within a Vagrant environment, ensure that you have Vagrant and VirtualBox (or Parallels on OS X) installed.
You will need to clone this repository: git clone git@github.com:boltmade/ansible-workshop-deploy.git
You may also want to checkout the application being deployed:
boltmade/ansible-workshop-app
.
You need to acquire the vault password from someone on the team, which we'll refer to as
VAULT_PASS
. Then:
cd ansible-workshop-deploy
echo "VAULT_PASS" | tee -a playbooks/vault_pass
vagrant up --provider=virtualbox # OR: vagrant up --provider=parallels
You can stop the application and halt the machine by running vagrant halt
or suspend the machine
by running vagrant suspend
.
If you need to apply any updates to your vagrant machine:
vagrant provision
To access the machine:
vagrant ssh
To verify everything is okay:
ansible-playbook --version # => 2.0.1.0
We are taking advantage of Ansible Vault to store secrets in our source code. Deploy steps will automatically decrypt our secrets files, but if you wish to encrypt a new file or view/edit any existing files:
ansible-vault [encrypt|view|edit] playbooks/path/to/secret_file --vault-password-file playbooks/vault_pass
We use Ansible to manage our deployments. The vagrant machine comes with this installed.
If ansible complains about a missing galaxy role, simply run:
ansible-galaxy install -r playbooks/requirements.txt
These are automatically installed during vagrant provision
and within the vagrant environment on
machine setup.
Run inside the Vagrant VM:
ansible-playbook playbooks/site.yml -i playbooks/production --vault-password-file playbooks/vault_pass
If you want to refresh the database, append --extra-vars "should_seed=true"
If you wish to view what would happen without making changes you can perform a trial run and, optionally, request a diff to see the changes, simply append:
--check [--diff]