在造云记(1):从零打造一个私人云(提纲)中,我们主要介绍了本系列涉及到的核心技术。
现在,让我们从一个一个具体的技术难题开始上手实践。今天侧重介绍以下知识点:
它们在一键部署中,分别承担以下角色:
一个完整的 chef-solo 项目包括很多 cookbook。它是什么意思?
Ruby 社区的各位开发者非常熟悉这么几者:
那么,在云端管理的时候,是否也可以参考这种强大而友好的机制呢?有,这就是 chef 对应的 cookbook 的内容。它们对应的关系分别如下:
比如,我们来看一个典型的 berks 文件:
site :opscode
cookbook 'apt'
cookbook 'build-essential'
cookbook 'users'
cookbook 'rvm', :git => "https://github.com/fnichol/chef-rvm"
cookbook 'nginx'
cookbook 'postgresql'
大家是不是特别亲切?跟 gemfile 文件基本一致,只是,在上述示范中,我们使用了:
同样的,在 berks 中,我们照样可以使用隐私的 git 来写 cookbook。如上述例子中的 rvm。
它们的关系图如下:
整合以上知识点,我将其汇总在 Railsbox 项目中。它是我整合的一个部署项目,能够实现在 linode vps、阿里云、ucloud 与 vagrant 上的一键部署。启动一台空白的云主机,到全部部署 Rails 应用完毕,全程自动化。
更具体的使用流程,参考示例项目说明文档: