我创build了一个厨师食谱,其中提到了一个特定的rpm的安装。 这个rpm有一个版本号,需要从一个属性文件(它本身是dynamic创build的)dynamic加载。 这个厨师配方,然后需要加载到厨师服务器。 remote_file "Core_feature.rpm" do path "#{src_loc}core_feature_v91-2.noarch.rpm" 在这里, v91-2是需要通过读取属性文件dynamic进入配方的值。 这是可以实现的吗? 如果是的话,我该怎么去实现它(对ruby没有任何意见)!
我有一个运行外部安装脚本的执行块,我没有权力。 该安装脚本有时会立即做我想做的事情,在其他时间首先运行任意数量的更新,需要再次调用来进行实际的安装。 更新过程返回失败1,实际安装返回成功0.是否有一个优雅的方式来重新运行执行块,直到脚本返回0? 当然,我可以只将执行块的几个副本放入配方中,只有当创build的文件夹不存在时才运行,忽略运行是否成功。 但那将是难以置信的丑陋和黑客。
我认为,走的路将是encryption的数据包,但当我最终让他们在厨师独奏工作,我发现厨师寻找我configuration的机器上的AES密钥。 此外,虽然我必须创build一个新的私人密钥,以便厨师encryption数据,但我并不要求在解密时input密钥的密码,所以我认为它没有被实际使用。 那么,我是不是要在运行“刀厨”之前手动复制一个AES密钥到每台机器上,还是我在这个过程中做了一些错误的事情,厨师应该自己复制密钥?
厨师按顺序停止并开始服务,并想问不同的程序。 第1步:框架引导到jboss服务 bash "bootstrap application" do code <<-EOF ant bootstrap EOF end 第2步:然后启动jboss service "jboss" do action :start end 第3步:安装应用程序 bash "install application" do code <<-EOF ant install EOF end 在步骤2和3之间,ant安装返回错误,因为jboss尚未启动。 但在第二轮中成功。 显然第3步不知道如果JBoss已经开始。 厨师如何做到这一点?
随着chef.log_level设置为debug ,我的stream浪者configuration停止与此作为唯一的指标。 如果这是由于资源所致,那么我怎样才能从Linux VM中挖出造成我的进程的罪魁祸首呢? 在这一点上,我可以把vagrant ssh变成vagrant ssh 。
我正在尝试在Docker容器中重复使用现有的食谱,但大多数食谱将在厨师客户端运行期间(例如Tomcat,apache2)启动服务。 由于厨师独奏在图像创build过程中运行,厨师运行只会失败。 如何防止食谱启动服务? 我正在使用下面的Dockerfile FROM jr42/chef-solo-centos ADD chef /chef RUN cd /chef && /opt/chef/embedded/bin/berks vendor /chef/cookbooks RUN chef-solo -N mynode -c /chef/solo.rb -j /chef/solo.json 在我的runbook(solo.json)的Tomcat: { "tomcat": { "base_version": "" }, "run_list": [ "recipe[tomcat]" ] } 和Berksfile: source "https://supermarket.getchef.com" metadata cookbook 'tomcat'
我们有一个用例,我们只有在通过yum_package安装/升级新的内核版本时才需要重启一台linux机器。 目前我正在使用厨师独奏来运行这个。 ruby_block 'kernel-update-done' do action :nothing block do Chef::Application.fatal!('Kernel was updated. Please reboot and start chef again.') end end yum_package node[:linux][:packages][:kernel] do action [:install, :upgrade] notifies :upgrade, 'ruby_block[kernel-update-done]', :immediately end 在阅读一些博客的同时,我开始知道处理这些情况的最好方法是编写自定义的LWRP。我是写LWRP的新手,想知道如何继续。
我正在使用以下命令创build一个新的EC2实例: knife ec2 server create -I ami-f0b11187 –ssh-key "mykeyid" -f t2.micro –ssh-user ubuntu –identity-file ~/.ssh/mykey.pem -z –no-host-key-verify –server-connect-attribute public_ip_address Instance ID: i-3675f897 Flavor: t2.micro Image: ami-f0b11187 Region: eu-west-1 Availability Zone: eu-west-1b Security Groups: default Tags: Name: i-3675f897 SSH Key: mykeyid Waiting for EC2 to create the instance…… Public DNS Name: ec2-52-19-107-179.eu-west-1.compute.amazonaws.com Public IP Address: 52.19.107.179 […]
我正在厨师和stream浪汉工作。 我正在尝试使用php-fpmconfigurationnginx,并使用chef-solo启动新的服务器。 这是我的stream浪文件的configuration。 Vagrant.configure(2) do |config| config.vm.box = "ubuntu-15.10" config.vm.box_url = 'https://cloud-images.ubuntu.com/vagrant/wily/current/wily-server-cloudimg-amd64-vagrant-disk1.box' config.vm.network "private_network", ip: "182.217.46.65" config.vm.provision :chef_solo do |chef| chef.run_list = [ "recipe[nginx-php-fpm]" ] end 当我运行vagrant了一切运行完美,但nginx不安装,并在stream浪的情况下stacktrace我得到例外。 Chef::Exceptions::CookbookNotFound: Cookbook nginx not found. If you're loading nginx from another cookbook, make sure you configure the dependency in your metadata /opt/chef/embedded/lib/ruby/gems/2.1.0/gems/chef-12.7.2/lib/chef/cookbook/cookbook_collection.rb:38:in `block in initialize' /opt/chef/embedded/lib/ruby/gems/2.1.0/gems/ohai-8.10.0/lib/ohai/mash.rb:77:in `yield' /opt/chef/embedded/lib/ruby/gems/2.1.0/gems/ohai-8.10.0/lib/ohai/mash.rb:77:in […]
我需要一个用于构buildpython cli包的综合构build器框。 我想在这个stream浪者箱子上使用这本食谱 我以root身份运行它,因为omnibus安装程序需要使用/ opt中的数据来检查某些内容 我的vagrantfile看起来像这样: # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure(2) do |config| config.vm.box = "centos65opscode" # config.vm.provision "chef_solo" do |chef| # chef.add_recipe "omnibus" # end config.librarian_chef.cheffile_dir = "chef" config.vm.provision :chef_solo do |chef| chef.cookbooks_path = "chef/cookbooks" chef.add_recipe "omnibus" end end 由于stream浪者的图书pipe理员厨师插件似乎没有做任何事情我手动添加所有的依赖关系: 我得到这个错误: ==> default: NameError ==> default: ——— ==> […]