Commit 83205603 by John Jarvis

A small refactor of ora

* configurable virtualenv, defaults to the normal location
* moves the upstart and gunicorn configs into the configuration repo
* changes to deploy.yml, move packages into the repo
parent 82e66a6c
---
- name: restart edx-ora
service: name=edx-ora state=restarted
- name: restart edx-ora-celery
service: name=edx-ora-celery state=restarted
......@@ -16,6 +16,7 @@
- name: stop edx-ora service
service: name=edx-ora state=stopped
when: edx_ora_installed.stdout == 'Found'
notify: restart edx-ora
tags:
- ora
- deploy
......@@ -23,6 +24,7 @@
- name: stop edx-ora-celery service
service: name=edx-ora-celery state=stopped
when: edx_ora_celery_installed.stdout == 'Found'
notify: restart edx-ora-celery
tags:
- ora
- deploy
......@@ -30,6 +32,9 @@
# Do A Checkout
- name: git checkout ora repo into $app_base_dir
git: dest={{ora_code_dir}} repo={{ora_source_repo}} version={{ora_version}}
notify:
- restart edx-ora
- restart edx-ora-celery
tags:
- ora
- deploy
......@@ -37,42 +42,24 @@
# Do Post Checkout Tasks.
- name: change permissions on ora code dir
file: path={{ora_code_dir}} state=directory owner=www-data group=www-data mode=755 recurse=yes
notify:
- restart edx-ora
- restart edx-ora-celery
tags:
- ora
- deploy
- name: copy over edx-ora upstart scripts from repo
shell: "cp {{ora_code_dir}}/edx-ora.conf /etc/init/edx-ora.conf;
chmod 644 /etc/init/edx-ora.conf; chown root:root /etc/init/edx-ora.conf;"
tags:
- ora
- deploy
- name: set correct port in edx-ora.conf
lineinfile: dest=/etc/init/edx-ora.conf regexp="^env PORT=[0-9]+" line="env PORT={{ora_gunicorn_port}}"
tags:
- ora
- deploy
- name: copy over edx-ora-celery upstart scripts from repo
shell: "cp {{ora_code_dir}}/edx-ora-celery.conf /etc/init/edx-ora-celery.conf;
chmod 644 /etc/init/edx-ora-celery.conf; chown root:root /etc/init/edx-ora-celery.conf;"
tags:
- ora
- deploy
# TODO: Check git.py _run_if_changed() to see if the logic there to skip running certain
# portions of the deploy needs to be incorporated here.
- name: install ora apt-packages
command: xargs -a {{ora_code_dir}}/apt-packages.txt apt-get install -y
tags:
- ora
- deploy
# Install the python pre requirements into {{ venv_dir }}
- name: install python pre-requirements
pip: requirements="{{ora_pre_requirements_file}}" virtualenv="{{venv_dir}}" state=present
notify:
- restart edx-ora
- restart edx-ora-celery
tags:
- ora
- deploy
......@@ -80,6 +67,9 @@
# Install the python post requirements into {{ venv_dir }}
- name: install python post-requirements
pip: requirements="{{ora_post_requirements_file}}" virtualenv="{{venv_dir}}" state=present
notify:
- restart edx-ora
- restart edx-ora-celery
tags:
- ora
- deploy
......@@ -87,6 +77,9 @@
#Needed if using redis to prevent memory issues
- name: change memory commit settings -- needed for redis
command: sysctl vm.overcommit_memory=1
notify:
- restart edx-ora
- restart edx-ora-celery
tags:
- ora
- deploy
......@@ -94,6 +87,9 @@
- name: syncdb and migrate
shell: sudo -u www-data {{venv_dir}}/bin/django-admin.py syncdb --migrate --noinput --settings=edx_ora.aws --pythonpath={{ora_code_dir}}
when: migrate_db
notify:
- restart edx-ora
- restart edx-ora-celery
tags:
- ora
- syncdb
......@@ -101,19 +97,10 @@
- name: create users
shell: sudo -u www-data {{venv_dir}}/bin/django-admin.py update_users --settings=edx_ora.aws --pythonpath={{ora_code_dir}}
notify:
- restart edx-ora
- restart edx-ora-celery
tags:
- ora
- syncdb
- deploy
- name: restart edx-ora
service: name=edx-ora state=restarted
tags:
- ora
- deploy
- name: restart edx-ora-celery
service: name=edx-ora-celery state=restarted
tags:
- ora
- deploy
......@@ -35,6 +35,22 @@
tags:
- ora
- name: create ora upstart script
template: src=edx-ora.conf.j2 dest=/etc/init/edx-ora.conf mode=0640 owner=root group=adm
tags:
- ora
- name: create ora-celery upstart script
template: src=edx-ora-celery.conf.j2 dest=/etc/init/edx-ora-celery.conf mode=0640 owner=root group=adm
tags:
- ora
- name: install debian packages that ora needs
apt: pkg={{item}} state=present
with_items: ora_debian_pkgs
tags:
- ora
# Install nginx site
- include: ../../nginx/tasks/nginx_site.yml state=link site_name=ora
......
#Celery task for edx-ora
description "Celery grading controller"
author "Vik Paruchuri <vik@edx.org>"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
respawn limit 3 30
env DJANGO_SETTINGS_MODULE=edx_ora.aws
chdir {{ ora_code_dir }}
setuid www-data
exec {{ ora_venv_dir }}/bin/python {{ ora_code_dir }}/manage.py celeryd --loglevel=info --settings=edx_ora.aws --pythonpath={{ ora_code_dir}} -B --autoscale=4,1
# /etc/init/edx-ora.conf
description "edX ORA server"
author "edx <info@edx.org>"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
respawn limit 3 30
env PID=/var/run/gunicorn/edx-ora.pid
env WORKERS={{ ora_gunicorn_workers }}
env PORT={{ ora_gunicorn_port }}
env LANG=en_US.UTF-8
env DJANGO_SETTINGS_MODULE=edx_ora.aws
pre-start script
end script
chdir {{ ora_code_dir }}
setuid www-data
exec {{ ora_venv_dir}}/bin/gunicorn --preload -b 127.0.0.1:$PORT -w $WORKERS --timeout=90 --pythonpath={{ ora_code_dir}} edx_ora.wsgi
......@@ -4,6 +4,8 @@ ora_code_dir: "{{ app_base_dir }}/edx-ora"
# Default nginx listen port
# These should be overrided if you want
# to serve all content on port 80
ora_gunicorn_workers: 4
ora_nginx_port: 18091
ora_gunicorn_port: 8091
ora_auth_config: {}
......@@ -21,3 +23,31 @@ ease_pre_requirements_file: "{{ ease_code_dir }}/pre-requirements.txt"
ease_post_requirements_file: "{{ ease_code_dir }}/requirements.txt"
ease_debian_pkgs: []
nltk_data_dir: /usr/share/nltk_data
ora_debian_packages:
- python-software-properties
- pkg-config
- curl
- git
- python-virtualenv
- build-essential
- python-dev
- gfortran
- libfreetype6-dev
- libpng12-dev
- libxml2-dev
- libxslt-dev
- yui-compressor
- graphviz
- graphviz-dev
- libmysqlclient-dev
- libreadline6
- libreadline6-dev
- super
- aspell
- libblas3gf
- libblas-dev
- liblapack3gf
- liblapack-dev
- libatlas-base-dev
- redis-server
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment