chef专题提供chef的最新资讯内容,帮你更好的了解chef。
在一个配方中,我想检查是否安装了服务,以及是否通知了安装它所需的3个资源.我尝试了服务资源,它在安装时正确识别服务,但如果未安装服务则抛出异常. 我不确定在这里使用什么动作. :没有什么只是跳过资源以便它被执行,但是当他们试图对不存在的服务进行操作时,任何其他操作都会出错. 如何检测服务是否已安装并根据该信息执行操作? 我在Windows上运行,如果那是相关的. 看看如何定义Windows服务 h
我正在学习Chef,我现在要做的是Ubuntu: execute "add-apt-repository ppa:#{node[:some_repo]}" do user "root" end execute "apt-get update" do user "root" end 但可能有更好的(“厨师风格”?)的方式做到。另外,我担心有时add-apt-repository等待执行的“
对于已经运行配置管理工具的人来说,这可能是一个简单的问题.配置管理工具(如Puppet或Chef)是否是保持已安装软件包最新的正确方法? 假设我运行了许多服务器,主要基于Debian和Ubuntu.安全更新或错误修复时,配置管理工具是否可以更轻松地更新从存储库安装的软件包? 我目前运行“unattended upgrades”让系统自动安装安全更新,但我仍然必须连接到服务器并运行aptitude
我正在运行Ubuntu,我想通过Vagrant和Chef在Virtualbox中设置一个VM.我认为我缺少的是我所拥有的 Windows Server 2008 R2 x64试用版的.box. 有谁知道我在哪里可以找到.box?如果没有,我将如何为Windows Server 2008构建Vagrant .box? 我最近不得不使用Chef Provisioning为Windows Server
我使用 official instructions在Ubuntu 12.04上安装了Chef Server,它使用嵌入了ruby 1.8.7的“omnibus安装程序”. 我正在尝试安装knife-windows,但是当我运行gem install knife-windows时出现此错误: ERROR: Error installing knife-windows: gssapi
我正在使用Chef Solo为Ubuntu 12.04提供基于Opscode的“Bento”框的Vagrant VM.当它完成配置并且我第一次使用SSH时,MOTD告诉我有包和安全更新.然后我手动运行sudo apt-get upgrade,这会在后续登录时删除该消息.有没有办法让Chef自动执行此步骤? “apt”食谱似乎没有处理这个问题.我的所有Google搜索都只查找apt-get upda
我正在使用chef-solo v10.12.0来配置Ubuntu 12.04 VM,并且我一直遇到一个问题,即当配置文件发生变化时,服务不会按预期重新启动或重新加载. 日志中没有错误,尽管它显然正在执行配方中的所有其他操作.作为一种解决方法,每次配方执行时我都会手动重启服务或强制重新加载/重启,但我更愿意弄清楚出了什么问题,让它按预期工作. 一个无法按预期工作的示例配方: package "pgb
所以我有一套配置为与vagrant一​​起工作的cookbook /角色.我现在正在部署应用程序,我想在我的服务器上使用chef-solo运行这些相同的cookbook.所以我只安装了chef-solo(与vagrant一​​起使用的版本),并尝试调用以下命令: sudo chef-solo -c solo.rb -j roles/clusterflunk_dev.json 不幸的是,生成了以下错
我想用 Ruby 1.9.2配置一个新的Ubuntu 10.04盒子.我正在使用Vagrant和Chef Solo为盒子提供我需要的一切(例如Rails,Rake,MongoDB).默认的Ruby版本是1.8.7. 有没有办法安装Ruby 1.9.2作为Vagrant / Chef配置过程的一部分? 我在Chef网站上读到了关于使用我自己的bootstrap模板 – 可能是用刀 – 比如this
我正在使用Vagrant和Chef来构建一个Ubuntu 12.04虚拟机.我正在使用opscode cookbook: https://github.com/opscode/cookbooks 我想使用opscode apt cookbook来安装软件包.我想确保它安装特定版本的软件包,以确保构建环境一致.这是我正在尝试做的一个例子: package "git" do action :ins
我试图从 this box开始使用Vagrant实例,然后开始我的厨师食谱.流浪档案: Vagrant::Config.run do |config| config.vm.box = "sausy64" config.vm.box_url = "http://cloud-images.ubuntu.com/vagrant/saucy/20131113/saucy-server-cloudi
我是Chef的新手,并且一直使用 Test Kitchen来测试我的cookbook的有效性,这非常有用.现在,我正在尝试确保在最初运行Chef之前,生产节点上的特定于环境的属性是正确的.这些将在一个角色中定义. 例如,我可能会使用带有开发设置的Vagrant框进行收敛,这样可以验证菜谱.我希望能够测试生产节点的角色.我想我希望这些测试作为描述我的环境的真相来源.看看Test Kitchen的文档
我想知道如何将文件从客户端节点传输到远程计算机.我已经检查过是否有可用的资源.我发现最接近的是remote_file,但它从远程位置获取文件并将其传输到客户端节点. 所以我通过编写一个执行自动scp的bash脚本尝试了另一个选项.但我无法复制该文件,但厨师 – 客户端运行良好,没有显示任何错误. 这是我复制文件的脚本: #!/usr/bin/expect -f # connect via scp
我正在尝试在Chef配方中动态执行Ruby逻辑,并相信实现这一目标的最佳方法是使用块. 我无法将块内分配的变量传输到主厨配方的主代码中.这是我试过的: ruby_block "Create list" do block do to_use ||= [] node['hosts'].each do |host| system( "#{path}/command --a
OpsWorks不会在部署时预编译资源.我在 this thread发现这个食谱,但我认为这不完整,或者缺少一些东西,因为我发现没有发现release_path的错误. precompile.rb: Chef::Log.info("Running deploy/before_migrate.rb...") Chef::Log.info("Symlinking #{release_path}/pu
我有一个目录结构(示例数据),我想在Chef配方中复制.似乎唯一的方法是显式创建每个单独的目录和文件: directory "/mnt/data/experiment1/dataset1" do recursive true only_if { node.chef_environment == "dev" } end directory "/mnt/data/experiment1
我有食谱,里面有食谱清单.使用厨师刀中的命令行工具从cookbook添加一些特定食谱(不是全部)的命令是什么? 我知道将整个cookbook添加到运行列表的命令,这是刀节点run_list添加服务器名称配方[cookbook name]. 所以你有正确的想法,刀节点run_list add $nodename $item是你想要的命令. 食谱[mycookbook]不添加“整本食谱”,而只是食谱[
我正在尝试为厨师食谱编写一个库,简化了一些常见搜索. 例如,我希望能够在cookbook / libraries / library.rb中执行类似的操作,然后在同一个cookbook中的配方中使用它: module Example def self.search_attribute(attribute_name) return search(:nodes, node[at
我为nginx网站提供了一些资源和提供程序,它为网站写了一个配置文件. action :start do template "/etc/nginx/sites-enabled/my_site" do source "nginx_site.conf.erb" notifies :reload, "service[nginx]" end end
我目前正在利用Vagrant和Chef为不同的应用程序配置单独的 Linux VM. 这些应用程序可从主机进行域寻址,无需在主机上设置任何其他内容.这是使用linux guest上的avahi实现的.主机然后通过访客的主机名访问,例如: myguest1.local -> VM#1 myguest2.local -> VM#2 我现在有另一个要安装的应用程序,要复制生产服务器,应该在一个VM中可以