免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1808 | 回复: 0
打印 上一主题 下一主题

planet-lab平台的布置 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-10 18:03 |只看该作者 |倒序浏览
   最近需要把国家自然基金项目赶快结题,所以导师也催的紧.正好自己也在研究网格和高性能计算,所以老板就把部署planet-lab环境的任务交给我.鄙人英语很烂,所以花了很长时间的去读指导书.最后基本上搞定,但是还有问题,希望网友们能给我点解答.(planet-lab一般供给高校做研究)
    以hello_world为例,来详细介绍如何布置环境.

  • 需要的软件

  • Python 2.3 or higher
  • 可以访问的目录,并且这个目录也可被web服务器访问
  • 该web服务器需要装php4.1 or higher

    • 部署步骤

  • 在planet-lab的主页上注册一个email帐号,并且需要PI(管理员)分配给你一个slice(抽象的).
  • 生成访问planet-lab上所有可用节点的公钥私钥.用$ssh-keygen -t rsa -f ~/.ssh/id_rsa 然后把.ssh/id_rsa.pub上传到planet-lab上你的账户的key中
  • 把planet-lab上所有的节点加入到你的slice中,可以在浏览器的地址栏中输入:http://comon.cs.princeton.edu/status/tabulator.cgi?table=table_nodeviewshort&format=nameonly&persite=1&
    select='resptime>0',把结果存储到nodes.txt中,假设所有的操作都在~/planetlab/hello_world目录下
  • 把节点加入到你的slice中,可以在工作目录下输入python脚本$ python
    >>> import xmlrpclib
    >>> api_server = \
    ... xmlrpclib.ServerProxy('https://www.planet-lab.org/PLCAPI/')
    >>>
    >>> auth = {}
    >>> auth['Username'] = "user" >> auth['AuthString'] = "pass" >> auth['AuthMethod'] = "password"
    >>>
    >>> node_list = [line.strip() for line in open("nodes.txt")]
    >>>
    >>> api_server.AddSliceToNodes(auth, \
    ... "你的slice名称", node_list)
  • 安装部署作业的软件codeploy,具体可参看安装手册(跟一般安装软件步骤相同,注意:在最后可能运行软件时找不到multiquery命令的错误提示,这就要你给codeploy搞好环境变量)
  • 如果你所安装的机器正好是一台web服务器,那你就可直接跳过这步;否则,你就要配置你这台机器,使它变成一台web服务器(安装apache,如果你不知道是否安装,你可用rpm -qa|grep httpd来查看)
  • 在你的工作目录下建立一个可被写的文件phonehome.txt,并输入命令$ touch phonelog.txt
    $ chmod 666 phonelog.txt                        在你的可被web访问的目录下,存储一下文件phonehome.php phonelog.php 和phonehome.py文件                                                                                                                 ' . "\n";
    echo '']http://earth.google.com/kml/2.0">'[/url]
    ."\n";
    echo '' . "\n";
    $phonelog = file("phonelog.txt");
    foreach ($phonelog as $entry) {
    $fields = explode("\t", trim($entry));
    if ($fields[4] == "None" || $fields[5] == "None") continue;
    ?>
    1000000
    1
    1
    relativeToGround
    ,0
                                                                                                                                                                                                                                                                                                                                                       #!/usr/bin/python
    ### phonehome.py
    ### Hello World demonstration script
    phonehome_url = "
    http://www.your.url/~username/hw_demo/phonehome.php
    "
    import sys, urllib, xmlrpclib, socket
    api_server = xmlrpclib.ServerProxy('https://www.planet-lab.org/PLCAPI/')
    auth = {}
    auth['AuthMethod'] = "anonymous"
    auth['Role'] = "user"
    hostname = socket.gethostname()
    query = api_server.GetNodes(auth,
    {'hostname': hostname}, ['site_id'])
    site_id = query[0]['site_id']
    site_info = api_server.GetSites(auth,
    {'site_id': site_id}, ['site_id', 'name', 'url',
    'latitude', 'longitude', 'login_base'])
    site_info = urllib.urlencode(site_info[0])
    urllib.urlopen(phonehome_url, site_info)
  • 最后来运行下./codeploy ~/public_html/helloworld \
    >
    http://www.your.url/~username/helloworld/
    hello(注意:这个要跟你的存放目录和具体url有关,不要盲目照写)

    • 注意,在连接节点时,可能每连一个节点,它就要你输入passprase,很麻烦,我教你可以用下法:                        $eval `ssh-agent`                               $  ssh-add ~/.ssh/id_rsa     
    • 我的问题,我用ssh连接一个节点时,每次到了sending envirnment时就不走了,但我感觉应该连上了.请各位高手告诉我.

    参考文献:
    hello_world.pdf 来源于planet-lab网站


    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/73287/showart_1285843.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP