Как создать кулинарную книгу для супермаркета? - PullRequest
0 голосов
/ 23 февраля 2020

Я пытаюсь использовать Chef для создания среды на Ubuntu Server Machine (18.04), которая должна содержать PostgreSQL и MsBuild (я разверну основное приложение asp. net). Уже есть кулинарные книги по настройке postgres в супермаркете, но я не могу ими пользоваться. Я следую этому уроку

Сначала я создал новую кулинарную книгу обертки:

chef generate cookbook my_postgres

Затем я изменил metadata.rb, чтобы он выглядел так:

name 'my_postgres'
maintainer 'The Authors'
maintainer_email 'you@example.com'
license 'All Rights Reserved'
description 'Installs/Configures my_postgres'
long_description 'Installs/Configures my_postgres'
version '0.1.0'
chef_version '>= 13.0'
depends 'postgresql'

И мой файл default.rb выглядит следующим образом:

#
# Cookbook:: my_postgres
# Recipe:: default
#
# Copyright:: 2020, The Authors, All Rights Reserved.
include_recipe 'postgresql::default'

Но когда я запускаю рецепт:

sudo chef-client --local-mode default.rb

, я получаю следующее сообщение:

[2020-02-23T16:19:26+00:00] WARN: No config file found or specified on command line, using command line options.
[2020-02-23T16:19:26+00:00] WARN: No cookbooks directory found at or above current directory.  Assuming /home/hermano/my_postgres/recipes.
Starting Chef Client, version 14.7.17
resolving cookbooks for run list: []
Synchronizing Cookbooks:
Installing Cookbook Gems:
Compiling Cookbooks...
[2020-02-23T16:19:28+00:00] WARN: MissingCookbookDependency:
Recipe `postgresql::default` is not in the run_list, and cookbook 'postgresql'
is not a dependency of any cookbook in the run_list.  To load this recipe,
first add a dependency on cookbook 'postgresql' in the cookbook you're
including it from in that cookbook's metadata.


Running handlers:
[2020-02-23T16:19:28+00:00] ERROR: Running exception handlers
Running handlers complete
[2020-02-23T16:19:28+00:00] ERROR: Exception handlers complete
Chef Client failed. 0 resources updated in 01 seconds
[2020-02-23T16:19:28+00:00] FATAL: Stacktrace dumped to /home/hermano/.chef/local-mode-cache/cache/chef-stacktrace.out
[2020-02-23T16:19:28+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2020-02-23T16:19:28+00:00] FATAL: Chef::Exceptions::CookbookNotFound: Cookbook postgresql not found. If you're loading postgresql from another cookbook, make sure y

убедитесь, что вы настроили зависимость в своих метаданных

Чего мне не хватает?

1 Ответ

1 голос
/ 24 февраля 2020

Ваша проблема должна быть в вашем текущем рабочем каталоге, из которого вы выполняете команду в соответствии с вашей выходной строкой [2020-02-23T16:19:26+00:00] WARN: No cookbooks directory found at or above current directory. Assuming /home/hermano/my_postgres/recipes. должно быть /home/hermano/my_postgres/recipes

В соответствии с документацией вы должны создать каталог с именем cookbooks и поместить туда свой каталог поваренных книг:

/home/hermano/cookbooks
/home/hermano/cookbooks/my_postgres

Затем вы должны установить свой cwd в каталоге cookbooks и выполните следующее:

cd /home/hermano/cookbooks
sudo chef-client --local-mode --runlist "my_postgres::default.rb"
...