Articles of 厨师

保存选定节点的所有ohai信息

我正在运行厨师服务器12的开源版本。 在阅读一些文档时,我遇到了ohai ,它收集每个节点上的信息,并且据我所知,它将这些信息提供给客户端运行的代码,即食谱和提供者。 在厨师 – 客户端运行期间(对于特定angular色的所有节点),是否有任何方法可以保存所有ohai信息,因此可以使用全部或特定节点的刀来查询? 目前在search节点和节点信息时,只有less量的信息如ip地址可用。

如何解决berks和chef-solo之间的菜谱命名不符?

这个答案的后续。 跑厨师独奏: sudo chef-solo -c config.rb -j config.json Starting Chef Client, version 12.16.42 resolving cookbooks for run list: ["terraform"] ================================================================================ Error Resolving Cookbooks for Run List: ================================================================================ Missing Cookbooks: —————— No such cookbook: terraform Expanded Run List: —————— * terraform Platform: ——— x86_64-linux 使用berkshelf安装的食谱包含版本后缀 user@host ~ $ ls ~/.berkshelf/cookbooks/ terraform-0.5.3 如果将terraform-0.5.3重命名为terraform并再次运行chef-solo,则会findterraform cookbook,但是找不到另一个: Missing Cookbooks: —————— […]

厨师刀是否需要直接访问节点?

knife是否直接访问节点,例如,在引导过程中? 还是引导(和其他访问)都通过厨师服务器? 我想知道是否可以在AWS中configuration防火墙,以便只有主厨服务器可以访问节点上的WinRM端口(而不是我工作站所在的宽阔世界)。

厨师和软件包与长期运行的版本

我正在尝试与厨师和我的服务器configuration转移到它。 我遇到的一个障碍是如何处理必须手动编译和安装的软件包(configure,make,make install),但是要永远编译。 我不想阻止服务器启动时间,只是因为一个依赖需要永远构build。 具体用例:wkhtmltopdf。 具有完整function的Wkhtmltopdf需要一个自定义/修补的QT,它需要FOREVER编译。 下面是我看到的选项:1)在每次启动时使用chef编译软件包(Con:永远启动服务器)2)编译软件包一次,tar和它们。 然后下载包并安装它。 (Con:不适用于具有不同操作系统/硬件的机器)3)编译一次,只保留在一个基本的图像和厨师(厨师:包不是厨师) 有任何想法吗?

安装共享文件夹时,由于SSH错误,我无法离开

这是我收到的错误代码: The following SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed! mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` v-csc-1 /tmp/vagrant-chef-1/chef-solo-1/cookbooks 这就是我的Vagrantfile的样子: Vagrant::Config.run do |config| config.vm.box = "ubuntu-lucid-32" config.vm.forward_port 80, 8080 config.vm.share_folder "mysite.de", "/var/www/mysite.de", "../data" config.vm.provision :chef_solo do |chef| chef.cookbooks_path = "/cookbooks" chef.add_recipe "apache2" chef.add_recipe "php" […]

运行食谱名称

在厨师,这个配方运行时可以得到配方名称吗? 我想在日志/debugging中添加配方名称。 就像是: 厨师:Log.info“#{recipe_name} xxxx”

有没有一种方法来指定使用Vagrant和Hosted Chef的程序的版本?

我正在努力改善我的开发工作stream程,但是遇到了一些重大的障碍。 目前,我们在运行XAMPP的本地Windows机器上开发,然后在单独的机器上进行testing,然后通过FTP将更改推送到我们的现场服务器上。 这(我知道)是非常低效的。 我们使用Mediatemple的Dedicate虚拟服务器作为我们的托pipe服务,而且我最近已经了解到使用configuration服务的虚拟机本地开发的优势。 这让我了解到stream浪和厨师 。 让stream浪汉跑起来很容易,但是我努力尝试重新生产我们的服务器,因为他们是如何configuration的(主要是因为Plesk界面),我需要使用特定版本的程序。 例如,我的服务器正在运行CentOS 5.9以下内容: 阿帕奇 / usr / sbin / httpd -v Apache / 2.2.22(Unix) PHP php -v PHP 5.3.5 NGINX (用作apache的前端来处理PHP文件) / usr / sbin / nginx -v nginx的/ 1.3.0 这些只是我需要在厨师食谱中创build的一些项目。 我使用托pipe的厨师,但不能指示如何指定我需要添加到模拟我的活服务器的软件的版本。 有没有人有这样的运气? 我不是100%与厨师绑在一起(也可以使用木偶 ),但主要是听取厨师对傀儡的build议。 谢谢!

只有在厨师更新所有节点后,如何执行脚本?

我想制作一个配方,将软件更新可执行文件部署到所有服务器,然后将新版本信息发布到数据库。 只有在给定angular色的所有节点都部署了新的软件包版本之后,如何才能生成数据库请求的脚本

如何configuration厨师和一个.rb文件充满指示stream浪虚拟机

我可能弄错了整个概念:我有一个工作在Ubuntu 12.04 Vagrant虚拟机,最重要的是我想安装一些软件包和configuration文件。 我有他们设置在厨师,在pathcookbooks / my_project / recipes我有一个vagrant-dev.rb文件的所有说明。 现在我的Vagrant文​​件中的Vagrantconfiguration一定是这里的问题: config.vm.provision :chef_solo do |chef| chef.cookbooks_path = "cookbooks/my_project/recipes" chef.add_recipe "vagrant-dev.rb" end 当我加载我得到的虚拟机 FATAL: Chef::Exceptions::CookbookNotFound: Cookbook vagrant-dev.rb not found. 我在最后没有使用.rb。 我想这是一个完全不同的问题,我没有用正确的方法。 但search后,我找不到任何解释如何正确执行的内容。

当我没有完全控制服务器时,我还可以使用Chef(等)吗?

我想更好地控制我的部署环境,但是我与IT部门共享系统pipe理责任,IT部门拥有自己的(不完全自动的)进程,用于引导VM实例,pipe理组织用户和执行安全更新。 即使系统的初始状态超出了我的控制范围,并且由于厨师外部的安全更新(也可能还有其他手动干预)而定期更换,我仍然可以从使用厨师(可能是Chef-Solo)中受益吗? 我不能在IT部门引入不同的工作stream程。 他们的职责: 提供硬件和虚拟机 安装具有“基本function集”的操作系统(目前是SLES 11) 从相同的SLES版本应用安全更新 pipe理任何组织用户的访问权限 备份 我的职责: 安装和pipe理应用程序依赖关系(使用策略来selectSLES分发包) 将安全更新应用于不属于SLES发行版的已安装的任何内容 configuration所需的服务 部署应用程序 据我所知,这与主厨背后的一个完全控制的环境背道而驰,并且会为生产环境之间以及他们与我的分段环境(IT从不触及的本地VM)之间的分歧留出空间。 使用像厨师这样的工具还是值得的“麻烦”? 我的工作stream程如何与完全控制的环境有所不同?