启动云时,定义在配方中的服务也将作为启动程序而启动。可是当测试和开发配方或部署没有依赖的服务时,你需要单独部署这些服务,而不是用作应用程序的一部分。
部署一个服务
下面是部署服务的步骤:
- 连接REST服务 — 在Cloudify shell命令行,输入: connect <RESTservice>
- 设置当前应用的上下文— 在Cloudify shell命令行输入: use-application <appName>
- 部署服务 — 在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会重启一个机器。