
# 部署应用至ECS
本章节以应用"phoenix-sample-standalone"为例，介绍如何将发布件部署至主机。如果您需要了解如何部署至CCE，请参照[部署应用至CCE](https://support.huaweicloud.com/bestpractice-devcloud/devcloud_practice_2007.html)操作。
关于ECS的准备，请参考[资源规划](https://support.huaweicloud.com/bestpractice-devcloud/devcloud_practice_2009.html)。
#### 添加目标主机至项目
部署应用到ECS之前，需要先将目标主机添加到项目基础资源中。
1. 进入项目"凤凰商城"，单击导航栏"设置 \> 通用设置 \> 基础资源管理"，进入基础资源管理页面。
2. 单击"新建主机集群"，配置以下信息，单击"保存"。 
   表1新建主机集群 
   | 配置项    | 示例                | 说明                                                                                                  |
   |:---|:---|:---|
   | 集群名称   | phoenix-hostgroup | 自定义主机集群名称，仅支持3-128位数字、中文、英文字母、"-"、"_"、"."。                                                          |
   | 操作系统   | Linux             | 选择加入集群的主机的操作系统类型，可以选择"Linux"或"Windows"。                                                             |
   | 主机连通方式 | 直连模式              | 选择部署服务与目标主机的连通方式，可以选择"直连模式"或"代理模式"。                                                                 |
   | 执行主机   | 默认资源池             | 资源池是部署软件包时执行部署命令的物理环境的集合。 可以选择服务提供的"默认资源池"，也可以将自有的服务器作为资源池。 |
      
   
   
3. 保存成功，在"目标主机"页签中单击"添加或导入主机"。
4. 选择添加方式"导入已购ECS"，找到[资源规划](https://support.huaweicloud.com/bestpractice-devcloud/devcloud_practice_2009.html)中准备的主机"phoenix-ecs"，在"操作"列中单击"导入"。
5. 配置以下信息，单击"确定"。 
   表2添加主机 
   | 配置项   | 示例              | 说明                          |
   |:---|:---|:---|
   | 认证方式  | 选择"密码"。         | 连接ECS的认证方式，支持密码和密钥两种方式。     |
   | 用户名   | 输入"root"。       | ECS的登录用户名，Linux主机通常为"root"。 |
   | 密码    | 输入在购买ECS时设置的密码。 | ECS的登录密码。                   |
   | ssh端口 | 输入"22"。         | 通常为"22"，也可以自定义端口。           |
      
   
   
6. 保存成功，目标主机列表中新增一条主机记录，当"连通性验证"列的值显示为![](https://support.huaweicloud.com/bestpractice-devcloud/zh-cn_image_0000002321419309.png)，表示主机添加完成。
   
   如果主机连通性验证失败，请根据失败详情，参考[主机/代理机连通性验证问题排查方法有哪些？](https://support.huaweicloud.com/deployman_faq/deployman_faq_0010.html)排查处理。
   
   
 
#### 在ECS中安装依赖工具
样例程序的运行需要Docker及Docker-Compose环境，需要将依赖环境安装到目标ECS中。
1. 进入项目"凤凰商城"，单击导航"持续交付 \> 部署"，进入部署服务。
2. 在应用"phoenix-sample-predeploy"的"操作"列中单击![](https://support.huaweicloud.com/bestpractice-devcloud/zh-cn_image_0000002321410173.png)，选择"编辑"，进入编辑页面。
3. 选择"环境管理"页签，配置主机环境。 
   1. 单击"新建环境"，配置以下信息，单击"保存"。
      表3新建环境 
      | 配置项  | 示例          | 说明                                          |
      |:---|:---|:---|
      | 环境名称 | phoenix-env | 自定义环境名称，仅支持3-128位数字、中文、英文字母、"-"、"_"、"."。    |
      | 资源类型 | 主机          | 环境中的资源类型，默认为"主机"。                           |
      | 操作系统 | Linux       | 选择即将添加到环境中的主机的操作系统类型，可以选择"Linux"或"Windows"。 |
         
      
   
   2. 保存成功，在"资源列表"页签中单击"导入主机"，在弹框中选择已配置好的主机集群与主机，单击"导入"。
   
   3. 页面提示导入成功，资源列表中显示新增的主机。 关闭此窗口，环境列表中显示新建的环境。
      
   
   
   
   
4. 在"部署步骤"页签，编辑应用的步骤。 
   1. 选择步骤"安装Docker"，在环境下拉列表中选择"phoenix-env"。如果页面显示弹框"是否将后续步骤的环境也修改为phoenix-env？"，单击"确定"。
   
   2. 选择"执行shell命令"，在"shell命令"框中添加以下两行命令。
      ```
      docker -v
      docker-compose -v
      ```
      
   
   
   
   
5. 单击"保存并部署"，启动部署任务。 
   当出现页面提示"部署成功"时，表示任务执行成功。
   如果部署失败，请根据失败步骤信息与日志中的报错信息，参考[部署常见问题](https://support.huaweicloud.com/deployman_faq/deployman_faq_00002.html)排查处理。
   
   
6. 查看日志，找到如下图所示的日志内容，表示说明安装Docker及Docker-Compose成功。 
   图1查看部署日志   
   ![](https://support.huaweicloud.com/bestpractice-devcloud/zh-cn_image_0000002321539117.png)
   
   
 
#### 配置并执行应用
1. 进入项目"凤凰商城"，单击导航"持续交付 \> 部署"，进入部署服务。
2. 在应用"phoenix-sample-standalone"的"操作"列中单击![](https://support.huaweicloud.com/bestpractice-devcloud/zh-cn_image_0000002286850682.png)，选择"编辑"，进入编辑页面。
3. 选择"环境管理"页签，配置主机环境。 
   1. 单击"新建环境"，配置以下信息，单击"保存"。
      表4新建环境 
      | 配置项  | 示例          | 说明                                          |
      |:---|:---|:---|
      | 环境名称 | phoenix-env | 自定义环境名称，仅支持3-128位数字、中文、英文字母、"-"、"_"、"."。    |
      | 资源类型 | 主机          | 环境中的资源类型，默认为"主机"。                           |
      | 操作系统 | Linux       | 选择即将添加到环境中的主机的操作系统类型，可以选择"Linux"或"Windows"。 |
         
      
   
   2. 保存成功，在"资源列表"页签中单击"导入主机"，在弹框中选择已配置好的主机集群与主机，单击"导入"。
   
   3. 页面提示导入成功，资源列表中显示新增的主机。 关闭此窗口，环境列表中显示新建的环境。
      
   
   
   
   
4. 在"部署步骤"页签，编辑应用的步骤。 
   1. 选择步骤"选择部署来源"，完成以下配置。
      表5部署来源配置 
      | 配置项     | 示例                                                                                                 | 说明                        |
      |:---|:---|:---|
      | 选择源类型   | 构建任务                                                                                               | 软件包的来源，可以选择"制品仓库"或"构建任务"。 |
      | 环境      | phoenix-env 如果页面显示弹框"是否将后续步骤的环境也修改为phoenix-env？"，单击"确定"。 | 目标部署环境，可以选择"环境管理"页签添加的环境。 |
      | 请选择构建任务 | phoenix-sample-ci                                                                                  | 当"选择源类型"为"构建任务"时，显示此配置项。  |
         
      
   
   
   
   
5. 选择"参数设置"页签，为以下参数配置默认值。 
   表6参数设置 
   | 名称              | 默认值                                                                                                                   |
   |:---|:---|
   | docker_server   | 输入通过[配置SWR服务](https://support.huaweicloud.com/bestpractice-devcloud/devcloud_practice_2006.html#section1)获取的SWR服务器地址。 |
   | docker_username | 输入通过[配置SWR服务](https://support.huaweicloud.com/bestpractice-devcloud/devcloud_practice_2006.html#section1)获取的用户名。      |
   | docker_password | 输入通过[配置SWR服务](https://support.huaweicloud.com/bestpractice-devcloud/devcloud_practice_2006.html#section1)获取的密码。       |
      
   
   
6. 单击"保存并部署"，在弹框中单击"确定"，启动部署。 
   当页面显示"部署成功"时，表示部署成功。
   如果部署失败，请根据失败步骤信息与日志中的报错信息，参考[部署常见问题](https://support.huaweicloud.com/deployman_faq/deployman_faq_00002.html)排查处理。
   其中，如果步骤"执行shell命令"失败，请优先排查以下原因。
   - [ECS部署失败，报错"docker login failed"或"Get https://XXX denied"](https://support.huaweicloud.com/bestpractice-devcloud/devcloud_practice_2019.html)
   
   - [ECS部署失败，报错"expected alphabetic or numeric character, but found '\*'"](https://support.huaweicloud.com/bestpractice-devcloud/devcloud_practice_2020.html)
   
   
   
   
7. 验证部署结果。 
   1. 打开浏览器，输入"http://IP:5000"，其中IP为ECS的弹性公网IP地址，页面中显示商城主页。
   
   2. 输入"http://IP:5001"，其中IP为ECS的弹性公网IP地址，页面中显示商城仪表盘。
   
   
   如果访问网页失败，请参考[ECS部署成功，但访问网页失败](https://support.huaweicloud.com/bestpractice-devcloud/devcloud_practice_2013.html)检查主机配置。
   
   
 
