Middle Earth

goagent 安装

我总是后知后觉,现在才开始折腾 goagent。之前买过 VPN,最近一直用 ssh tunnel。试了 goagnet 才发现真心好用啊。

但是目前 GAE 貌似大面积被封了,所以 goagent 一开始安装都有问题,根本没法传到服务器上。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ python uploader.zip
APPID:zhngsn-p4
Application: zhngsn-p4 
Host: appengine.google.com
INFO - - [Jul 21 17:45:56] Server: appengine.google.com
Rolling back the update.
Traceback (most recent call last):
  File "/usr/lib64/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "uploader.zip/__main__.py", line 10, in <module>
    main()
[...]
  File "uploader.zip/google/appengine/tools/appengine_rpc.py", line 365, in Send
  File "/usr/lib64/python2.7/urllib2.py", line 400, in open
    response = self._open(req, data)
  File "/usr/lib64/python2.7/urllib2.py", line 418, in _open
    '_open', req)
  File "/usr/lib64/python2.7/urllib2.py", line 378, in _call_chain
    result = func(*args)
  File "/usr/lib64/python2.7/urllib2.py", line 1215, in https_open
    return self.do_open(httplib.HTTPSConnection, req)
  File "uploader.zip/fancy_urllib/__init__.py", line 367, in do_open
urllib2.URLError: <urlopen error [Errno 32] Broken pipe>

墙很高啊。

尝试用 tsocks,通过现有的 ssh tunnel 上传,一样的 URLError。有人提到可以设置 https_proxy 环境变量,但是手上又没有 http 代理 (socks5 代理能转成 http 代理么) 。

本来要放弃了,但是转念一想,刚才我还上传了 GAE 上的一个小网站呢。于是用 google 官方的 GAE SDK 试了下,还真成了。

goagent 代码其实很简单,需要上传到 GAE 的 app 就在 server/python 目录下。

所以,到 server/python 目录下,编辑 app.yaml,把申请的 app 名字填到第一行:

1
application: your-app-name

然后,把官方的 SDK 下载下来后,

1
/path/to/google_appengine/appcfg.py update .

就 OK 了。没被重置,也不需要每次都输密码。如果申请了多个应用做负载均衡,就依次修改 app.yaml,运行 appcfg.py update,把每一个都部署上。

go 版本在 server/go, 应该是一样的。

部署完后 (我搞了四个做负载均衡) 运行 local/proxy.py

Comments