2017-11-21 7 views
1

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/5

An 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

+0

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

+0

Nun, das läuft auf dem 'Runner'-Knoten, der sein eigenes knife.rb bereits eingerichtet hat. Diese Messerdatei kennt meinen Chefserver. – James

+0

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

Antwort

0

ich die /var/opt/delivery/workspace/.chef/knife.rb Datei auf dem Läufer Knoten zu bearbeiten hatte. Ich habe diese Zeile am Ende der Datei hinzugefügt: chef_server_url 'https://chef-server/organizations/myorg'.

Diese Messerkonfigurationsdatei wird vom Benutzer dbuild auf dem Runner-Knoten verwendet. Es liest diese Datei, um die URL für den Chefserver zu bestimmen.

+0

Das ist seltsam, weil 'chef_server_url' bereits korrekt mit dem' automate-ctl install-runner' Befehl gefüllt sein sollte. – Tricky

Verwandte Themen