前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu 12.04上安装和配置AppScale

如何在Ubuntu 12.04上安装和配置AppScale

原创
作者头像
独钓寒江雪_Ly
修改2018-09-29 17:08:50
1.4K0
修改2018-09-29 17:08:50
举报

介绍

AppScale是一个开源计算平台,旨在在公共云,私有云和内部部署集群上部署Google App Engine应用程序。AppScale与Google App Engine API完全兼容,并支持Python,Go,PHP和Java。使用AppScale,您可以将现有应用程序迁移到任何云计算平台。您将在下面找到用于为给定API提供服务的开源组件列表。

课程准备

在本教程中,您将需要:

除了AppScale在空闲时使用的2 GB RAM外,AppScale还需要至少2 GB的RAM来编译所需的组件。对于标准应用程序部署,强烈建议至少使用4 GB的RAM 。可以使用带有交换文件的2 GB 腾讯CVM。但是,这超出了本教程的范围。

在撰写本文时,AppScale仅对Ubuntu 12.04提供官方支持。如果您修改构建脚本,则可以在Ubuntu 14.04上安装。但是,这也超出了本教程的范围,社区可能不支持。

安装AppScale和AppScale Tools的前两个步骤必须以root用户身份运行。其余步骤可以作为非root用户运行。

第1步 - 安装AppScale

对于前两个部分,我们将要以root用户身份运行所有命令。如果您以sudo用户身份连接到服务器,请输入root shell:

代码语言:javascript
复制
sudo su

首先,更新apt-get包索引:

代码语言:javascript
复制
apt-get update

我们现在准备安装AppScale。我们将从源代码编译AppScale。请注意编译源代码可能非常耗时。预计此过程需要15分钟或更长时间才能完成。

确保您在/root目录中:

代码语言:javascript
复制
cd /root

安装Git,以便您可以使用它来下载AppScale源代码:

代码语言:javascript
复制
apt-get install -y git-core

从GitHub克隆AppScale源代码:

代码语言:javascript
复制
git clone git://github.com/AppScale/appscale.git

切换到appscale/debian目录,然后运行构建脚本。

注意:此过程需要一些时间。构建脚本将安装任何缺少的依赖项并编译AppScale源代码。

代码语言:javascript
复制
cd appscale/debian
bash appscale_build.sh

第2步 - 安装AppScale工具

AppScale工具用于管理AppScale集群和部署应用程序。这些工具可以安装在本地计算机或服务器上。为简单起见,我们将在我们的服务器上安装这些工具。Mac OS X和Windows上的安装过程非常相似。你需要 在Windows 上使用Cygwin。有关更多信息,请参阅GitHub页面

回到/root目录:

代码语言:javascript
复制
cd /root

从GitHub克隆AppScale Tools源代码:

代码语言:javascript
复制
git clone git://github.com/AppScale/appscale-tools.git

切换到appscale-tools/debian目录,然后运行构建脚本。

注意:此过程需要一些时间。构建脚本将安装任何缺少的依赖项并编译AppScale Tools源代码。

代码语言:javascript
复制
cd appscale-tools/debian
bash appscale_build.sh

构建脚本完成后,重新启动是个好主意。

代码语言:javascript
复制
reboot

步骤3 - 配置AppScale部署

对于本教程的其余部分,您可以以任何用户身份运行AppScale Tools。这不需要是sudo用户。但是,首次启动AppScale时,您需要知道root用户的密码。AppScale将自动创建身份验证证书,将来使用AppScale Tools时将不再需要root密码。

服务器完成重新引导后,您已建立SSH连接,则需要配置AppScale部署。每次运行工具集时,AppScale工具都需要配置文件。在此步骤中,我们将创建名为AppScalefile的配置文件,启动AppScale ,并配置管理员帐户。

确保您位于用户的主目录中:

代码语言:javascript
复制
cd ~

创建初始AppScalefile配置文件:

代码语言:javascript
复制
appscale init cluster

现在,我们将服务器的IP地址添加到AppScalefile

用nano打开文件:

代码语言:javascript
复制
nano AppScalefile

在文件的顶部,您将看到以下部分:

代码语言:javascript
复制
# The deployment strategy (roles -> machines) that should be used in this
# AppScale deployment.
# The following is a sample layout for running everything on one machine:
ips_layout :
  master : your_server_ip
  appengine : your_server_ip
  database : your_server_ip
  zookeeper : your_server_ip

将默认IP地址替换为服务器的IP地址。编辑完文件后,按CTRL-X,按Y保存,然后按ENTER覆盖现有文件名。

