IaC example is a simple example of Infrastructure as code (IaC) to automate a development environment based on Vagrant and a staging, production environment on AWS. The installation creates a basic Symfony application along with a PostgreSQL, Solr and Redis services. Ansible helps automate all the infrastructure tasks and the bash scripts act as a wrapper for the Ansible commands.
Vagrant provisioning
- Install Vagrant and clone this repo.
vagrant upto start installation- The installation will provision 2 boxes
myprojectandservices, you can retry provisioning usingvagrant provisionif it failed. - After provisioning the vagrant boxes you should access the symfony project on
192.168.33.31which is a basic symfony example project. - All
redis,postgreSQLandsolrservices are on theservicesbox. - Root is
/var/www/application - MyProject IP is
192.168.33.31. - Services IP is
192.168.33.32.
AWS provisioning (AWS will charge you for launching services)
- Login vagrant
vagrant ssh myproject - Change the password and ssh key to yours and remove the prod_files from your repo
/var/www/application/prod_files - Add the production password and ssh keys to vagrant
bash /var/www/application/prod_files/add_to_vagrant.sh - Encrypt your AWS keys as shown on
provision/ansible/aws.sh:82 - Go to
/var/www/application/provision/ansible - run
./aws-infrastructure.shto start building the infrastructure on AWS. - Edit the deploy script
roles/deploy-application/files/myproject/deploy.shto fit your requirements.
Solr Admin
pghero
MailHog
Visit on Github



