/ / Chef Kitchen nie może znaleźć aktualnej książki kucharskiej podczas "zbiegania się kuchni" na Windows - okna, włóczęga, szef kuchni, berkshelf, test-kuchnia

Chef Kitchen nie może znaleźć aktualnej książki kucharskiej podczas "zbiegania się kuchni" na Windows - okna, włóczęga, szef kuchni, berkshelf, test-kuchnia

Miałem książkę kucharską, która działała dobrze, a potemZaktualizowałem do najnowszej wersji kuchni i teraz to jest rzucanie błędów podczas konwergencji. "Próbowałem zrobić zbieg w książce kucharskiej, która nie ma żadnych zależności i to działało dobrze, więc zgaduję, że to może być coś wspólnego z berkami?

EDYCJA: Linia, która nie działa:

$env:systemdriveopscodechefbinchef-client.bat --local-mode --config $env:TEMPkitchenclient.rb --log_level auto --force-formatter --no-color --json-attributes $env:TEMPkitchendna.json --chef-zero-port 8889

uruchamiany na serwerze Windows Server 2012 RC2VirtualBox. Patrząc na folder kuchni w katalogu tymczasowym, wygląda na to, że żadna książka kucharska nie jest kopiowana na maszynę wirtualną.

Kiedy uruchomię konwergencję na prostej książce testowej, która nie ma żadnych zależności, widzę, że folder kuchenny na maszynie wirtualnej ma folder książki kucharskiej, a konwergencja się powiódł.

EDYCJA 2:

Dodałem zależność do działającej książki kucharskiej, dodałem plik Berksfile (taki sam, jak na dole tego posta) i berks install i spowodował błąd SSL_connect

C:/tools/ruby22/lib/ruby/gems/2.2.0/gems/httpclient-.7.2/lib/httpclient/ssl_socket.rb:46:in `connect": SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (Faraday::SSLError)

Który jest taki sam jak błąd w tym poście: https://github.com/chef/chef-dk/issues/106

Uruchamianie poprawki powershell, która jest:

Invoke-WebRequest http://curl.haxx.se/ca/cacert.pem -OutFile c:cacert.pem
Set-Item -Path env:SSL_CERT_FILE -Value C:cacert.pem

Rozwiązuje błąd, ale po uruchomieniu kitchen converge Wpadam na ten sam problem, w którym nie mam książek kucharskich na maszynie wirtualnej. Jestem prawie pewien, że te dwa problemy są ze sobą powiązane.

Więcej szczegółów poniżej


Oto wersje, których aktualnie używam:

Chef Development Kit Version: 0.12.0
chef-client version: 12.9.38
berks version: 4.3.2
kitchen version: 1.7.3

I to jest błąd (mock_emr to nazwa książki kucharskiej, którą próbuję zjednoczyć):

-----> Starting Kitchen (v1.7.3)
-----> Converging <default-windows-2012r2>...
Preparing files for transfer
Preparing dna.json
Resolving cookbook dependencies with Berkshelf 4.3.2...
Removing non-cookbook files before transfer
Preparing data_bags
Preparing validation.pem
Preparing client.rb
-----> Chef Omnibus installation detected (install only if missing)

Creating the scheduled task.
SUCCESS: The scheduled task "chef-tk" has successfully been created.
Transferring files to <default-windows-2012r2>
SUCCESS: Attempted to run the scheduled task "chef-tk".
Connected to the scheduled task.
Starting Chef Client, version 12.9.38
resolving cookbooks for run list: ["mock_emr::default"]

================================================================================
Error Resolving Cookbooks for Run List:
================================================================================

Missing Cookbooks:
------------------
No such cookbook: mock_emr

Expanded Run List:
------------------
* mock_emr::default

Platform:
---------
x64-mingw32


Running handlers:
[2016-04-25T15:57:51+00:00] ERROR: Running exception handlers
Running handlers complete
[2016-04-25T15:57:51+00:00] ERROR: Exception handlers complete
Chef Client failed. 0 resources updated in 34 seconds
[2016-04-25T15:57:51+00:00] FATAL: Stacktrace dumped to C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/chef-st
acktrace.out
[2016-04-25T15:57:51+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug repor
t
[2016-04-25T15:57:51+00:00] FATAL: Net::HTTPServerException: 412 "Precondition Failed"

Mój plik .kitchen.yml jest następujący:

---
driver:
name: vagrant
network:
- ["private_network", {ip: "192.168.35.35"}]
synced_folders:
- ["../../.chef/secrets", "C:/chef"]

provisioner:
name: chef_zero_scheduled_task

platforms:
- name: windows-2012r2
driver:
customize:
memory: 2048

suites:
- name: default
data_bags_path: "../../data_bags"
run_list:
- recipe[mock_emr::default]
attributes:
mock_emr:
secret_file: "C:/chef/encrypted_data_bag_secret"
sql_server:
sysadmins: ["Administrator", "vagrant"]

I plik metadata.rb:

name "mock_emr"
maintainer "The Authors"
maintainer_email "author@example.com"
license "all_rights"
description "Installs/Configures mock_emr"
long_description "Installs/Configures mock_emr"
version "0.1.0"

depends "sql_server", "~> 2.5.0"
depends "iis", "~> 4.1.6"

A plik berksfile:

source "https://supermarket.chef.io"

metadata

Odpowiedzi:

0 dla odpowiedzi № 1

Uważam, że to był problem z posiadaniem rubinuzainstalowany, jak również zestaw do rozwoju szefa kuchni. Myślę, że szef kuchni próbował przebrnąć przez ruby, a nie zestaw dev i miał problemy. Odinstalowałem zarówno zestaw ruby, jak i dev i zainstalowałem dev kit, a teraz wszystko działa poprawnie.

Wskazówką, która doprowadziła mnie do tego wniosku, było to, że bieganie chef verify nie powiedzieliśmy, że omnibus nie został poprawnie skonfigurowany.