这似乎是一个基本问题,但我不确定如何将git
用于我的厨师回购。我有一个厨师仓库,里面有2本食谱:
chef_docker_test
和docker
。
~/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依赖于来自市场的docker
食谱。管理这个的推荐方法是什么?我是否必须将2个烹饪书放在一个git仓库中,或者只是保留依赖关系并在我启动chef_docker_test
时安装它?
答案 0 :(得分:3)
您通常会使用Berkshelf或Policyfile工具来管理依赖项,就像您使用Bundler for Ruby或Pip requirements / pipfile for Python一样。你需要更具体地说明“尝试运行”以获得精确答案。 Test Kitchen包括对ChefSpec的直接支持。对于与Chef Server的接口,您可以通过相关工具上传,或者单独使用export / vendor命令将文件夹转储到chef-solo的正确结构中。