- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不久前使用了 Vagrant,并且能够使用以下内容:
config.vm.provision :chef_solo do |chef|
chef.recipe_url = 'https://github.com/opscode/cookbooks/tarball/master'
chef.add_recipe 'nginx'
chef.add_recipe 'mysql'
chef.add_role 'web'
# You may also specify custom JSON attributes:
# chef.json = { :mysql_password => '' }
end
最佳答案
首先,我的建议是不要直接从 Git 的 master 分支使用任何人的 Recipe 。如果 Recipe 存储库的各个作者/维护者 - 个人或整体 - 每个“版本”都有 Git 标签,请使用它。否则,请使用您知道适用于您的基础架构的特定提交。虽然 GitHub 是一个用于共享代码的有用站点,但重要的是要记住这些是开发存储库。相比之下,大多数人不会在他们的应用程序中使用库核心的 master 分支,他们会使用该库的发布版本(无论是 gem、cpan 模块、包等)。
其次,Opscode 的 Recipe 已经发布了经过测试的版本,以确保它们按照自述文件所说的那样做。这些版本发布到 Chef Community Site .虽然他们有 repositories on GitHub ,我们建议使用网站上的版本。
要将手册从站点获取到您的本地系统,有多种工具可以支持本地开发工作流程。在内部,Opscode 使用 Berkshelf ,社区中的许多人也是如此。这是一个相当完整的工作流管理工具,包括类似于 RubyGems Bundler 的依赖解析器。 . Berkshelf 还与 Vagrant 集成,这意味着您的“berksfile”中的所有 Recipe 都将复制到 Vagrant 机器上,以便在 Chef 运行中使用。
chef-repo 顶层中的示例 Berksfile 如下所示;
site :opscode
cookbook "nginx"
cookbook "mysql"
cookbook "my_application", :git => "https://git.example.com/cookbooks/my_application.git"
berks install
下载 Recipe 。 Berkshelf 也将使用说明书中的元数据来解决它们的依赖关系。这将使用社区站点 API 下载 nginx 和 mysql 说明书,然后从内部 Git 存储库中检索“my_application”说明书。然后,要在 vagrant 中使用 berkshelf,请将其放在 vagrantfile 的顶部;
require 'berkshelf/vagrant'
berks upload
将所有 Recipe 上传到服务器,vagrant 中的客户端配置器将从服务器下载。
cookbooks
目录管理那里的所有内容,您的定制 Recipe 进入
site-cookbooks
.然后,您可以像往常一样将 Vagrant 与单独的配置器一起使用,或者将客户端/服务器与
knife cookbook upload
一起使用。 .
knife
因为它附带 Chef Client RubyGem 有一个插件,
cookbook site install
.虽然 Opscode 作为 Chef gem 的一部分支持和维护这一点,但许多人正在将他们的工作流程转移到使用 Berkshelf 或 Librarian。
Chef documentation has more information on this plugin .
关于chef-infra - 如何在 Vagrant 中使用新的 opscode 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14993677/
我们有一个用例,我们希望 Chef 编排等到机器中的特定目录被删除。有什么办法可以实现吗? 我在网上搜索了一下,发现了以下cookbook 我觉得它可以使用,但我很难理解如何使用它,没有关于使用它的读
我正在注册一个在运行列表中搜索其他节点属性的节点。 问题是当节点信息太大而无法通过 HTTP 放在服务器上时。 然后chef-client 打印“FATAL: Net::HTTPServerExcep
我找不到如何使用 chef 在 linux 中只安装一次设备。这意味着在其他 Chef 客户端上不应执行资源,因为那里的设备已经安装到特定路径。我怎样才能利用 Chef 的幂等性来做到这一点? ...
我的 Chef 服务器中有几个节点在引导时出现问题并且错过了 FQDN 和域自动属性,因此它们没有被 SOLR 索引并且不能被 knife 搜索。我无法重新启动这些机器,但想修复这个问题,我花了一段时
我使用 Vagrant 生成一个标准的“precise32”框并使用 Chef 对其进行配置,这样我就可以在 Windows 机器上工作时在 Linux 上测试我的 Node.js 代码。这很好用。
我们在我们的管道中使用 Opscode Chef,我们注意到部署(参见 http://docs.opscode.com/resource_deploy.html)创建了我们源代码的完整副本到/shar
我不久前使用了 Vagrant,并且能够使用以下内容: config.vm.provision :chef_solo do |chef| chef.recipe_url = 'https://gith
我正在尝试通过 PHP 与 Chef 集成 我使用了库 https://github.com/dv1r/php-chef与 Hosted Enterprise Chef 通信。当我从 Chef 检索信
我是 opscode 厨师的新手。我想在我的 Web 应用程序中集成 opscode Chef。我使用 web console 创建了一个节点Amazon EC2 上的操作码。现在我想知道该怎么做以及
我对厨师非常陌生,我正在尝试创建一个在 Digital Ocean Ubuntu 14.04 droplet 上运行的厨师服务器。我正在使用 this guide用于安装。我下载了 .deb 并安装得
我正在尝试使用 opscode chef cookbook 安装 tomcat6。我收到以下错误。 Recipe: tomcat::default * package[tomcat6] actio
我打算使用 https://github.com/opscode-cookbooks/mysql但是当我运行 vagrant provision 时 找不到菜谱 mysql 的 recipe ruby
我是一名优秀的程序员,十分优秀!