2017-02-01 5 views
0

Ich habe das folgende Koch 12 Skript, das ich auf aws opsworks laufen, um jenkins zu installieren. Ich sourced es von der folgenden Website: https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu Wenn ich es ausführen, schlägt es mit dem folgenden Fehler:Chef 12 Skript auf AWS opsworks Installation fehlgeschlagen jenkins

execute 'add jenkins source to apt' do 
    command "wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -" 
end 


file '/etc/apt/sources.list.d/jenkins.list' do 
    content 'deb http://pkg.jenkins.io/debian-stable binary/' 
end 

execute 'update apt-get' do 
    command 'apt-get update' 
end 


package 'install Jenkins' do 
    package_name "jenkins" 
end 

package 'install nginx' do 
    package_name 'nginx' 
end 

file '/etc/nginx/sites-enabled/default' do 
    action :delete 
end 

cookbook_file '/etc/nginx/sites-available/jenkins' do 
    source 'jenkins' 
end 

link '/etc/nginx/sites-enabled/jenkins' do 
    to '/etc/nginx/sites-available/jenkins' 
    link_type :symbolic 
end 

service 'nginx' do 
    action :restart 
end 

service 'jenkins' do 
    action :restart 
end 

Wenn ich Rezepte laufen ausführen auf einem c4.4xlarge Bild ubuntu 14.04 laufen, erhalte ich die folgenden Fehler

Setting up jenkins (2.32.1) ... 
* Starting Jenkins Continuous Integration Server jenkins 
...fail! 
Setting up libnss3-nssdb (2:3.26.2-0ubuntu0.14.04.3) ... 

und

STDERR: invoke-rc.d: initscript jenkins, action "start" failed. 
dpkg: error processing package jenkins (--configure): 
subprocess installed post-installation script returned error exit status 7 
Errors were encountered while processing: 
jenkins 
E: Sub-process /usr/bin/dpkg returned an error code (1) 
---- End output of apt-get -q -y install jenkins=2.32.1 ---- 
Ran apt-get -q -y install jenkins=2.32.1 returned 100 

Resource Declaration: 
--------------------- 
# In /var/chef/runs/55bf900b-16e6-4573-9948-8571284d80e7/local-mode-cache/cache/cookbooks/jenkins/recipes/default.rb 

16: package 'install Jenkins' do 
17:  package_name "jenkins" 
18: end 
19: 

Compiled Resource: 
------------------ 
# Declared in /var/chef/runs/55bf900b-16e6-4573-9948-8571284d80e7/local-mode-cache/cache/cookbooks/jenkins/recipes/default.rb:16:in `from_file' 

apt_package("install Jenkins") do 
package_name "jenkins" 
action [:install] 
retries 0 
retry_delay 2 
default_guard_interpreter :default 
declared_type :package 
cookbook_name "jenkins" 
recipe_name "default" 
end 

Platform: 
--------- 
x86_64-linux 

[2017-02-01T03:10:08+00:00] INFO: Running queued delayed notifications before re-raising exception 
[2017-02-01T03:10:08+00:00] ERROR: Running exception handlers 
[2017-02-01T03:10:08+00:00] ERROR: Exception handlers complete 
[2017-02-01T03:10:08+00:00] FATAL: Stacktrace dumped to /var/chef/runs/55bf900b-16e6-4573-9948-8571284d80e7/local-mode-cache/cache/chef-stacktrace.out 
[2017-02-01T03:10:08+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report 
[2017-02-01T03:10:08+00:00] ERROR: apt_package[install Jenkins] (jenkins::default line 16) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '100' 

ich bin nicht sicher, warum jenkins beginnen versagt. Wenn ich das Rezept zweimal auf der gleichen Instanz führe, ist es das zweite Mal erfolgreich. Jede Hilfe wird sehr geschätzt, da dies mein erstes Chef-Skript ist.

+1

Es gibt [offizielle Kochbuch] (https://github.com/chef-cookbooks/jenkins) für Jenkins Installation. Haben Sie versucht, in Jenkins Protokolle zu suchen? (normalerweise '/ var/log/jenkins') oder Ausgabe von 'apt-get -q -y install jenkins = 2.32.1'? –

+0

Ihr 'apt-get' ist fehlgeschlagen. Versuchen Sie, das selbst auszuführen und sehen Sie, was passiert. – chicks

+0

Überprüfen Sie jenkins logs, es ist das Nachinstallations-Skript, das fehlschlägt. Laut [this] (https://issues.jenkins-ci.org/browse/JENKINS-31814) könnte es sich um Berechtigungen auf/tmp – Tensibai

Antwort

0

Es stellt sich heraus, die Antwort war in der Chef Stacktrace-Datei. Der apt-get-Prozess wird zweimal ausgeführt und konnte nicht auf die Sperrdatei in dpkg im Schritt des Installationspakets zugreifen. Ändern

execute 'update apt-get' do 
    command 'apt-get update' 
end 


package 'install Jenkins' do 
    package_name "jenkins" 
end 

zu

apt_update 'all platforms' do 
    action :update 
end 

apt_package 'jenkins' do 
    action :install 
end 

löste das Problem.