草庐IT

Chef-Client

全部标签

ruby - 如何在 Chef LWRP 定义中实现动态属性默认值

我希望能够使用比方说3个参数来定义轻量级资源,其中两个是基本/基本参数,第三个是这两个参数的组合。我还想提供定制第三个参数的可能性。例如:如何修改以下代码以实现full_name属性的上述行为:资源定义:actions:installattribute:name,:kind_of=>String,:name_attribute=>trueattribute:version,:kind_of=>Stringattribute:full_name,:kind_of=>String提供商定义:action:installdoChef::Log.info"#{new_resource.full

ruby - Chef : Can I share common per-environment run list items?

我在Chef中使用环境,我想使用每个环境的运行列表。问题是我不想重复自己(就像我现在做的那样)。示例:{"name":"myapp","default_attributes":{},"json_class":"Chef::Role","env_run_lists":{"production":[#Haslesspackagesbecauseservicesarespreadacrossspecializednodes"role[base]","recipe[mysql::client]","recipe[myapp]"],"staging":[#Haslesspackagesbecau

ruby - Chef 传递修订变量以部署资源

我正在尝试将要部署的git分支传递给Chef部署资源,但它不起作用,我猜这是因为资源是单独编译然后才执行的?但我对Ruby的理解可能是有限的。所以我正在尝试这样做:ruby_block'revision'doblockdo#Somecodedeterminesthebranchtobedeployedbranch='master'node.run_state['branch']=branchendenddeploy"#{node['path']['web']}"doaction:deployrepository"#{node['git']['repository']}"revision

ruby - Chef 没有运行 apt (apt-get update) 配方。返回 100

在vagrant、macosx10.7.2上运行Ubuntu11.04。运行Chef服务器。尝试安装postgresql社区ChefRecipe时,我收到以下错误,即使我的基本角色看起来像这样(我添加了aptRecipe以尝试更新apt-get):name"base"description"Thebaseroleforsystems"run_list("recipe[apt]","recipe[vim]")尝试运行Chef:$vagrantreloaddb1dev[db1dev]Attemptinggracefulshutdownoflinux...[db1dev]Preparingh

ruby - 在 Chef 的提供者的 default.rb 中使用 File::read

我正在尝试创建一个LWRP,它将调用在其自身中定义的资源。我的Recipe结构如下:在机器Recipe的提供者中,我有如下代码片段:require'chef/provisioning'#driverforcreatingmachinesrequire'::File'defget_environment_json@@environment_template=JSON.parse(File::read(new_resource.template_path+"environment.json"))return@@environment_templateend代码只是试图读取一个json文件,

ruby - google/apis/drive_v2 身份验证新的 google Drive 身份验证。我也希望避免对 google-api-client 感到沮丧

首先,我的问题是关于使用我的Rails4.2应用程序获取googledrive_v2身份验证并创建新文件等。我有带有devise/omniauth2和google的Rails应用程序工作正常。我已经在googledevconsole中激活了webauth和googleAPIauth。两个客户端key均已下载并正常工作。话虽如此。我需要离线访问我的Rails应用程序才能使用、创建和删除goole文档和电子表格。我已经设置了.drive的范围,设置了离线访问等。我什至编写了代码,如果我去googleplayground并获得一个新的访问token来使用,它就可以正常工作。我的第一个问题是获

ruby - 如何使用 Ruby 2.2.3 和 rest-client 保存文件

我正在尝试使用restAPI下载文件,它似乎可以工作,但实际上我没有下载文件。我假设它是因为它进入内存,而不是我的文件系统。下面是负责的代码部分。在下面粘贴时,我的URL稍作编辑,我的authToken有效。backup_url="#{proto}://#{my_host}/applications/ws/migration/export?noaudit=#{include_audit}&includebackup=#{include_backup_zips}&authToken=#{my_token}"resource=RestClient::Resource.new(backup_

ruby - Chef - 执行 vs bash 资源

我同时使用了execute资源或bash资源。两者实现相同的结果:bash'Executemyscript'douser'root'cwd'/mydir'code我看到的唯一区别是bash实际上创建了一个shell脚本(名为/tmp/chef-script#{date}{#id}),其中code写好了。在execute或bash资源之间使用Chef执行shell脚本的最佳做法是什么? 最佳答案 对于单个脚本,使用execute。bash资源用于在配方代码中包含内联脚本内容。 关于ruby

ruby - rest-client 使用 authlogic 登录

我正在尝试使用Rest-clientgem为我的应用程序执行一些小任务,该应用程序使用Authlogic对用户进行身份验证。从Rest-Client的API中,我看到可以像这样发布登录过程所需的数据:require'rest_client'RestClient.post"http://127.0.0.1:3000/user_sessions",{:user_session=>{:username=>'myusername',:password=>'mypassword'}}.to_json,:content_type=>:json,:accept=>:json查看我的开发日志,我看到该

ruby - 在 Chef 执行期间在 native 扩展包之后安装 gem

我正在尝试在ChefRecipe中安装foggem,尽管gem安装发生在安装native包之前,因此gem安装失败package"libxslt-dev"package"libxml2-dev"chef_gem"fog"这是输出[Thu,14Mar201313:04:30+0000]INFO:Processingchef_gem[fog]actioninstall(ebs4000::update_volumesline23)[Thu,14Mar201313:04:52+0000]ERROR:Runningexceptionhandlers[Thu,14Mar201313:04:52+0