Ich verwende den Workflow-Teil von Chef Automate, um Kochbücher an meinen Chef-Server zu liefern. Ich habe erfolgreich 2 Kochbücher auf dem Chef Server durch die Pipeline hochgeladen.Der Chef-Workflow schlägt bei der Überprüfung fehl, wenn das Kochbuch Abhängigkeiten hat.
Auf dem Chef Server:
apache
auf Version 0.2.3
another_test
ist in der Version 0.1.1
ich eine Änderung an apache
hängen von another_test machen wollte, so aktualisierte ich die Metadaten für apache
und stieß die Version auf 0.2.4
.
Die Metadatendatei für apache
hat depends 'another_test'
und another_test
hat keine Abhängigkeiten.
Die Berksfile für apache
ist
source :chef_server
source 'https://supermarket.chef.io'
metadata
Wenn ich die Lieferung Überprüfung Anruf zu tätigen, schlägt die Pipeline aus, aber ich erhalte einen Fehler in der Einheit Testphase der Phase prüfen.
execute[unit_rspec_apache] action run
================================================================================
Error executing action `run` on resource 'execute[unit_rspec_apache]' ================================================================================
Mixlib::ShellOut::ShellCommandFailed
------------------------------------
Expected process to exit with [0], but received '1'
---- Begin output of rspec --format documentation --color ----
STDOUT: [2017-11-21T14:06:57+00:00] ERROR: Connection refused connecting to https://localhost/universe , retry 1/5
[2017-11-21T14:07:02+00:00] ERROR: Connection refused connecting to https://localhost/universe , retry 2/5
[2017-11-21T14:07:07+00:00] ERROR: Connection refused connecting to https://localhost/universe , retry 3/5
[2017-11-21T14:07:12+00:00] ERROR: Connection refused connecting to https://localhost/universe , retry 4/5
[2017-11-21T14:07:17+00:00] ERROR: Connection refused connecting to https://localhost/universe , retry 5/5An error occurred in a `before(:suite)` hook. Failure/Error: raise NoSolutionError.new(demands, e)
Berkshelf::NoSolutionError: Unable to satisfy constraints on package another_test, which does not exist, due to solution constraint (apache = 0.2.4). Solution constraints that may result in a constraint on another_test: [(apache = 0.2.4) -> (another_test >= 0.0.0)]
Missing artifacts: another_test
Demand that cannot be met: (apache = 0.2.4)
Unable to find a solution for demands: apache (0.2.4)
dieses Scheitern Da wird die neue Version von Apache 0.2.4 nie zum Chef Server hochgeladen.
EDIT: Ich habe getestet mit einer Abhängigkeit von der Supermarkt und es passiert die Verify-Phase. Also ich hatte depends 'java'
in Apache und das wird gut hochgeladen. Das Problem beginnt, wenn ich auf ein Kochbuch angewiesen bin, das von meinem Chefserver kommt.
EDIT 2: Ich kann mich in den Läufer einloggen und knife cookbook list
tun. Das beweist mir, dass der Läufer auf den Chefserver zugreifen kann und sehen kann, welche Kochbücher dort existieren. Ich habe auch versucht, die Berksfile Wechsel für apache
source 'https://<full-url-to-chef-server/organizations/myorg'
anstelle von haben source :chef_server
Ich habe den Workflow nicht verwendet. Ich möchte dies nicht als Antwort posten, aber es sieht so aus, als ob die Quelle ': chef_server' in Berks fehlschlägt, da Workflow nichts von Ihrem Chef Server weiß (zumindest nicht in dieser Phase)). Wie würdest du erwarten, dass es die knife.rb config eingerichtet hat? – coderanger
Nun, das läuft auf dem 'Runner'-Knoten, der sein eigenes knife.rb bereits eingerichtet hat. Diese Messerdatei kennt meinen Chefserver. – James
Scheint so, als wärst du auf etwas, das knife.rb für den Läufer weiß nicht, was die chef_server URL ist – James