Chef infra 厨师:gem依赖于提供者
我们正在为资源创建一个提供程序。它代表在给定数据库中创建mongo用户Chef infra 厨师:gem依赖于提供者,chef-infra,Chef Infra,我们正在为资源创建一个提供程序。它代表在给定数据库中创建mongo用户 class LivingMongoCookbook::UserProvider < Chef::Provider::LWRPBase provides :living_mongo_user def whyrun_supported? true end def action_create db = Mongo::Connection.new(new_resource.host, new_re
class LivingMongoCookbook::UserProvider < Chef::Provider::LWRPBase
provides :living_mongo_user
def whyrun_supported?
true
end
def action_create
db = Mongo::Connection.new(new_resource.host, new_resource.port).db(new_resource.database)
users = db.getUsers
db.createUser({ user: new_resource.user, pwd: new_resource.passwd, roles: [ new_resource.roles ]})
new_resource.updated_by_last_action(true)
end
end
class LivingMongoCookbook::UserProvider
为了能够在db上创建用户,我们正在努力使用mongo ruby驱动程序。然而,我们得到了这样的信息:
================================================================================
Recipe Compile Error in /tmp/kitchen/cache/cookbooks/living_mongo/libraries/provider_user.rb
================================================================================ LoadError
---------
cannot load such file -- mongo Cookbook Trace:
---------------
/tmp/kitchen/cache/cookbooks/living_mongo/libraries/provider_user.rb:1:in `<top (required)>' Relevant File Content:
----------------------
/tmp/kitchen/cache/cookbooks/living_mongo/libraries/provider_user.rb: 1>> require 'mongo'
2:
3: # Chef Provider for creating a user and group for Elasticsearch
4: class LivingMongoCookbook::UserProvider < Chef::Provider::LWRPBase
5:
6: provides :living_mongo_user
7:
8: def whyrun_supported?
9: true
10: end
================================================================================
/tmp/kitchen/cache/cookbooks/living\u mongo/libraries/provider\u user.rb中的配方编译错误
=======================================================================================================================================加载错误
---------
无法加载此类文件--mongo Cookbook跟踪:
---------------
/tmp/kitchen/cache/cookbooks/living\u mongo/libraries/provider\u user.rb:1:in``相关文件内容:
----------------------
/tmp/kitchen/cache/cookbooks/living_mongo/libraries/provider_user.rb:1>>需要“mongo”
2:
3:#为Elasticsearch创建用户和组的主厨提供程序
4:class LivingMongoCookbook::UserProvider
似乎mongo驱动程序不可用
有什么想法吗?假设你有一个最新的ish Chef版本,gem不需要C编译器,将
gem'mongo'
添加到元数据中。rb
和Chef会帮你安装它。添加Chef_gem'mongo'
使用编译时true
将gem安装到Chef中(在您的提供者运行(参见文档)Ho之前使用ruby,在调用它的类之前,您必须要求使用“mongo”
。。。