没有在烹饪书中找到厨师食谱

  • 本文关键字: postgresql chef-infra
  • 更新时间 :
  • 英文 :


我正在尝试使用厨师的PostgreSQL食谱:https://supermarket.chef.io/cookbooks/postgresql readme

我得到这个错误:

Chef::Exceptions::RecipeNotFound: could not find recipe default for cookbook postgresql

我没有看到默认值。在回购:https://github.com/sous-chefs/postgresql/find/main

我已经添加了Berksfile和元数据的依赖项。在我的食谱中添加:

include_recipe 'postgresql'

我还添加了一个默认值。rb对应回购,include_recipe 'postgresql'对应回购。仍然说没有默认配方。我遗漏了什么吗?

编辑:

根据seshadri_c的答案,这个错误现在已经消失了。我试图安装扩展。在我的default.rb:

postgresql_extension 'postgres adminpack' do 
database 'postgres' 
extension 'adminpack' 
end 

但是得到错误

FATAL: NoMethodError: postgresql_extension[postgres adminpack] (******::default line 5) had an error: NoMethodError: bash[CREATE EXTENSION postgres adminpack] (/tmp/packer-chef-solo/local-mode-cache/cache/cookbooks/postgresql/resources/extension.rb line 31) had an error: NoMethodError: undefined method `[]' for nil:NilClass[0m 

在postgresql cookbook v7.0中引入了一个主要的更改。摘自超市页面:

如果你想知道在v7.0+中所有的食谱都去了哪里,或者我到底是如何使用这本新的食谱的,请参阅升级。

简而言之,所有的烹饪书功能已经从食谱转移到自定义资源。

所以,现在重用该功能的正确方法是"invoke"适当的资源,而不是"包括"菜谱。

my_pg_clientcookbook安装PostgreSQL客户端示例:

Inmy_pg_client/metadata.rb:

depends 'postgresql' # version pin as required

my_pg_client/recipes/default.rb:

# Install client software
postgresql_client_install 'My PostgreSQL Client install' do
version '9.5'
end

还有其他类似的自定义资源,如果您想安装服务器,例如:

postgresql_server_install 'My PostgreSQL Server install' do
version '9.5'
action :install
end

有许多关于如何使用自定义资源的示例:https://github.com/sous-chefs/postgresql/tree/main/test/cookbooks/test/recipes

更新:

默认情况下,postgresql_extension资源安装作为资源名称提供的扩展名。因此,可以省略extension 'adminpack'属性。您可以尝试这样做:

# Considering that a DB called "postgres" exists
postgresql_extension 'adminpack' do
database 'postgres'
end

相关内容

  • 没有找到相关文章

最新更新