现在我们可以从刚刚创建AppScalefile的目录启动AppScale :

代码语言:javascript
复制
appscale up

AppScale将要求您验证主机指纹和root密码。

代码语言:javascript
复制
The authenticity of host '111.111.111.111 (111.111.111.111)' can't be established.
ECDSA key fingerprint is ab:3a:f0:87:c8:4e:8c:ba:59:0e:06:64:1b:f6:fe:e8.
Are you sure you want to continue connecting (yes/no)? yes

键入yes,然后按ENTER键。然后,您将看到以下内容:

代码语言:javascript
复制
root@111.111.111.111's password: 

输入root用户密码,然后按Enter

输入正确的root密码后,您将看到以下内容:

代码语言:javascript
复制
Generated a new SSH key for this deployment at /root/.appscale/appscale69de89364b624a8a9be1b7f45ac23d40
Starting AppScale 2.3.1 over a virtualized cluster.
Log in to your head node: ssh -i /root/.appscale/appscale69de89364b624a8a9be1b7f45ac23d40.key root@111.111.111.111
Head node successfully initialized at 111.111.111.111. It is now starting up cassandra.
Copying over deployment credentials
Starting AppController at 111.111.111.111
Please wait for the AppController to finish pre-processing tasks.
​
Please wait for AppScale to prepare your machines for use.
AppController just started

启动AppScale时,它似乎挂起了AppController just started。这个是正常的。所有AppScale组件初始化可能需要一些时间。

最终,您将看到以下内容:

代码语言:javascript
复制
UserAppServer is at 111.111.111.111
Enter your desired admin e-mail address:

创建管理员用户帐户。输入用户的电子邮件地址,并提供密码。记住这些细节。您将需要它们来访问AppScale管理面板。

创建管理员用户帐户后,您将看到:

代码语言:javascript
复制
Creating new user account admin@example.com
Creating new user account admin@example.com
Your XMPP username is admin@111.111.111.111
Granting admin privileges to admin@example.com
AppScale successfully started!
View status information about your AppScale deployment at http://111.111.111.111:1080/status

AppScale将为您提供管理面板的链接。通常采用以下格式。通常,http地址将自动重定向到安全的https地址。

代码语言:javascript
复制
http://your_server_ip:1080/status
https://your_server_ip:1443/status

第4步 - AppScale管理面板

在浏览器中打开AppScale管理面板。应该在启动AppScale后为您提供链接:

代码语言:javascript
复制
http://your_server_ip:1080/status

系统可能会提示您接受自签名证书。

在AppScale管理面板中,用户可以通过单击“ 创建帐户”创建自己的帐户。但是,您需要先使用管理员帐户更改其权限,然后才能上传和删除自己的应用。

单击右上角的“ 登录”按钮。该登录按钮看起来可能在小屏幕上的不同,但它仍然是绿色的。

使用您在上一步中设置的管理员电子邮件和密码登录。然后,您将看到AppScale状态页面。

管理面板使您可以访问服务器统计信息和应用程序统计信息 您还可以部署和删除应用程序。从管理面板部署应用程序非常简单。出于本教程的目的,我们将学习如何从命令行部署应用程序。完成探索管理面板后,继续执行下一步。

第5步 - 部署您的第一个应用程序

AppScale提供了一组可以部署的示例应用程序。这些应用程序是测试AppScale集群的好方法。他们还使您熟悉应用程序部署过程。

您应该使用相同的用户帐户,并且您当前的目录应包含AppScaleFile。此文件包含AppScale管理部署所需的所有配置。

确保我们回到用户的主目录中:

代码语言:javascript
复制
cd ~

从GitHub克隆示例应用程序源代码以创建Guestbook App:

代码语言:javascript
复制
git clone https://github.com/AppScale/sample-apps.git

您将看到以下源代码下载:

代码语言:javascript
复制
Cloning into 'sample-apps'...
remote: Counting objects: 15742, done.
remote: Total 15742 (delta 0), reused 0 (delta 0), pack-reused 15742
Receiving objects: 100% (15742/15742), 318.96 MiB | 23.52 MiB/s, done.
Resolving deltas: 100% (4944/4944), done.

Guestbook App是测试数据存储和身份验证API的好方法。

部署应用程序:

代码语言:javascript
复制
appscale deploy sample-apps/go/go-guestbook/

系统会要求您为应用程序分配电子邮件地址。输入电子邮件地址,然后按Enter键

代码语言:javascript
复制
Enter your desired e-mail address: admin@example.com

