厨师菜谱交付 - 厨师服务器与artifactory的+ berkshelf(chef cookbo

2019-10-23 11:54发布

我公司一直在做一个厨师投资显著。 我们已经建立了食谱的一个可敬的图书馆自动化我们的基础设施。 我们已经有意忽略厨师服务器和食谱分享的问题,因为我们希望得到我们的食谱一些临界质量第一,以推动我们如何解决。 现在,我们在那里,我们正在探索的选项。 我们已经在Artifactory的投资大,我们愉快地使用它来存储来自我们的CI系统的跨Windows / .NET和Java中使用的NuGet,常春藤,行家,NPM和凉亭仓库中Artifactory的几乎一切。 我一直在阅读了关于等等这个话题:

在厨师回购管理定制食谱

什么做Berkshelf的API和厨师做超市不同于传统造物库?

而我挣扎看到厨师Server作为一个菜谱回购点的时候,我们已经在Artfiactory通用神器服务器。 是最适合到我们当前的环境模型将公布食谱从我们的詹金斯作业artifactory的,并使用Berkshelf根据需要拉下来从那里。 从我读它似乎Berkshelf会谈得来artifactory的一个来源,但我还没有找到如何做到这一点的详细信息。 到目前为止,我们遇到的每一个包管理器有一定的方式在Artifactory的点吧,所以我假设有是可行的。

任何人都可以分享如何最好地处理这个任何指导? 任何人都可以提供,如果berkshelf可以做到这一点愉快的任何细节?

Answer 1:

今天使用的厨师大多数人从他们的源代码库直部署。 既然你已经使用Artifactory的你及时了解保持你释放明确的记录在一个点的重要性。 防粘神器库创建构建您的软件和将其部署到目标系统的行为之间的健康部门。

用大厨服务器的专用实例(存储发布的食谱版本)只是一种选择。 这恰好发挥好与Berkself-API,并允许您继续使用Berkshelf作为工具食谱上传到目标服务器厨师的做法。

没有什么使用artifactory的阻止你。 你需要创建一个包含你的食谱和所有依赖的存档,berkshelf“一揽子”做到这一点。

berks package mycookbooks.tar.gz
mvn deploy:deploy-file \
    -Durl=$REPO_URL \
    -DrepositoryId=$REPO_ID \
    -DgroupId=org.myorg \
    -DartifactId=mycookbooks \
    -Dversion=1.2.3  \
    -Dpackaging=tar.gz \
    -Dfile=mycookbooks.tar.gz

该压缩包可以作为当前的厨师独奏过程的一部分,或可任选用于填充目标厨师服务器:

curl https://myrepo/org/myorg/1.2.3/mycookbooks-1.2.3.tar.gz
tar zxvf mycookbooks-1.2.3.tar.gz
knife cookbooks upload --all --environment my-prod-env

“环境”选项将设置在菜谱版本限制厨师的环境 ,如果你想成为其中的某些在运行时应用的版本,非常有用。



文章来源: chef cookbook delivery - chef server vs. artifactory + berkshelf