最近,由于工作原因,在Azure上的Ubuntu虚拟机中安装了Open edX 实例,安装过程遇到了不少问题, 在从网上找答案的过程中,学习到了不同的知识。
注:若Ubuntu虚拟机Setup在Global Azure上, 进行Open edX安装过程会比较顺利, 若Setup在China Azure上, 我至今没有安装成功过。
创建SSH的身份验证证书文件
使用 putty(http://www.putty.org)工具连接Ubuntu虚拟机, 提供了两种选择进行身份验证:用户名+密码; 使用SSH证书。我们可以借助于openssl.exe进行证书的创建, 这个工具是伴随着git(http://git-scm.com/download/)安装包而安装的。
步骤如下:
1. 打开命令行控制台窗口。
2. 输入以下命令,并回车:
"Program Files (x86)Gitinopenssl.exe" req -x509 -nodes -days 365 -newkey rsa:2048 -keyout myPrivateKey.key -out myCert.pem -config "c:Program Files (x86)Gitsslopenssl.cnf"
3. 根据提示,输入您的信息。
4. 命令运行完成后,将会创建两个文件:myPrivateKey.key和myCert.pem
5. 将基于SSH的私有密钥转换成基于RSA的私有密钥。
6. 输入以下命令,并回车:
"C:Program Files (x86)Gitinopenssl.exe" rsa -in myPrivateKey.key -out myPrivateRSAkey.rsakey
7. 命令运行完成后,将会创建文件:myPrivateRSAKey.rsakey。
使用puttygen(http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)工具,生成一个.ppk文件,这个文件将是putty要使用的证书文件。
1. 运行puttygen.exe
2. 单击Load。
3. 浏览到文件myPrivateRSAKey.rsakey,或许你需要将浏览窗口过滤设置为*.*。
4. 单击Open, OK。
5. 单击Save Private Key,并将文件保存为MyPrivateKey.ppk。
在国际版Azure中配置Ubuntu虚拟机
在这个步骤中,要注意的是:
1. 选择Ubuntu的版本为12.04 LTS。
2. 选择使用SSH密钥进行身份验证,并选择myCert.pem文件。
3. 添加两个edX使用的终结点: LMS - TCP:80; Studio - TCP:18010。
配置Ubuntu虚拟机
1. 运行putty.exe
2. 在Session中,在Host Name中,将虚拟机的DNS名称粘贴进去
3. 展开Connection, SSH, 单击Auth。
4. 在Private key file for authentication:中,选择myPrivateKey.ppk文件。
5. 单击Open以打开命令终端。
6. 使用azureuser登录。
7. 输入以下命令,用于对Ubuntu虚拟机进行更新,运行完成后,重启:
sudo apt-get update -y sudo apt-get upgrade -y sudo reboot
安装Open edX
1. 重新运行putty.exe,登录到Ubuntu虚拟机。
2. 输入以下命令,并按回车:
screen -d -RR
3. 运行一键安装命令
OPENEDX_RELEASE=named-release/master wget https://raw.githubusercontent.com/edx/configuration/master/util/install/vagrant.sh -O - | bash
4. 等待安装过程完成,这个过程比较漫长。
安装结果有可能是Fail,不要着急, 先在浏览器中验证edX instance是否可用:
1. 打开浏览器,输入http://<dns name>:18010/
2. 单击Sign In,使用verified@example.com, 密码edx。
如果可以登录,那么Open edX安装过程虽然失败了, 但是Open edX主要功能还是可以使用。
如果无法登录,请考虑重新运行open edx的安装,这里建议使用手动安装。
手动安装步骤如下:
注:若是自动安装失败以后, 请先删除已拷贝的文件:
删除/var/tmp下的configuration文件
cd /var/tmp
rm -rf configuration
安装步骤:
1. 执行以下步骤:
sudo apt-get install -y build-essential software-properties-common python-software-properties curl git-core libxml2-dev libxslt1-dev libfreetype6-dev python-pip python-apt python-dev libxmlsec1-dev swig sudo pip install --upgrade pip sudo pip install --upgrade virtualenv
2. 然后将configuratoin代码库重新复制到本地:
git clone -b master https://github.com/edx/configuration
-b后边可以尝试选择一个您觉得最新的分支(https://github.com/edx/configuration)
3. 然后运行命令:
cd /var/tmp/configuration
sudo pip install -r requirements.txt
4. 然后运行命令:
cd /var/tmp/configuration/playbooks && sudo ansible-playbook -c local ./edx_sandbox.yml -i "localhost,"
成功安装不易, 放个图在这里鼓励一下:
为Ubuntu安装桌面
1. 运行putty.exe,登录到Ubuntu虚拟机
2. 在命令终端中,输入以下命令:
sudo su -
sudo apt-get install ubuntu-desktop
sudo apt-get install xrdp
使用sudo为用户设置密码
1. 运行putty.exe, 登录到Ubuntu虚拟机
2. 在命令终端中,输入以下命令:
sudo su sudo passwd azureuser
3. 随后,输入该用户的密码。
Ubuntu中常用Terminal命令
pwd - 显示当前路径
clear - 清空控制台显示信息
cd .. - 返回上一层目录
ls - 显示当前路径下的所有文件/文件夹
mv - 移动文件
mkdir - 创建文件夹
rmdir - 移除空文件夹
rm -rf -移除文件夹以及其中的所有文件