IPython + Notebook 提供了一种基于云的科学计算开发环境。它既能够使开发者享受到云计算的强大计算能力,也能够使开发者无需在自己本地安装任何软件就能有良好的开发界面。此外,从本地到云端,带宽要求极低。
准备工作:只需要你的本地浏览器即可!!
注册一个云计算帐号
这里我们建议注册超能云(SuperVessel Cloud)(注册网址:http://www.ptopenlab.com)。原因有两个:
-
超能云是OpenPOWER基金会支持下构建的,完全面向开发者免费的云平台。
超能云目前已经有了支持IPython + Notebook的镜像,免费供开发者使用。
(关于超能云SuperVessel 本身,可参看链接:http://my.oschina.net/u/1431433/blog/380504)
注册步骤很简单(如果您已经有了帐号,可以直接到下面一节)
进入网址:http://www.ptopenlab.com 。
点击右上方的“注册”按钮。在弹出的对话框填写你的有效邮箱地址,还有密码。邮箱地址必须有效,因为超能云(SuperVessel)会给您发一封激活的邮件。
3. 进入你注册使用的邮箱,有一封发自admin@ptopenlab.com的邮件,点击里面的激活链接,你的帐号就可以被激活使用了。
建立一个支持IPython + Notebook的虚拟机
1. 点击 http://www.ptopenlab.com 页面上的“申请POWER虚拟机”按钮,就可以进入SuperVessel云平台管理界面。 SuperVessel会要求您再登陆一次。您使用之前注册的帐号密码即可。
2. 用户登录后,进入主面板,如下图所示访问预装软件计算服务(Pre-installed compute service):
3. 通过选择预装软件计算服务(Pre-installed compute service), 进入预装好的开发环境镜像列表.如下图所示。
4. 选择“Python科学计算及应用开发环境”,点击“启动”。在如下弹出框继续选择“启动”。
在这里,界面提示会每天扣除10个蓝点。因为在你注册的时候,系统已经预先分配了一大批蓝点给用户。此外,SuperVessel他们会经常有小活动,奖励用户蓝点。基本上不用发愁蓝点的问题:)可以加入QQ组:SuperVessel (344373069)获得最新的活动信息,也可以关注微信公众号 SuperVessel。
5. 在上一个步骤中点击“启动”后,系统会通知新的实例创建成功。如果你原来没有在SuperVessel上面申请过资源,系统还会给你分配一个VPN帐号。
关于VPN的设置,可以参看链接:https://services.ptopenlab.com/mediawiki/index.php/VPN%E7%9A%84%E4%BD%BF%E7%94%A8 ,有十分详细的步骤说明。
登录并配置IPython + Notebook 开发环境
在这个步骤中,我们要登录到刚刚建立的云平台虚拟机配置开发环境。
1. 登录开发环境需要先进行VPN登录。具体VPN的登录方法,详见:https://services.ptopenlab.com/mediawiki/index.php/VPN%E7%9A%84%E4%BD%BF%E7%94%A8。
2. 在连通VPN后,即可登录该开发环境所在的虚拟机。可使用类似putty的工具在Windows环境下登录,或直接使用SSH在Linux环境下登录。
3. 这个开发环境需要在root权限下进行服务的启动、配置和停止。登录到虚拟机后,可以通过su命令切换到root。如:
opuser@gto:/home/opuser# su
root密码的初始值为passw0rd,在首次登录时会强制修改密码。修改的密码原则是:
至少8个字符 必须包括大写字母、小写字母和数字 大写字母在密码的首位或数字在密码的末尾都不算。 系统会提示重复确认输入的新密码。
4. 打开服务端口。本开发环境使用Web-Server方式提供远程图形化界面。目前默认使用的服务端口是9999。在使用前,需要到你的管理平台的界面 https://crl.ptopenlab.com:8800/dashboard/project/access_and_security/ 打开9999端口。具体操作步骤,可以参见链接:https://services.ptopenlab.com/mediawiki/index.php/%E6%8E%A7%E5%88%B6%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%8F%A3%E8%AE%BF%E9%97%AE
由于我们的开发环境是基于Ubuntu Linux构建的,所以不需要配置虚拟机内部的防火墙。在增加服务端口时,可以按照下图来配置必要的选项。
5. 启动IPython Notebook服务。在root帐号下,在虚拟机中,输入如下命令,启动远程科学计算开发环境的服务:
root@gto:~/# ipython notebook --profile=nbserver
服务启动成功后,会看到类似如下的命令行输出:
2014-12-21 18:11:35.339 [NotebookApp] Using existing profile dir: u'/root/.ipython/profile_nbserver'
2014-12-21 18:11:35.344 [NotebookApp] Using system MathJax
2014-12-21 18:11:35.351 [NotebookApp] Serving notebooks from local directory: /root/src
2014-12-21 18:11:35.351 [NotebookApp] The IPython Notebook is running at: https://[all ip addresses on your system]:9999/
2014-12-21 18:11:35.351 [NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
^C2014-12-21 18:11:41.925 [NotebookApp] interrupted
Serving notebooks from local directory: /root/src
The IPython Notebook is running at: https://[all ip addresses on your system]:9999/
在本地打开浏览器访问图形化开发界面
在您当前的终端电脑上启动浏览器,在地址栏输入
https://172.16.10.35:9999/
其中,172.16.10.35需要替换成您的虚拟机IP地址。因为我们要使用SSL加密Web和服务器之间的所有通信,所以不能是“http”而必须是“https”,但由于虚拟机使用的是直接的IP地址,所以浏览器会有警告提醒。我们直接接受该警告提醒即可。
对于IE浏览器,会出现如下图的警告:
选择“继续浏览此网站(不推荐)。”即可。Firefox或Chrome也会有类似的页面,选择类似选项即可。然后看到如下IPython的页面,证明连接服务器正常了:
在这个镜像中,我们设置IPython notebook的初始密码是 passw0rd . 使用该密码登陆进去,就可以进行第一个科学计算的操作了。
编写第一个IPython的远程科学计算程序
可以在页面上选择“New Notebook”,就会为新的程序打开一个新的标签页。例如,我们在新的标签页输入两行命令,
a = rand(100)
plot(a)
这两行命令很简单,先是定义数组a为100个随机数的数组。然后用plot命令把a数组生成线状图。 以下是您可以获得的界面:
是不是很简单,很方便呢?
修改IPython Notebook图形化界面登录密码
如果您不想使用初始密码,可以按照下面的步骤来修改IPython Notebook 服务的登陆密码。
1. 在root权限下,输入下面的命令,以生成新的密码
python -c "import IPython;print IPython.lib.passwd()"
2. 输入两次新的密码后,系统会为新的密码生成SHA串。
Enter password:
Verify password:
sha1:a83146285fe2:5288dfeb3a6a88cf46028af16992fadce... (安全原因略去)
3. 编辑配置文件
vim /root/.ipython/profile_nbserver/ipython_notebook_config.py
4. 修改密码项:
c.NotebookApp.password = u'sha1:a83146285fe2:5288dfeb3a6a88cf46028af16992fadce...'
5. 重新启动服务:
ipython notebook --profile=nbserver
密码修改完成!