Articles of 厨师

厨师食谱连续部署

我正尝试将我的厨师工作stream程融入到我通常的持续集成/部署工作stream程中。 我pipe理已经有一个jenkins的任务,检查git回购和运行foodcritic,但我想不出最后一步:推到食谱的厨师服务器。 我想到的一些想法: 使用刀:问题是,在我的jenkins服务器的build筑节点上没有安装刀,而AFAIK刀需要一个食谱目录来推动食谱。 另一方面,我不认为让jenkins用户执行所有刀子命令是一个好习惯 使用ruby刀,写一些ruby脚本供jenkins使用:可能会工作,但我不想尝试,因为我不认为这是最好的select 用cURL或任何类似的库进行一些REST-API调用。 在阅读API文档之后,我认为实现这一点是不值得的。 我的build筑节点将作为OSX和debian可用 – 如果这是我可能select的工具必不可less的。 所以任何经验,将不胜感激!

我可以使用Chef-Solo调配刀桉树创build的服务器

我能够使用刀桉树创build一个新的服务器,如下所示: knife euca server create 服务器已创build,但设置失败,并显示以下消息: "ERROR: Errno::ENOENT: No such file or directory – /etc/chef/validation.pem" 这是可以理解的,因为我认为它试图使用Chef Server进行configuration。 这就是问题。 我想用Chef Solo来configuration这个服务器(至less现在是这样)。 有没有什么办法指导刀桉提供厨师独奏新的服务器?

发布Azure虚拟机创build引导过程 – 虚拟机创build过程中的Azure用户数据机制?

创buildAzure Windows虚拟机之后,bootstrapping(winrm或ssh)如何完成? 我使用刀azure,并使用winrm或ssh,虚拟机创build,但无法启动。 我必须从一个已经有winrm或ssh的映像/ VHD开始,让bootstrap正常工作吗? 更新后添加: 在任何WinRM相关刀子命令正常工作之前,节点的WinRM安装必须正确configuration。 应将以下设置添加到您的基本服务器映像(AMI),或者使用您的云提供商提供的某种用户数据机制传入。 从这里

如何使用ChefSpectestingChef Server的安装?

我正在开始为我的厨师烹饪书写testing。 我正在使用ChefSpec来testing我的食谱。 我需要在我的一台主机上安装Chef Server,我想写一个testing。 到目前为止我有: spec/default_spec.rb ChefSpectesting文件: require 'chefspec' require 'chefspec/berkshelf' describe 'my_chef_server::default' do let(:chef_run) { ChefSpec::Runner.new.converge(described_recipe) } it 'includes the chef-server recipe' do expect(chef_run).to include_recipe('chef-server') end end 一个metadata.rb文件,声明chef-server食谱是一个依赖。 depends 'chef-server' 一个recipes/default.rb其中包括chef-server配方: include_recipe 'chef-server' 当我运行我的testing(使用rspec )时,我得到一个错误: ================================================================================ Recipe Compile Error in /var/folders/5g/dq2jk1sn30dgf7p4qhbvcjq80000gn/T/d20140429-77773-nxjusi/cookbooks/my_chef_server/recipes/default.rb ================================================================================ RuntimeError ———— Could not locate chef-server package matching version 'latest' for node. […]

用Docker.io强化Ubuntu

我是Docker的新手,请记住。 旧的方式: 创build云实例 添加Ubuntu操作系统 通过厨师提供/强化Linux 在本地开发应用 通过Capistrano或其他部署工具进行部署 docker的方式: 创build云实例 添加Ubuntu操作系统 ??? 我是否首先强化Linux,然后将其保存到Docker映像? 或者我创build一个Docker容器然后硬化它?

Windows客户端收敛的testing厨房失败WinRMAuthorizationError

我试图让客座Windows VM的testing厨房工作。 我跟着很多马特Wrock的优秀的博客文章。 我已经build立了一个可以工作的Windows Vagrant盒子 ,使用了正确的testing厨房和厨房 – stream浪者的分支 ,并设法让kitchen create工作。 在这一点上,我坚持让kitchen converge工作。 我会做一个融合,碰上: $ kitchen converge —–> Starting Kitchen (v1.3.2.dev) —–> Converging <default-windows-7>… Preparing files for transfer Preparing dna.json Resolving cookbook dependencies with Berkshelf 3.1.3… Removing non-cookbook files before transfer Preparing validation.pem Preparing client.rb >>>>>> ——Exception——- >>>>>> Class: Kitchen::ActionFailed >>>>>> Message: Failed to complete #converge […]

