启动云时,定义在配方中的服务也将作为启动程序而启动。可是当测试和开发配方或部署没有依赖的服务时,你需要单独部署这些服务,而不是用作应用程序的一部分。

部署一个服务

下面是部署服务的步骤:

  1. 连接REST服务 — 在Cloudify shell命令行,输入: connect <RESTservice>
  2. 设置当前应用的上下文— 在Cloudify shell命令行输入: use-application <appName>
  3. 部署服务 — 在Cloudify shell命令行输入: install-service <serviceName>

禁用自我治愈

在安装命令中指定disableSelfHealing选项会阻止服务实例在一个生命周期中出错时而关闭,这个服务只会仅仅保留一个错误状态直到这个服务被卸载。

这是一个在云环境下调试服务的有用方法

如在Cloudify shell命令行输入: install-service -disableSelfHealing <serviceName>

通过properties来部署

在安装时你可以使用外部properties文件来重写服务配方的属性

使用install-service命令 –overrides选项来指向外部properties 文件

在第一阶段的部署,Cloudify打包你的配方并上传它到Cloudify控制器。然后,一个完全自动化的部署发生,正如配方所描述的。你可以监控部署进度在以下方面:

  • Cloudify shell —命令界面会显示部署的进度信息
  • Cloudify web management console —一旦部署成功,可以在web management console查看Services 视图来验证安装过程。
  • 检查安装日志 监控部署过程
  • 描述在配方中的计划服务实例数
  • 每个生命周期运行的事件成功或失败的详细的过程,下面是apacheLB 服务成功部署的过程
  • 取消服务部署
    在Cloudify shell命令行输入: uninstall-service <serviceName>
    失败事例
    对于生命周期事件失败 (如一个安装脚本), 服务实例被关闭 (停止和关闭事件被调用).
    Cloudify会通过调用初始化、安装和启动事件,从头开始启动一个新的实例
    Cloudify不会杀死机器本身
    当服务实例关闭时,cloudify会删除实例的服务目录
    从本地文件系统清理每一个额外的资源是服务的职责
    如果服务实例成功启动,但是底层进程(如JBOSS)意外死掉,我们会调用stop生命周期事件,然后调用start事件重启这个进程
    如果机器死掉,cloudify会重启一个机器。