-
Notifications
You must be signed in to change notification settings - Fork 9
Home
This repo holds the scripts used to set up and operate the edX platform.
- Ansible -- takes raw compute resources and configures them so they can run edX services.
-
CloudFormation -- provision and set up the set of services you
need to host the edX stack with Amazon Web Services. A lot of the
Amazon alphabet soup is brought to the party:
- Servers (EC2)
- Network access control, NAT, and policy (VPC)
- Primary Student Database in MySQL (RDS)
- Load Balancers (ELB)
- Memcache (ElastiCache)
Please see our Ansible coding conventions before contributing to this repo.
- The Mailing list 'edx-code' on googlegroups.
- The IRC is '#edx-code' on freenode.
- The FAQ is in this wiki.
- edX devstack - for development, not production
- edX fullstack - this is all edX services running on a single server in a production like configuration
There are two types of configurations that are commonly used for edX deployments, the fullstack and the devstack
If you have any problem installing or starting the VM with Vagrant, first check that you have the required versions of '''VirtualBox (4.2.12)''' and '''Vagrant (1.3.1 or later)'''.
- Clone the configuration repo
git clone -b release https://github.com/edx/configuration
- Install the ansible requirements
sudo pip install -r configuration/requirements.txt
- Run "vagrant up" for the "shortstack" playbook
cd configuration/vagrant/shortstack
vagrant up
- Run "vagrant up" for the "fullstack" playbook (optional)
cd configuration/vagrant/fullstack
vagrant up
- Run "vagrant up" for the "devstack" playbook (optional)
cd configuration/vagrant/devstack
vagrant up
See https://github.com/edx/configuration/blob/master/vagrant/devstack/README.rst for usage instructions.
After installation connect your web browser to the following ports:
- LMS - 80
- Studio - 18010
WARNING: These instructions will potentially destroy the server they are run on, you should only do them on a virtual machine.
-
Launch an Ubuntu 12.04 server and login to it as a user that has full sudo privileges
-
Install the following packages on the server you are provisioning:
sudo apt-get install -y python-pip git-core build-essential python-dev libxml2-dev libxslt-dev
- On the new server, clone the configuration repo:
cd /var/tmp
git clone -b release https://github.com/edx/configuration
- Install the ansible requirements
cd /var/tmp/configuration
sudo pip install -r requirements.txt
- Run the edx_sandbox.yml playbook in the configuration/playbooks directory
cd /var/tmp/configuration/playbooks
sudo ansible-playbook -c local --limit "localhost:127.0.0.1" \
./edx_sandbox.yml -i "localhost,"
After installation connect your web browser to the following ports:
- LMS - 80
- Studio - 18010
You may want to override the default ports for Studio and lms-preview if you are setting up subdomains to connect to your sandbox. By default nginx will forward studio.* to the studio gunicorn process.
Example where preview.example.com, example.com and studio.example.com all point to the same server.
cd /var/tmp/configuration/playbooks
ansible-playbook -c local --limit "localhost:127.0.0.1" /var/tmp/configuration/playbooks/edx_sandbox.yml \
-i "localhost," -e 'cms_nginx_port=80 lms_preview_nginx_port=80 c_lms_base=example.com \
c_preview_lms_base=preview.example.com'