首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打包chef环境并在单独的配置服务器上运行

打包chef环境并在单独的配置服务器上运行
EN

Stack Overflow用户
提问于 2014-11-07 22:42:20
回答 3查看 462关注 0票数 2

我们制作了一些食谱,以便设置运行我们的软件解决方案的环境。这些食谱位于两个git服务器上,并依赖于公共食谱(我们使用的是berkshelf)。

我们需要将我们的软件解决方案配置到不同的客户端环境(它们的硬件)中,为此,我们希望能够在我们的一台开发计算机上创建一个包含所有内容的包,并将该包上传到客户端环境中的配置计算机。然后,我们希望使用该配置机为该客户端设置所有内容。

我们需要这样做的原因是,客户端环境中的供应机器将无法访问存储我们的食谱的git服务器。它甚至可能连互联网接入都没有。基本上,我们希望将客户端环境视为一个完全孤立的孤岛。

我希望能够将整个环境(包括依赖项)打包并上传到配置服务器上。在那里,我将启动chef-zero,并从中为该环境提供所有节点。

问题是,我真的不知道如何实现这一点。

EN

回答 3

Stack Overflow用户

发布于 2014-11-08 02:41:56

看看spiceweasel (https://github.com/mattray/spiceweasel)

我最近没有用过这个,但这是我们在客户集群上安装时的策略(在use-'ta-work-there)。

票数 0
EN

Stack Overflow用户

发布于 2014-11-08 19:22:33

Berkshelf documentation介绍了如何将食谱打包到单个归档中:

打包到/Users/reset/code/berkshelf-api/cookbook/cookbooks-1397512169.tar.gz的食谱$ cd ~/

/ berks api/Cookbook$berks package Cookbook

此存档可以直接提供给Chef-Solo,也可以提取并上传到Chef Server。

示例

把食谱打包

使用berkshelf打包你的"myapp“食谱和它的所有依赖项。

代码语言:javascript
复制
berks package myapp-1.0.tar.gz

用法: Chef solo

代码语言:javascript
复制
tar zxf myapp-1.0.tar.gz
chef-solo -c ~/solo.rb -j ~/node.json

用法: Chef服务器

将食谱上传到chef服务器

代码语言:javascript
复制
tar zxf myapp-1.0.tar.gz
knife environment create myapp-1_0 --description "myapp version 1.0" -d
knife cookbook upload --all --cookbook-path cookbooks --environment myapp-1_0 --freeze

针对chef服务器引导一些新的客户端节点

代码语言:javascript
复制
knife bootstrap node1 -E myapp-1_0 -r recipe[myapp] ..
knife bootstrap node2 -E myapp-1_0 -r recipe[myapp] ..
..

环境的创建是有意识的。它支持在运行时对食谱版本进行约束,从而在共享的chef服务器上提供隔离。

票数 0
EN

Stack Overflow用户

发布于 2014-11-08 20:14:10

您应该使用Packer for完成此任务,因为它将允许您为任何平台创建这些镜像,包括Dockerized版本,并且它可以与厨师食谱一起提供。

然后,将图像上传到任何位置,并更改您的Vagrantfile (或您使用的任何文件),以指向该图像作为您的起点。

作为示例和起点,只需查看根目录中"packer“文件夹下的Opscode Bento service repo (在GitHub上)。Opscode大量使用包装器为他们的ChefDK服务等提供专门的配置盒。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26803688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档