Clean Air Council Circuit Trip Planner and Travelshed
Development Dependencies
Development Installation
- Make sure you have the development dependencies installed
- Place GTFS .zip files, OSM files, and elevation .tif files (optional) in the otp_data folder
- Copy
deployment/ansible/group_vars/development_templatetodeployment/ansible/group_vars/development - Run
vagrant up - See the app at http://localhost:8024! See OpenTripPlanner at http://localhost:9090.
- Running
./scripts/serve-js-dev.shon the host will rebuild the front-end app on file change (the browser must be reloaded manually to pick up the change). Alternatively,cd /opt/app/src && npm run gulp-developmentcan be run manually in the VM to pick up changes to the static files.
Note that if there is an existing build Graph.obj in otp_data, vagrant provisioning in development mode will not attempt to rebuild the graph, but will use the one already present.
Building AMIs
- Make a production group_vars file (similarly to how is described above with development). Make sure production is set to true, and also specify an app_username, which should be set to: ubuntu
- If building the
otpmachine, make sure the latest GTFS are inotp_data, then build a graph when them in the development environment provisioning. This will result in a newGraph.objfile being written tootp_data. - In the project directory within the app VM, run:
deployment/cac-stack.py create-ami --aws-access-key-id YOUR_ACCESS_KEY --aws-secret-access-key YOUR_SECRET_KEY --aws-role-arn YOUR_ASSUMED_ROLE_ARN - The previous command builds all AMIs. To only build a single AMI, run the same command, but also specify the
--machine-typeparameter, which may be set to one of:bastion,otp, orapp.
Launching AWS Stacks
- Copy
deployment/default_template.yamltodeployment/default.yamland edit variables - In the project directory, for a set of
Bluestacks in theProductionenvironment, run:deployment/cac-stack.py launch-stacks --stack-type prod --stack-color blue --aws-access-key-id YOUR_ACCESS_KEY --aws-secret-access-key YOUR_SECRET_KEY --aws-role-arn YOUR_ASSUMED_ROLE_ARN - The previous command will do the following:
- Ensure the
VPCstack is up in Production -- it will be launched if it isn't already running - Ensure the
DataPlanestack is up in Production -- it will be launched if it isn't already running - Ensure the
OtpServerBlue stack is up in Production -- it will be launched if it isn't already running - Ensure the
WebServerBlue stack is up in Production -- it will be launched if it isn't already running
- Note that database migrations are not automatically run. When the DataPlane is first brought up, it is necessary to manually create the app user/db and run migrations.
- Launching a set of Production stacks with the other color (
Green), will use the sameVPCandDataPlanestacks, but will create differentOtpServerandWebServerstacks (if they don't already exist).
Production Blue/Green deployment
- Note which color is currently running in production. Use the opposite color in the following steps.
- Set
otp_hostin production group_vars to the CloudFront distribution with the desired color. - Run
create_amicommand to build new AMIs. - Update
default.yamlwith new AMI ids. - Run
launch_stackscommand to launch stacks with the desired color. - Test new stacks thoroughly.
- Switch the public DNS record of the site to point to the new
WebServerELB DNS. - The stacks of the previous color may be deleted when ready.