Table of Contents generated with DocToc
Παρακάτω είναι η λίστα με τις συνεισφορές στο Edx.
Συνεισφορά | Συμμετέχοντες | issue |
---|---|---|
XBlocks Install Manager | Γκόλφω Βασιλείου, Καλαϊτζίδης Φώτης, Hazislari Elis | #3 |
WCAG-compatible accessibility theme | Λάζαρος Καραούλης, Μπούκουρας Κώστας, Κυρτσώνη Αλεξάνδρα | #8 |
XBlock - Code editor | Σκεύη Άννα, Χρυστάλλα Σάββα | #4 |
XBlock - Slide Viewer | Καραϊσκου Άρτεμις Αναστασία, Ναούμη Έλενα, Φώκου Αγγελική | #9 |
XBlock - SSH client | Μόνε Διονύσης, Μιρονένκο Βασίλης | #7 |
Xblock - BBB | Μαυρικάκης Γιάννης, Πολίτης Φίλιππος | #1 |
Μπορείτε να βρείτε τις παρουσιάσεις στο φάκελο presentations.
Εργαλεία που θα χρειαστούμε:
- VirtualBox
- Vagrant
- Git
Λειτουργικό σύστημα:
- 64bit λειτουργικό σύστημα (αν κάποιος έχει 32bit ενδέχεται να μην μπορεί να τρέξει το VM(info))
- 4GB RAM minimum
- 2 cpu cores minimum
- 30GB χώρο στο δίσκο
Το VirtualBox υπάρχει για όλα τα λειτουργικά συστήματα. Αν δε το έχετε ήδη, κατεβάστε το από εδώ: https://www.virtualbox.org/wiki/Downloads.
Χρήστες Windows/MacOSX κατεβάζουν το εκτελέσιμο και το τρέχουν. Όσοι έχουν Linux το εγκαθιστούν μέσα από τη διανομή τους.
Πηγαίνοντας στη σελίδα των downloads (https://www.vagrantup.com/downloads.html) κατεβάστε το αντίστοιχο εκτελέσιμο για το λειτουργικό σας.
Windows/MacOSX χρήστες τρέχουν το εκτελέσιμο και εγκαθιστάται.
Για τους Linux users κατεβάστε το deb/rpm πακέτο με τη σωστή αρχιτεκτονική
(tip: uname -i
) και εγκαταστήστε με:
# Debian/Ubuntu
sudo dpkg -i vagrant_*.deb
# Fedora/CentOS
sudo yum local-install vagrant_*.rpm
Το Edx είναι μία τεράστια πλατφόρμα που αποτελείται από πολλαπλά components, γραμμένα σε διαφορετικές γλώσσες τα οποία τρέχουν μόνο σε Linux.
Χρησιμοποιείται η τεχνολογία του virtualization, έτσι ώστε μπορούμε να έχουμε όλοι μία κοινή πλατφόρμα πάνω στην οποία θα δουλεύουμε ανεξαρτήτως λειτουργικού.
Το VirtualBox υλοποιεί αυτή την τεχνολογία και όπως γράφει και στο site, είναι μία cross-platform virtualization application. Αυτό σημαίνει πως μπορούμε να διαμοιράσουμε τους πόρους του συστήματός μας ώστε να εγκαταστήσουμε ολόκληρα λειτουργικά συστήματα sandboxed από το κύριως σύστημά μας.
Το κύριως σύστημά μας αναφέρεται ως host, ενώ το λειτουργικό που σηκώνεται μέσω του virtualbox λέγεται guest.
Για να εγκατασταθεί ένα λειτουργικό, πρέπει να έχουμε το image (iso) από το οποίο θα κάνουμε boot για να ξεκινήσει η διαδικασία εγκατάστασης. Φανταστείτε να πρέπει να δοκιμάσετε αν μία εφαρμογή παίζει σε όλες τις διανομές και να πρέπει να εγκαταστήσετε από την αρχή την κάθε μία. Για αυτό το λόγο θα χρησιμοποιήσουμε το vagrant.
Όπως αναφέρθηκε παραπάνω, κατά το development ενός τόσου μεγάλου project όπως το Edx, πρέπει να υπάρχει μία κοινή πλατφόρμα ώστε να αποφεύγονται bugs λόγω διαφορετικών λειτουργικών. Εκτός αυτού, ακόμα και Linux να χρησιμοπιεί κανείς, η διαφορά ανάμεσα στις διανομές και τα πακέτα τους είναι τεράστιες. Για το λόγο οι developers του Edx αποφάσισαν να βασιστούν και να χρησιμοποιήσουν το Ubuntu 12.04.
To Vagrant παίρνοντας πληροφορίες από ένα αρχείο, το Vagrantfile
, μπορεί
να σηκώσει έτοιμα Virtual Machines (VMs) μόνο με μία εντολή. Ένα τέτοιο
έτοιμο image παρέχουν οι developers του Edx το οποίο μέσα έχει προεγκατεστημένα
πολλά εργαλεία που χρησιμοποιούνται κατα το development.
Το Αnsible είναι ένα configuratio management system, γραμμένο σε python, το οποίο χρησιμοποιείται για να στήσει αυτόματα όλα τα dependencies που χρειάζονται από το Edx.
Παρακάτω θα βρείτε μερικές χρήσιμες εντολές για το vagrant.
Καθώς είμαστε μέσα στο φάκελο όπου περιέχεται το Vagrantfile
δίνουμε:
command | description |
---|---|
vagrant up | σηκώνεται το VM που περιγράφεται στο Vagrantfile. Αν είναι η πρώτη φορά που το τρέχουμε θα τρέξουν και τα ansible scripts μαζί |
vagrant halt | κάνει poweroff το VM |
vagrant reload | κάνει reboot το VM |
vagrant status | δείχνει το status του VM |
vagrant provision | ενώ είναι πάνω το VM, τρέχει τα ansible scripts |
vagrant ssh | συνδεόμαστε στο VM μέσω ssh |
Φτιάχνουμε ένα φάκελο, κατεβάζουμε το Vagrantfile και ξεκινάμε το VM:
mkdir devstack
cd devstack
curl -L https://raw.githubusercontent.com/edx/configuration/master/vagrant/release/devstack/Vagrantfile > Vagrantfile
vagrant box add lavash-devstack 20141118-lavash-devstack.box
vagrant plugin install vagrant-vbguest
vagrant up
Αφού έχει σηκωθεί το VM, συνδεόμαστε με ssh.
Προσοχή: Όσοι δουλεύετε τοπικά, πρέπει να είστε μέσα το directory όπου
βρίσκεται το Vagrantfile
.
## όσοι έχουν laptop
vagrant ssh
## όσοι έχουν okeano
ssh vagrant@okeanos_ip
όπου okeanos_ip
αυτή που σας έχει σταλεί με το ανάλογο password.
Το επίσημο documentation για το πως θα ενεργοποιήσετε τις υπηρεσίες βρίσκεται εδώ.
Συνοπτικά, αφού έχουμε συνδεθεί με ssh είναι:
## αλλαγή χρήστη
sudo su edxapp
## για το lms
paver devstack lms
## για το studio
paver devstack studio
Για το forum (αν και δε θα μας χρειαστεί) πρέπει να συνδεθούμε με άλλο
χρήστη. Αρχικά βεβαιωθείτε ότι τρέχετε τις παρακάτω εντολές με το χρήστη
vagrant
:
sudo su forum
bundle install
ruby app.rb -p 18080
Οι ανάλογες πόρτες είναι:
service | vagrant port | okeanos port |
---|---|---|
LMS | http://localhost:8000 | okeanos_ip:8000 |
Studio | http://localhost:8001 | okeanos_ip:8001 |
Forum | http://localhost:18080 | okeanos_ip:18080 |
virtualenv /home/vagrant/.xblock
source /home/vagrant/.xblock/bin/activate