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

介绍

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:

sudo su

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

apt-get update

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

确保您在/root目录中:

cd /root

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

apt-get install -y git-core

从GitHub克隆AppScale源代码:

git clone git://github.com/AppScale/appscale.git

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

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

cd appscale/debian
bash appscale_build.sh

第2步 - 安装AppScale工具

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

回到/root目录:

cd /root

从GitHub克隆AppScale Tools源代码:

git clone git://github.com/AppScale/appscale-tools.git

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

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

cd appscale-tools/debian
bash appscale_build.sh

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

reboot

步骤3 - 配置AppScale部署

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

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

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

cd ~

创建初始AppScalefile配置文件:

appscale init cluster

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

用nano打开文件:

nano AppScalefile

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

# 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 :

appscale up

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

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键。然后,您将看到以下内容:

root@111.111.111.111's password: 

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

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

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组件初始化可能需要一些时间。

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

UserAppServer is at 111.111.111.111
Enter your desired admin e-mail address:

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

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

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地址。

http://your_server_ip:1080/status
https://your_server_ip:1443/status

第4步 - AppScale管理面板

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

http://your_server_ip:1080/status

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

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

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

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

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

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

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

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

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

cd ~

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

git clone https://github.com/AppScale/sample-apps.git

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

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的好方法。

部署应用程序:

appscale deploy sample-apps/go/go-guestbook/

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

Enter your desired e-mail address: admin@example.com

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

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

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):

appscale remove guestbookgo

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

故障排除

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

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

强制清理AppScale状态

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

appscale clean

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

appscale up

AppScale日志文件

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

appscale logs directory/

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

cd /var/log/appscale

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

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

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》

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

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

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SpringBoot 核心技术

Linux杂谈:Mac/Linux下配置远程Linux服务器免密登录

你还在为你每次打开测试环境、生产环境需要登录而犯愁吗? 登录是必须的,但密码是可或缺的!!!

20230
来自专栏佳爷的后花媛

SVN命令解析以及问题解决(update...)

1.Repo-browser(浏览版本库) 通过“浏览版本库”可以直接查看服务器上指定目录下的所有目录结构(需要有相关权限),包括特定版本的作者,提交时间等,...

94630
来自专栏黑白安全

8种DOS命令

  它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:...

23320
来自专栏应用案例

Hexo博客的安装部署及多电脑同步

Hexo安装教程很多,我这里尽可能的讲的细一些,把容易踩坑的地方以及后期多电脑同步所遇到的问题列出来,以便给自己及大家参考。本文主要讲解安装部署后源文件同步问题...

1.4K70
来自专栏陈树义

如何在IntelJ下用Maven创建一个Web项目

相信一开始做Web项目的同学都是直接把项目包放在WEB-INF/lib目录下,然后就开始做项目了。但是之后接触了一些使用了Maven进行包管理的项目,我们就不得...

27960
来自专栏ChaMd5安全团队

WebLogic XMLDecoder反序列化漏洞(CVE-2017-10271)漏洞复现&修复方案

0x00 漏洞简介 此次漏洞是针对Oracle WebLogic Server组件的WLS Security子组件 使用精心构造的xml数据可能造成任意代码执行...

496100
来自专栏北京马哥教育

Linux内核编译过程详解

前言 Linux内核是Linux操作系统的核心,也是整个Linux功能体现的核心,就如同发动机 在汽车中的重要性。内核主要功能包括进程管理、内存管理、文件管...

867100
来自专栏SpringBoot 核心技术

Git核心技术:在Ubuntu下为Gitolite添加管理端

在之前章节已经完成了服务端的配置,可以访问Git核心技术:在Ubuntu下部署Gitolite服务端查看配置步骤,因为gitolite的管理是通过一个名为git...

17220
来自专栏极客编程

IPFS环境安装与入门教程

IPFS(InterPlanetary File System,星际文件系统)是去中心化的,本文是介绍IPFS节点软件的系统环境搭建安装与使用方法的入门教程,并...

47730
来自专栏九彩拼盘的叨叨叨

CanIUse 命令行工具介绍

注意:如果使用的是Windows系统,需要在Git的命令行执行上述命令。否则会报Git Not Found的错。

7010

扫码关注云+社区

领取腾讯云代金券