这可以是任何电子邮件地址。如果数据库中尚不存在该用户,系统将提示您设置密码。出于本教程的目的,我们决定使用管理员帐户。

接下来,您将看到以下内容:

代码语言:javascript
复制
Uploading initial version of app guestbookgo
We have reserved guestbookgo for your app
Tarring application
Copying over application
Please wait for your app to start serving.
Waiting 1 second(s) to check on application...
Waiting 2 second(s) to check on application...
Waiting 4 second(s) to check on application...
Waiting 8 second(s) to check on application...
Waiting 16 second(s) to check on application...
Your app can be reached at the following URL: http://111.111.111.111:8080

打开浏览器中提供的URL,您将获得留言簿应用程序的服务。如果您仍然登录AppScale,则留言簿应用程序将使用您的电子邮件地址。如果您返回AppScale管理面板并注销,它将以匿名用户身份签署留言簿。

要更新应用程序,只需再次使用该appscale deploy命令即可。AppScale将自动检测并更新现有应用程序。您必须使用已拥有该应用程序的同一电子邮件地址。如果要更改所有权,可以删除并重新部署应用程序。

如果要并排运行同一应用程序的多个版本,则需要更改app.yaml文件中应用程序的名称。这是应用程序的主要配置文件,它位于应用程序的根目录中。

要删除应用程序,您可以使用以下命令(在部署过程中使用分配给您的应用程序的ID AppScale 替换guestbookgo):

代码语言:javascript
复制
appscale remove guestbookgo

您还可以从AppScale管理面板中删除和部署应用程序。

故障排除

AppScale是一个非常复杂的平台,事情可能会出错。我们将介绍您可以采取的一些步骤来帮助解决一些最常见的错误。建议您阅读官方AppScale故障排除页面以获取更多详细信息。

如果找不到问题的解决方案,AppScale会有一个非常活跃的邮件列表。确保在向邮件列表提交主题时,您需要包含尽可能详细的详细信息以及日志文件的副本。您将更有可能快速解决您的问题。

强制清理AppScale状态

appscale clean命令用于强制将VM置于干净状态,从而消除任何配置问题。

代码语言:javascript
复制
appscale clean

此脚本还将强制终止所有与AppScale相关的进程。如果您在初始部署时遇到问题,请在联系邮件列表之前先尝试此操作。此命令通常可以解决任何配置问题。然后,您可以再次运行appscale up以重新部署AppScale。

代码语言:javascript
复制
appscale up

AppScale日志文件

appscale logs命令将从AppScale部署中的所有节点收集日志文件,并将它们复制到指定目录。

代码语言:javascript
复制
appscale logs directory/

可以直接在/var/log/appscale目录中访问日志文件。

代码语言:javascript
复制
cd /var/log/appscale

如果由于某些原因使得appscale logs命令失败,您却将希望以这种方式访问日志。但是,对于多节点部署,您需要在每台服务器上执行此操作,这就是为什么建议您使用AppScale工具收集日志文件的原因。

appscale tail命令将提供部署中AppScale日志的实时读数。这对于实时监控应用程序和连接问题很有用。

代码语言:javascript
复制
appscale tail

调试AppScale部署

在调试AppScale部署时,我们应该对三个主要日志感兴趣。

  • controller-17443.log - 此日志是AppController的输出,AppController是AppScale的配置守护程序。由于此守护程序负责启动AppScale的所有必需服务,因此在出现AppScale部署问题时,它是最佳起点。
  • app___app_id-*.log - 每个已部署的应用程序都有自己的日志文件。如果您在部署应用程序时遇到问题,或者行为不符合预期,那么您就可以从这里开始了。
  • datastore_server-400*.log - 这是AppScale数据存储的日志文件。

结论

我们为单个服务器部署安装并配置了AppScale。我们学习了如何部署和删除应用程序。我们还通过签署留言簿应用程序来对我们的部署进行测试。签署Guestbook App证明了许多API正常运行。我们现在可以使用此AppScale安装来部署基于Google App Engine的自定义应用程序。

更多Ubuntu 教程请前往腾讯云+社区学习更多知识。


参考文献:《How To Install and Configure AppScale on Ubuntu 12.04》tu 12.04》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 课程准备
  • 第1步 - 安装AppScale
  • 第2步 - 安装AppScale工具
  • 步骤3 - 配置AppScale部署
  • 第4步 - AppScale管理面板
  • 第5步 - 部署您的第一个应用程序
  • 故障排除
    • 强制清理AppScale状态
      • AppScale日志文件
        • 调试AppScale部署
        • 结论
        相关产品与服务
        数据保险箱
        数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档