教程中的Chef错误:在ubuntu版本10.04上找不到mysql_database的资源

时间:2013-06-21 23:44:53

标签: django amazon-web-services amazon-ec2 chef chef-recipe

我是Chef的新手,并试图了解教程:http://wiki.opscode.com/display/chef/Build+a+Django+Stack

很早以前,当尝试在AWS服务器上启动第一个实例时,我收到此错误:http://pastie.org/8068021

我已经给了谷歌一个好的方法,但我找不到一个简单的解决方案,让初学者到目前为止都能理解。

2 个答案:

答案 0 :(得分:2)

尝试将这些语句放入 site-cookbooks / main / metadata.rb

depends 'build-essential'
depends 'openssl' #depends on build-essential
depends 'mysql' # depends on openssl
depends 'database' #depends on mysql

我遇到了同样的错误,这是因为我忘了添加数据库 cookbook依赖项。

添加数据库 cookbook依赖项后,您可能会在后续烹饪尝试中遇到其中一个错误:

FATAL: Chef::Exceptions::CookbookNotFound: Cookbook aws not found.
FATAL: Chef::Exceptions::CookbookNotFound: Cookbook postgresql not found.
FATAL: Chef::Exceptions::CookbookNotFound: Cookbook xfs not found.

这只是因为数据库 cookbook有自己的依赖项。您可以根据需要添加相关的烹饪书,或者如果没有,只需将它们从 cookbooks / database / metadata.rb 中注释掉:

depends "mysql", ">= 1.3.0"
# depends "postgresql", ">= 1.0.0"  
# depends "aws"  
# depends "xfs"  

答案 1 :(得分:0)

如果您查看数据库食谱的metadata.rb,您会看到它取决于其他一些书籍。

depends "mysql", ">= 1.3.0"
depends "postgresql", ">= 1.0.0"
depends "aws"
depends "xfs"

这意味着为了操作,它还需要这些烹饪书。 * mysql_database *不是标准资源。它在mysql cookbook中有描述。 (此类资源的命名约定为[cookbook_name] _ [resource_name]。请寻求LWRP以获取更多信息。)