Commit b868764e by John Jarvis

Merge pull request #138 from edx/jarv/ora-conf

Jarv/ora conf
parents 82e66a6c 1b1c92e4
......@@ -9,6 +9,8 @@
vars_files:
- "{{ secure_dir }}/vars/edxapp_ref_users.yml"
- "{{ secure_dir }}/vars/edxapp_sandbox.yml"
# overrides specific to the jenkins test playbook
- "{{ secure_dir }}/vars/edx_jenkins_tests.yml"
roles:
- common
- nginx
......
......@@ -23,6 +23,7 @@
vars_files:
- "{{ secure_dir }}/vars/edxapp_ref_users.yml"
- "{{ secure_dir }}/vars/edxapp_sandbox.yml"
- "{{ secure_dir }}/vars/edx_jenkins_tests.yml"
roles:
- common
- nginx
......
---
- 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,49 +42,34 @@
# 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 }}
# Install the python pre requirements into {{ ora_venv_dir }}
- name: install python pre-requirements
pip: requirements="{{ora_pre_requirements_file}}" virtualenv="{{venv_dir}}" state=present
pip: requirements="{{ora_pre_requirements_file}}" virtualenv="{{ora_venv_dir}}" state=present
notify:
- restart edx-ora
- restart edx-ora-celery
tags:
- ora
- deploy
# Install the python post requirements into {{ venv_dir }}
# Install the python post requirements into {{ ora_venv_dir }}
- name: install python post-requirements
pip: requirements="{{ora_post_requirements_file}}" virtualenv="{{venv_dir}}" state=present
pip: requirements="{{ora_post_requirements_file}}" virtualenv="{{ora_venv_dir}}" state=present
notify:
- restart edx-ora
- restart edx-ora-celery
tags:
- ora
- deploy
......@@ -87,33 +77,30 @@
#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
- 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}}
shell: sudo -u www-data {{ora_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
- deploy
- name: create users
shell: sudo -u www-data {{venv_dir}}/bin/django-admin.py update_users --settings=edx_ora.aws --pythonpath={{ora_code_dir}}
shell: sudo -u www-data {{ora_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
......@@ -45,29 +45,31 @@
# 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 ease apt-packages
command: xargs -a {{ease_code_dir}}/apt-packages.txt apt-get install -y
#
- name: install ease system packages
apt: pkg={{item}} state=present
with_items: ease_debian_pkgs
tags:
- ease
- deploy
# Install the python pre requirements into {{ venv_dir }}
# Install the python pre requirements into {{ ease_venv_dir }}
- name: install ease python pre-requirements
pip: requirements="{{ease_pre_requirements_file}}" virtualenv="{{venv_dir}}" state=present
pip: requirements="{{ease_pre_requirements_file}}" virtualenv="{{ease_venv_dir}}" state=present
tags:
- ease
- deploy
# Install the python post requirements into {{ venv_dir }}
# Install the python post requirements into {{ ease_venv_dir }}
- name: install ease python post-requirements
pip: requirements="{{ease_post_requirements_file}}" virtualenv="{{venv_dir}}" state=present
pip: requirements="{{ease_post_requirements_file}}" virtualenv="{{ease_venv_dir}}" state=present
tags:
- ease
- deploy
- name: install ease python package
shell: command="{{venv_dir}}/bin/activate; cd {{ease_code_dir}}; python setup.py install"
shell: command="{{ease_venv_dir}}/bin/activate; cd {{ease_code_dir}}; python setup.py install"
tags:
- ease
- deploy
......@@ -82,7 +84,7 @@
- name: install nltk data using rendered shell script
command: "{{venv_dir}}/bin/python -m nltk.downloader -d {{nltk_data_dir}} all"
command: "{{ease_venv_dir}}/bin/python -m nltk.downloader -d {{nltk_data_dir}} all"
when: nltk_data_installed.stdout != "Found"
tags:
- ease
......
......@@ -35,6 +35,32 @@
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
- name: create the ora virtual environment
file: path={{ ora_venv_dir }} owner=root group=adm mode=2775 state=directory
tags:
- ora
- name: bootstrap the ora virtual environment
command: /usr/local/bin/virtualenv {{ ora_venv_dir }} --distribute creates={{ora_venv_dir}}/bin/activate
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,9 @@ 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_venv_dir: "{{ venv_dir }}"
ease_venv_dir: "{{ venv_dir }}"
ora_gunicorn_workers: 4
ora_nginx_port: 18091
ora_gunicorn_port: 8091
ora_auth_config: {}
......@@ -21,3 +24,44 @@ 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
ease_debian_packages:
- python-pip
- gcc
- g++
- gfortran
- libblas3gf
- libblas-dev
- liblapack3gf
- liblapack-dev
- libatlas-base-dev
- libxml2-dev
- libxslt1-dev
- aspell
- python
---
# override the default virtualenv for ora
ora_venv_dir: "/opt/wwc/virtualenvs/ora"
# ease and ora share the same virtualenv
ease_venv_dir: "/opt/wwc/virtualenvs/ora"
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