-
Notifications
You must be signed in to change notification settings - Fork 64
Operations
Quick daily operation commands here, or read further down for details:
OCL has 3 server environments setup: production, staging, and dev. Each environment has a web application and an API subdomain that can be accessed at either of the parent domains openconceptlab.com and openconceptlab.org.
The OCL operating environemnt is as follow:
- All outside requests are handled by nginx; nginx uses named virtualhost to distinguish types of request
- Both API and WEB django applications run internally on specific ports responding only to localhost request
- Both applications use gunicorn and wsgi
- Supervisor is used to control the django applications
- Both applications run under the
deployuser account
OCL has 3 operating environments:
productionstagingdev
OCL has two release scripts, one for the Web Application and one for the API:
release_web_app-
release_api_appFor a normal software release, navigate to the root of theocl_webrepo where the fabfiles live to do the release.
workon ocl_web
fab [:env] [:release_script]
For example:
workon ocl_web
fab dev release_web_app
fab dev release_api_app
The fab file in the oclapi repo still works as well for the api app:
workon oclapi
cd oclapi/src/django-nonrel/ocl
fab dev deploy
fab dev/staging/production restart_api
fab dev/staging/production restart_web
fab dev/staging/production rebuild_index
- to start and stop the django applications, simply use the supervisor control commands using the deployment user account:
supervisorctl stop
supervisorctl start
# or
supervisorctl restart
Note that supervisorctl also has an interactive mode. Just enter supervisorctl to try.
Normally, you can just use the fabric commands to start/stop the servers remotely.
The supervisor daemon starts via system startup normally. To start/stop/restart it manually (as root):
/etc/init.d/supervisord start
/etc/init.d/supervisord stop
/etc/init.d/supervisord restart
The nginx light weight web server starts via system startup normally. To start/stop/restart it manually (as root):
/etc/init.d/nginx start
/etc/init.d/nginx stop
/etc/init.d/nginx restart
All the log files are currently written to the /var/log/ocl directory. See:
- /var/log/ocl/web_app.log for web application normal logging (via django logger)
- /var/log/ocl/web_debug.log for web application debug logging of API calls to api server
- /var/log/ocl/ocl_api.log for API application normal logging (via django logger)
- /var/log/ocl/api_supervisor.log for supervisor output for the API gunicorn, sys err, outs basically
- /var/log/ocl/web_supervisor.log for supervisor output for the WEB gunicorn, sys err, outs basically
- /var/log/ocl/ocl_api_batch.log for import process outputs
See:
- /etc/nginx/conf.d/*.conf
- /etc/supervisor/conf.d/*.conf
Settings for the django applications are set in the appropriate supervisor conf files: Location of directory and environment variables.
Overview
Resources
Import / Export
- CSV Import
- Bulk Import
- Org/Source Import
- Export API
- Subscriptions
- Subscription Client Testing Process
- OpenMRS to OCL Mapping
Troubleshooting & Operations
- Data integrity checks
- Maintaining OCLAPI's Docker containers
- Maintaining MongoDB and Solr
- How to check logs
- NewRelic monitoring setup
- Configuration changes to make tests and import job run faster
- Accessing Solr UI Remotely
- Data Backup and Restore
- SSL Configuration
- Flower
- Switching to Maintenance Mode on Production Server
- Docker networking and Security
Other