在Windows上与Chef一起添加一个组

我试图用厨师来pipe理Windows服务器,并且需要创build一些用户,将它们添加到一个组中,然后将该组添加到另一个组中。 user 'test.user' do password 'password' action :create end group 'TestGroup' do action :create members [ 'test.user' ] append true end group 'OtherGroup' do # This is line 43 action :create members [ 'TestGroup' ] append true end 这会导致一个错误: [2015-02-12T09:54:35 + 00:00]致命错误:ArgumentError:group [OtherGroup](users :: staff line 43)发生错误:ArgumentError:新成员无法添加到本地组,因为成员有错误的帐户types。 这就像厨师不能添加一个组到一个组。 将用户添加到组是没有问题的。 奇怪它似乎只影响一个自定义组。 我可以添加到build立在用户和pipe理员组罚款。 group 'Administrators' do action […]

如何同时指定食谱的食谱和版本?

我试图在节点run_list上同时指定一个食谱版本和一个食谱,到目前为止还没有弄清楚如何做。 我可以指定的版本就好了,这是可行的,我可以指定的配方,这是可行的,但如果我试图做到这一点失败。 加工: recipe[[email protected]] 还在工作: recipe[cookbook::recipe] 但是这个失败了: recipe[cookbook::[email protected]] 我也试过这也失败了 recipe[[email protected]::recipe]

刀不分析PowerShell中的JSONvariables

我试图创build一个亚马逊EC2实例使用“刀ec2服务器创build”,并通过JSON传递覆盖默认设置通过使用-j选项,其中$ json正确形成JSON文本和我得到相同的错误,如果我引用variables或不: PS C:\Users\chef> knife ec2 server create –region … -j $json 它失败,出现这个错误: C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/json-1.8.3/lib/json/common.rb:155:in `initialize': A JSON text must at least contain two octets! (JSON::ParserError) from C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/json-1.8.3/lib/json/common.rb:155:in `new' from C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/json-1.8.3/lib/json/common.rb:155:in `parse' from C:/Users/chef/AppData/Local/chefdk/gem/ruby/2.1.0/gems/knife-ec2-0.12.0/lib/chef/knife/ec2_server_create.rb :218:in `block in <class:Ec2ServerCreate>' 如果我尝试在命令行上放置JSON,则会得到一个不同的错误: C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/json-1.8.3/lib/json/common.rb:155:in `parse': 757: unexpected token at '{fusion_**** : *** }' (JSON::ParserError) from C:/opscode/chefdk/embedded/lib/ruby/gems/2.1.0/gems/json-1.8.3/lib/json/common.rb:155:in `parse' from C:/Users/chef/AppData/Local/chefdk/gem/ruby/2.1.0/gems/knife-ec2-0.12.0/lib/chef/knife/ec2_server_create.rb :218:in […]

如何在配方运行时使用厨师的ifconfig资源configurationnetworking接口

我正在通过Amazon Opsworks与Chef合作,并且需要为我的一些服务器configuration和configuration额外的networking接口,而且我很难弄清楚如何正确使用ifconfig厨师资源。 主要的问题是,当我正在写厨师食谱时,我不知道接口的IP地址。 我所见过的所有例子都显示了在资源名称中表示为一个常量string的目标IP地址,如下所示: ifconfig '10.0.0.1' do eth1 end 但是,我在配方执行时configuration了networking接口,因此我不知道在本地networking(Amazon VPC)内预置的networking接口将被分配的IP地址。 我写了一个ruby_block资源,提供接口和收集分配的IP,但是当我尝试将它传递给ifconfig资源时,我得到了厨师资源的错误,因为文档似乎暗示我应该这样做。 我的代码看起来类似于以下内容: ruby_block 'provision_and_get_IP' do # Inside the following function the AWS CLI is called to provision # a network interface and return the assigned IP address assigned_ip = provision_and_get_ip() node["my_attributes"]["assigned_ip"] = assigned_ip end ifconfig 'setup_interface' do device 'eth1' target lazy { node["my_attributes"]["assigned_ip"] } […]