`

在ubunut 12.04 server 上部署 edx

edx 
阅读更多
前言:
  这个部署只是针对 2014年1月左右的代码, 因为脚本比较老,当然现在github上的开源edx 部署起来比去年的较容易, 最近更新的edx,生产环境我用了半天时间部署完成, 但是去年的edx, 我花了1天半时间, 这也并不是去年要安装的东西多, 而是很多包安装的时候没有现在的脚本优化的那么好, 还有影响最大的是网络和机器配置问题, 不管是新的edx还是旧的edx代码,部署起来都差不多, 脚本改变的不是很大,就看问题怎么解决

开源地址: https://github.com/edx/edx-platform

1. 环境要求:

Ubuntu 12.04 amd64 (oraclejdk required)

Minimum 2GB of memory, 4GB recommended for production servers (with only 2GB some swap space is required, at least during installation)

At least one 2.00GHz CPU or EC2 compute unit

Minimum 25GB of free disk, 50GB recommended for production servers

这是官网要求的参数, 而且系统必须是12.04 64位的, 开发环境在14.04 上弄过, 但是生产环境我就没有去研究过, 内存至少2G 还有2G交换空间, 如果没有交换空间, 装的时候有时候会报内存益出, 硬盘25G, 现在国内很多服务器自带20G, 根本不够, 装到一半的时候没有空间了, 后来又加了50G的空间

2. 更新,升级系统到最新状态
sudo apt-get update –y
sudo apt-get upgrade –y
sudo reboot

3. 安装项目基本要求环境

sudo apt-get install -y build-essential software-properties-common python-software-properties curl git-core libxml2-dev libxslt1-dev python-pip python-apt python-dev

wget https://bitbucket.org/pypa/setuptools/raw/0.8/ez_setup.py -O - | sudo python

sudo pip install --upgrade pip
sudo pip install --upgrade virtualenv

4. 脚本准备
git clone -b release https://github.com/edx/configuration
这是github上面最新的脚本,
我使用的是去年时候git clone的脚本

cd configuration/
sudo pip install -r requirements.txt

这步还有以后遇到的问题, 默认的安装包是从官网下载,国内网速比较坑, 直接指定 pip国内源安装

sudo pip install -i http://pypi.douban.com/simple/ -r requirements.txt

国内源:
http://pypi.douban.com/  豆瓣
http://pypi.hustunique.com/  华中理工大学
http://pypi.sdutlinux.org/  山东理工大学
http://pypi.mirrors.ustc.edu.cn/  中国科学技术大学
http://mirrors.aliyun.com/pypi/simple/ 阿里云

之后编译没有通过的时候, 修改pip的源, 修改的地方有几处,每个角色需要改, 分别在/edx/app/角色名称 目录下的.pip目录里,里面没有pip.conf文件, 需要建立
你可以 vim 或者touch一个pip.conf
例如:
cd /edx/app/edxapp
ll
会看到有个.pip目录
cd .pip
vim pip.conf

添加如下:
[global]
index-url = http://pypi.douban.com/simple

还有脚本里的,如果有官网源: http://e.pypi.python.org/simple
全部替换为国内源

vim edxapp/defaults/main.yml
edxapp_pypi_local_mirror:  'http://pypi.douban.com/simple'

5. 软件准备
执行脚本的时候, 有几个需要安装的软件下载比较慢, 提前下载

elasticsearch-0.90.11.deb 
jdk-7u51-linux-x64.tar.gz
mongodb-10gen_2.4.7_amd64.deb
nltk-data-20131113.tar.gz
rabbitmq-server_3.2.2-1_all.deb

期中mongodb和rabbitmq-server 我手动安装, 因为mongodb的源原来是官网的,安装相当的慢
sudo dpkg -i mongodb-10gen_2.4.7_amd64.deb
只要执行这句就行了, 初始化的时候在执行脚本的时候会初始化

当然也可以改为 国内的源
mongodb 国内源:
deb http://mirrors.bistu.edu.cn/mongodb/repo/ubuntu-upstart dist 10gen'

安装rabbitmq-server
sudo dpkg -i rabbitmq-server_3.2.2-1_all.deb   (会报缺少依赖)
执行
sudo apt-get install erlang-nox
sudo apt-get -f install  安装依赖

其他几个需要打包到一个目录下(我存放目录/edx/soft), 修改脚本的位置
cd /var/tmp/configuration/playbooks/roles

./oraclejdk/defaults/main.yml:
oraclejdk_url: "file:///edx/soft/jdk-7u51-linux-x64.tar.gz"

./ora/defaults/main.yml:      ora_nltk_download_url: file:///edx/soft/nltk-data-20131113.tar.gz

./discern/defaults/main.yml: discern_nltk_download_url: file:///edx/soft/nltk-data-20131113.tar.gz

./elasticsearch/defaults/main.yml:     elasticsearch_url: "file:///edx/soft/{{ elasticsearch_file }}"


6. 执行脚本
cd configuration/playbooks

sudo ansible-playbook -c local ./edx_sandbox.yml -i "localhost,"

如果安装过程中出错了,再次执行时候可以从出错的地方继续
sudo ansible-playbook -c local ./edx_sandbox.yml -i "localhost," --start-at-task="edxapp | install python base-requirements"

执行这个脚本会有很多次,不必担心,过程会很漫长
执行完之后,你的edx就可以访问了
lms端: ip
cms端: ip:18010

7. 注意事项
安装的时候你可以打开两个窗口,一个在执行脚本,一个可以通过ps ax|grep install 之类的查看进程, 看看到底这步在干什么,方便你解决可能出现的错误

当看到
16746 pts/0    S+     0:03 /edx/app/discern/venvs/discern/bin/python /edx/app/discern/venvs/discern/bin/pip install -r /edx/app/discern/ease/requirements.txt
进程有这些,而且卡在这里很久,或者出错了

这可能是你的pip源没有配好,源很慢,你可以直接执行这句,使用国内比较快的源
/edx/app/discern/venvs/discern/bin/python /edx/app/discern/venvs/discern/bin/pip install
-i http://pypi.douban.com/simple/
-r /edx/app/discern/ease/requirements.txt

每个角色都有个一个环境, 这里是discern, 使用的它目录下venvs的python和pip去执行
执行完这句之后, 从出错的地方继续执行脚本


又比如:
TASK: [edxapp | syncdb and migrate]
这条命令会报 _mysql_exceptions.OperationalError: (1044, "Access denied for user 'edxapp001'@'localhost' to database 'edxapp'")
用户没有权限,使用root登录mysql,执行如下命令
mysql> GRANT ALL PRIVILEGES ON edxapp.* TO 'edxapp001'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

等等

安装过程中需要安装ruby
ruby 默认的是国外的源,比较慢,可以换为国内淘宝的源
这里使用rbenv安装ruby
查看ruby 版本
/edx/app/forum/.rbenv/versions/1.9.3-p448/bin/ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux]
查看gem 版本
/edx/app/forum/.rbenv/versions/1.9.3-p448/bin/gem -v
1.8.23
查看gem 源
/edx/app/forum/.rbenv/versions/1.9.3-p448/bin/gem source -l
*** CURRENT SOURCES ***

http://rubygems.org/

删除源 http://rubygems.org/
/edx/app/forum/.rbenv/versions/1.9.3-p448/bin/gem source --remove http://rubygems.org/

添加源
/edx/app/forum/.rbenv/versions/1.9.3-p448/bin/gem sourc -a https://ruby.taobao.org/

此外还要修改Gemfile里的配置,
vim /edx/app/forum/cs_comments_service/Gemfile


source 'https://rubygems.org'
替换为
source 'https://ruby.taobao.org/'



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics