Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bu-ist/bux-grader-configuration
A set of Ansible playbooks for quick provisioning of external graders.
https://github.com/bu-ist/bux-grader-configuration
edx sabermetrics
Last synced: 2 days ago
JSON representation
A set of Ansible playbooks for quick provisioning of external graders.
- Host: GitHub
- URL: https://github.com/bu-ist/bux-grader-configuration
- Owner: bu-ist
- Created: 2014-03-25T15:36:03.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2014-08-01T18:13:15.000Z (over 10 years ago)
- Last Synced: 2024-04-14T22:23:03.096Z (7 months ago)
- Topics: edx, sabermetrics
- Language: Python
- Size: 207 KB
- Stars: 1
- Watchers: 24
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# BUx Grader Configuration
Bootstrapping of BUx external grader environments for use with the [BUx Grader Framework](https://github.com/bu-ist/bux-grader-framework).
Provisioning is accomplished using [Ansible](http://www.ansible.com/home).
In addition a Vagrantfile is provided for quick setup of local development VMs with [Vagrant](http://www.vagrantup.com/).
## Prerequisites
In order for the grader to start it must be able to succesfully connect to a running XQueue instance. If your course will be hosted on edx.org, contact your program manager to set up your course queue and obtain credentials. See the [course author docs on external graders](http://edx.readthedocs.org/projects/edx-partner-course-staff/en/latest/exercises_tools/external_graders.html) for more details.
For development purposes you might consider standing up your own edX platform using the [edX configuration repository](https://github.com/edx/configuration). See the [Wiki page for installation options](https://github.com/edx/configuration/wiki#installation-options).
## Getting Started
Clone this repository to your build machine and install the requirements.
Use of `virtualenv` is highly recommended.```bash
$ git clone [email protected]:bu-ist/bux-grader-configuration
$ cd bux-grader-configuration
$ pip install -r requirements.txt
```## Configuration
The playbook uses roles which depend on the existence of a few variables.
```yml
grader_repos: https://github.com/your-grader-repository
grader_version: develop
grader_settings_module: settings
```The ``grader`` role will look for a top-level ``requirements.txt`` file in your course repository, which it will use to populate a ``virtualenv`` if found.
The ``grader_settings_module`` variable should refer to a settings module that is importable by Python from your repository root.
For example, if your settings module is located in ``settings/production.py``, the ``grader_settings_module`` should be set to ``settings.production``.
## Setting up a development VM
### Prerequisites
1. VirtualBox (https://www.virtualbox.org/)
2. Vagrant (http://www.vagrantup.com)
3. vagrant-vbguest plugin (https://github.com/dotless-de/vagrant-vbguest) (Optional)
4. vagrant-hostupdater plugin (https://github.com/cogitatio/vagrant-hostsupdater) (Optional)### Setup
1. Add your grader-specific configuration vars to `playbooks/group_vars/vagrant`
2. Run `vagrant up` to install and boot the VM and start provisioning with AnsibleThe first run will take a while -- consider grabbing a coffee or calling your grandmother.
Once it's completed, the grader should be up and polling xqueue inside the VM.
### Shared Folders
The VM will mount two shared folders for your development convenience:
* grader - /edx/app/grader/grader
* venv - /edx/app/grader/venv## Provisioning a Remote Server with Ansible
1. Add an inventory file to `playbooks/inventory` describing the remote system to be provisioned
2. Add your grader-specific configuration (see `playbooks/group_vars/all` for examples)
3. Provision with `ansible-playbook -i inventory/file grader.yml`## Managing the Grader
```bash
# Check grader status
$ /edx/bin/supervisorctl status# Start / stop grader
$ /edx/bin/supervisorctl start|stop bux-grader
```