Alibaba Cloud Toolkit for Eclipse,简称Cloud Toolkit,是一款免费的IDE插件。当您在本地完成应用程序的开发、调试及测试后,通过该插件即可轻松将应用程序部署到ECS实例。

前提条件

  • 已注册阿里云账号。如还未注册,请先完成账号注册
  • 下载并安装JDK 1.8 或更高版本
  • 下载并安装适用于Java EE的Eclipse IDE 4.5.0或更高版本
  • 已获取AccessKey,详情请参见创建AccessKey
  • 已创建一台ECS实例。本教程中,创建的是Linux操作系统的ECS实例,实例规格为ecs.c6.large,具体操作请参见使用向导创建实例
  • 已创建网络类型为专有网络的安全组,并且安全组的入方向添加规则并放行21、22及80端口。具体操作,请参见添加安全组规则
  • 已安装Winscp或其它远程连接Linux操作系统的工具。

背景信息

本教程介绍如何在您本地的Windows系统下的Eclipse中安装Cloud Toolkit,并使用Cloud Toolkit快速将一个Java应用部署到ECS实例上。

操作步骤

  1. 步骤一:安装Cloud Toolkit
  2. 步骤二:设置AccessKey
  3. 步骤三:下载并上传JDK安装压缩包
  4. 步骤四:完成准备工作
  5. 步骤五:安装JDK
  6. 步骤六:安装Apache Tomcat
  7. 步骤七:部署Java应用程序到ECS实例

步骤一:安装Cloud Toolkit

  1. 在本地的Windows系统中启动Eclipse。
  2. 在菜单栏中单击Help > Install New Software...
    安装新软件
  3. 单击Add...
  4. 输入名称(例如Cloud Toolkit for Eclipse)以及下载地址http://toolkit.aliyun.com/eclipse,并单击Add
    编辑站点信息
  5. 选择需要的组件:选中Alibaba Cloud Toolkit CoreAlibaba Cloud Toolkit Deployment Tools复选框,并在下方Details区域中清除Contact all update sites during install to find required software复选框,然后单击Next
    选择组件
  6. 单击Next
  7. 选择I accept the terms of the license agreement, 然后单击Finish
  8. 单击Install anyway
    强制安装
  9. 单击Restart Now重启Eclipse。
    重启Eclipse

步骤二:设置AccessKey

AccessKeyID用于标识访问者的身份,AccessKeySecret用于加密签名字符串和服务器端验证签名字符串的密钥,必须严格保密。

完成以下操作,设置AccessKeyID和AccessKeySecret:

  1. 在Eclipse工具栏,单击Window > Preferences
    选择菜单
  2. 在左侧导航栏中,单击Alibaba Cloud Toolkit > Accounts
  3. 输入Access Key IDAccess Key Secret,然后单击Apply and Close完成设置。
    设置账号

步骤三:下载并上传JDK安装压缩包

  1. 下载Apache Tomcat
    说明 源代码版本会不断升级,您可以获取合适的安装包版本。
  2. 下载JDK安装压缩包
    说明 在ECS实例中下载Linux操作系统的JDK安装压缩包,解压缩时会出错。您可以下载Linux操作系统的JDK安装压缩包到本地,再上传到实例上。
  3. 登录ECS管理控制台
  4. 在左侧导航栏,选择实例与镜像 > 镜像
  5. 在顶部菜单栏左上角处,选择地域。
  6. 找到ECS实例,并在IP 地址列获取该实例的公网IP地址。
  7. 在Winscp工具里用公网IP地址连接Linux实例,然后将Apache Tomcat和JDK安装压缩包上传到Linux实例的根目录下。

