【问题标题】:How to manage Chef cookbook in Git which has a dependent cookbook如何在具有依赖食谱的 Git 中管理 Chef 食谱
【发布时间】:2018-02-27 09:09:51
【问题描述】:

这似乎是一个基本问题,但我只是不确定如何将git 用于我的厨师回购。我有一个厨师回购,其中包含 2 本食谱: chef_docker_testdocker

 ~/chef-repo
.
├── LICENSE
├── README.md
└── cookbooks
    ├── chef_docker_test
    │   ├── Berksfile
    │   ├── Berksfile.lock
    │   ├── LICENSE
    │   ├── README.md
    │   ├── chefignore
         ...

    ├── docker
    │   ├── CHANGELOG.md
    │   ├── CONTRIBUTING.md
    │   ├── README.md
    │   ├── libraries
    │   │   ├── docker_base.rb
    │   │   ├── docker_container.rb
    │   │   ├── docker_exec.rb
    │   │   ├── docker_image.rb
    │   │   ├── docker_installation_package.rb
    │   │   ├── docker_installation_script.rb
    │   │   ├── docker_installation_tarball.rb
    │   │   ├── docker_network.rb
    │   │   ├── docker_registry.rb
    │   │   ├── docker_service.rb
    │   │   ├── docker_service_base.rb
    │   │   ├── docker_service_manager_execute.rb
    │   │   ├── docker_service_manager_systemd.rb
    │   │   ├── docker_service_manager_sysvinit_debian.rb
    │   │   ├── docker_service_manager_sysvinit_rhel.rb
    │   │   ├── docker_service_manager_upstart.rb
  ...

大多数时候,人们似乎为每本食谱使用一个 git repo。我也想遵循这种方法。但是当我克隆它并尝试运行时,我的chef_docker_test repo 失败了。这是因为这个 repo 依赖于来自市场的 docker 食谱。推荐的管理方法是什么?我是否必须在一个 git 存储库中放入 2 本书,或者在我启动 chef_docker_test 时离开依赖项并安装它?

【问题讨论】:

    标签: git chef-infra


    【解决方案1】:

    您通常会使用 Berkshelf 或 Policyfile 工具来管理依赖项,就像您使用 Ruby 的 Bundler 或 Python 的 Pip requirements/pipfile 一样。不过,您需要更具体地了解“尝试运行”以获得准确的答案。测试厨房包括对两者的直接支持,ChefSpec 也是如此。对于与 Chef Server 的接口,您可以通过相关工具进行上传,或者对于单独使用 export/vendor 命令以正确的结构为 chef-solo 转储文件夹。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-24
      • 1970-01-01
      • 2018-02-13
      • 2016-04-13
      相关资源
      最近更新 更多