如何做好模块管理

    目前有三种管理依赖的方式:

    • Git submodules 通过git submodule的方式管理各个子模块
    • ruby bundler的扩展,使用Puppetfile来管理

    我们分别就这三种方式依次介绍一下,我们这里不说哪种方法最好,但我们会说明我们根据什么原因最终选择了哪种方法。

    该方法使用metadata.json文件来管理每个module之间的依赖关系,以puppet-nova为例:

    2.Librarian-puppet

    可以使用以下命令安装其所依赖的module:

    3.git submodule

    • sunfire 内部自研服务模块
    • karma 运维系统相关模块

    我们会为storm创建多个分支,例如:liberty,mitaka。在dev和test环境会使用git命令来切换代码,而在生产环境则会使用RPM包的方式来管理。这样做的好处是:

    • 遵循线上代码统一使用软件包管理的方式