步骤四:完成准备工作

  1. 远程登录ECS实例。详情请参见通过密码认证登录Linux实例
  2. 关闭防火墙。
    1. 运行systemctl status firewalld命令查看当前防火墙的状态。
      查看防火墙状态
      • 如果防火墙的状态参数是inactive,则防火墙为关闭状态。
      • 如果防火墙的状态参数是active,则防火墙为开启状态。本示例中防火墙为开启状态,因此需要关闭防火墙。
    2. 关闭防火墙。如果防火墙为关闭状态可以忽略此步骤。
      • 如果您想临时关闭防火墙,运行命令systemctl stop firewalld
        说明 这只是暂时关闭防火墙,下次重启Linux后,防火墙还会开启。
      • 如果您想永久关闭防火墙,运行命令systemctl disable firewalld
        说明 如果您想重新开启防火墙,具体操作,请参见 firewalld官网信息
  3. 关闭SELinux。
    1. 运行命令getenforce查看SELinux的当前状态。
      查看SELinux状态
      • 如果SELinux状态参数是Disabled, 则SELinux为关闭状态。
      • 如果SELinux状态参数是Enforcing,则SELinux为开启状态。本示例中SELinux为开启状态,因此需要关闭SELinux。
    2. 关闭SELinux。如果SELinux为关闭状态可以忽略此步骤。
      • 如果您想临时关闭SELinux,运行命令setenforce 0
        说明 这只是暂时关闭SELinux,下次重启Linux后,SELinux还会开启。
      • 如果您想永久关闭SELinux,运行命令vi /etc/selinux/config编辑SELinux配置文件。回车后,把光标移动到SELINUX=enforcing这一行,按i键进入编辑模式,修改为SELINUX=disabled, 按Esc键,然后输入:wq并回车来保存并关闭SELinux配置文件。
        说明 如果您想重新开启SELinux,具体操作,请参见 开启或关闭SELinux
    3. 重启系统使设置生效。
  4. 创建用户www来运行Tomcat。
    useradd www
  5. 创建网站根目录。
    mkdir -p /data/wwwroot/default
  6. 将网站根目录下文件所属用户修改为www。
    chown -R www.www /data/wwwroot

步骤五:安装JDK

  1. 新建一个目录。
    mkdir /usr/java
  2. 解压JDK安装压缩包(本示例中为jdk-8u241-linux-x64.tar.gz)到/usr/java
    chmod +x jdk-8u241-linux-x64.tar.gz
    tar xzf jdk-8u241-linux-x64.tar.gz -C /usr/java
  3. 设置环境变量。
    1. 运行vi /etc/profile命令打开/etc/profile
    2. 按下i键进入编辑模式。
    3. /etc/profile文件中添加以下信息。
      # set java environment
      export JAVA_HOME=/usr/java/jdk1.8.0_241
      export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
      export PATH=$JAVA_HOME/bin:$PATH
    4. 按下Esc 键退出编辑模式,输入:wq 保存并关闭文件。
  4. 运行命令source /etc/profile加载环境变量。
  5. 运行命令java -version,查看JDK版本信息。
    当显示JDK版本信息时,表示JDK已经安装成功。 jdk180241

步骤六:安装Apache Tomcat

  1. 依次运行以下命令解压apache-tomcat-8.5.53.tar.gz,重命名Tomcat目录,并设置用户权限。
    tar xzf apache-tomcat-8.5.53.tar.gz
    mv apache-tomcat-8.5.53 /usr/local/tomcat/
    chown -R www.www /usr/local/tomcat/
    /usr/local/tomcat/目录中:
    • bin:存放Tomcat的一些脚本文件,包含启动和关闭Tomcat服务脚本。
    • conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xmlweb.xml
    • webapps:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录。
    • logs:存放Tomcat执行时的日志文件。
  2. 配置server.xml文件。
    1. 运行命令cd /usr/local/tomcat/conf/切换到/usr/local/tomcat/conf/目录。
    2. 运行命令mv server.xml server.xml_bk重命名server.xml 文件。
    3. 运行命令vi server.xml打开文件。
    4. 按下i键进入编辑模式。
    5. 添加以下内容。
      <?xml version="1.0" encoding="UTF-8"?>
      <Server port="8006" shutdown="SHUTDOWN">
      <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
      <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
      <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
      <Listener className="org.apache.catalina.core.AprLifecycleListener"/>
      <GlobalNamingResources>
      <Resource name="UserDatabase" auth="Container"
       type="org.apache.catalina.UserDatabase"
       description="User database that can be updated and saved"
       factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
       pathname="conf/tomcat-users.xml"/>
      </GlobalNamingResources>
      <Service name="Catalina">
      <Connector port="8080"
       protocol="HTTP/1.1"
       connectionTimeout="20000"
       redirectPort="8443"
       maxThreads="1000"
       minSpareThreads="20"
       acceptCount="1000"
       maxHttpHeaderSize="65536"
       debug="0"
       disableUploadTimeout="true"
       useBodyEncodingForURI="true"
       enableLookups="false"
       URIEncoding="UTF-8"/>
      <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
        resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost" appBase="/data/wwwroot/default" unpackWARs="true" autoDeploy="true">
      <Context path="" docBase="/data/wwwroot/default" debug="0" reloadable="false" crossContext="true"/>
      <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
      prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
      </Engine>
      </Service>
      </Server>
    6. 按下Esc键退出编辑模式,输入:wq并回车来保存并关闭文件。
  3. 设置JVM内存参数。
    1. 运行命令vi /usr/local/tomcat/bin/setenv.sh, 创建/usr/local/tomcat/bin/setenv.sh
    2. 按下i键进入编辑模式。
    3. 添加以下内容。
      JAVA_OPTS='-Djava.security.egd=file:/dev/./urandom -server -Xms256m -Xmx496m -Dfile.encoding=UTF-8'
    4. 按下Esc键退出编辑模式,输入:wq并回车来保存并关闭文件。
  4. 设置Tomcat自启动脚本。
    1. 运行以下命令下载Tomcat自启动脚本。
      说明 该脚本来源于社区,仅供参考。阿里云对其可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。
      wget http://raw.githubusercontent.com/oneinstack/oneinstack/master/init.d/Tomcat-init
    2. 运行以下命令重命名Tomcat-init。
      mv Tomcat-init /etc/init.d/tomcat
    3. 运行以下命令为/etc/init.d/tomcat添加可执行权限。
      chmod +x /etc/init.d/tomcat
    4. 运行以下命令设置启动脚本JAVA_HOME。
      注意 脚本中JDK的版本信息必须与您安装的JDK版本信息一致,否则Tomcat会启动失败。
      sed -i 's@^export JAVA_HOME=.*@export JAVA_HOME=/usr/java/jdk1.8.0_241@' /etc/init.d/tomcat
  5. 设置开机自启动。
    chkconfig --add tomcat
    chkconfig tomcat on
  6. 启动Tomcat。
    service tomcat start

步骤七:部署Java应用程序到ECS实例

您可参见以下步骤,在本地Windows系统中用Cloud Toolkit将Java应用程序部署到ECS实例,部署完成后,您访问http://公网IP:8080时,会显示Tomcat test

  1. 在Eclipse中右键单击要部署的应用工程名,选择Alibaba Cloud > Deploy to ECS...
    选择菜单
  2. Deploy to Alibaba Cloud对话框中,您可以做如下设置。
    • Deploy File:选择部署方式。本示例中,选择Upload File。如果您的应用工程是采用Maven构建的,请您选择Maven Build
    • Choose File:选择要部署的文件。
    • Target Deploy ECS:选择您的实例所在的地域,并选择实例。
    • Deploy Location:填入部署在ECS实例上的目录,本示例中,目录为/data/wwwroot/default
    • Command:单击Select...,在弹出的对话框中单击Add...。在文本框里输入一个命令,这个命令会在Cloud Toolkit插件把Java应用程序部署到ECS的文件夹后自动执行。本示例中,输入service tomcat restart命令来重启Tomcat。您可根据您的需求输入要执行的命令。
    输入命令
  3. 单击Deploy开始部署Java应用程序到ECS实例。
  4. 在Eclipse的Console区域,您可以查看部署的进展信息。
    查看进展
  5. 在浏览器地址栏中输入http://公网IP:8080进行访问。
    出现如下图所示页面,表示已成功用Alibaba Cloud Toolkit for Eclipse插件部署Java应用程序到ECS实例。 部署成功

后续步骤

如果您要修改Java应用程序,可在Eclipse中直接修改,然后保存代码,再次用Cloud Toolkit插件将改动过的文件部署到ECS实例上。