本文仅关注dev_setup子目录,通过阅读本文及源代码,你能够大致了解运用dev_setup是如何实现对CF的布暑及启动的。
bin/vcap_dev_setup
parse options, sudo, bundle clear, ruby, gem, proxy, wget, config,chef, rake, git (准备最基本环境。可手动安装,不碍事)
----
lib/chefsolo_launch.rb
opts parse, default config attributes (what DEPLOYMENT_DEAFULT_SPEC ?),
--
插播: lib/job_manager.rb
CF安装组件,服务及相关,job文件的格式/重复/性能
安装(deployments目录中)job中的模块或服务(主要使用rake安装)
插播: vcap_defs.rb
class Deployment 定义在这!
--
继续:使用chef了!
(使用cookbooks, roles目录)创建solo.rb
创建solo.json
执行chef-solo命令及上面的文件安装
保存本次布暑的基本信息
显示结果: ok? false ?
----
cookbooks, roles是所有可选择的 -> 菜单(极其丰富)
deployments是你所想要安装 -> 您点的菜(用你所用)
lib 是你安装的具体实现 -> 做菜过程(极其复杂,通常我们不关心)
bin 对lib做封装,实现一键安装 -> 吆喝"服务员上菜"(我们动动嘴皮子就行,极其简单)
----
start, stop,restart等命令: 一行ruby执行脚本 (ruby xxx)
(一些特殊的组件要不要安装可以在这配置)
--
插播: vcap
start, stop, restart等命令具体实现在这里。vcap_dev只是"一键调用"
--
roles 只与 chef 有关。在最终布暑好的CF配置中,是与roles/ 无关的。由cookbooks决定!
job_dependency.rake -- install job
vcap_components.rb -- Components.register(name) --
@@named_components[name] = self; class Component 定义在此!
call by: bin/vcap