2012-01-20 27 views
5

Chạy Ubuntu 11.04 trên lang thang, mac os x 10.7.2. Chạy máy chủ đầu bếp.Đầu bếp không chạy công thức apt (apt-get update). Apt trả về 100

Đang cố gắng để cài đặt các công thức nấu ăn đầu bếp cộng đồng postgresql, tôi nhận được lỗi sau, mặc dù vai trò cơ sở của tôi trông giống như thế này (tôi đã thêm các công thức apt để cố gắng cập nhật apt-get):

name "base" 
description "The base role for systems" 
run_list(
     "recipe[apt]", 
     "recipe[vim]" 
) 

đang cố gắng để làm một đầu bếp chạy:

$ vagrant reload db1dev 
[db1dev] Attempting graceful shutdown of linux... 
[db1dev] Preparing host only network... 
[db1dev] Clearing any previously set forwarded ports... 
[db1dev] Forwarding ports... 
[db1dev] -- ssh: 22 => 2222 (adapter 1) 
[db1dev] Cleaning previously set shared folders... 
[db1dev] Creating shared folders metadata... 
[db1dev] Running any VM customizations... 
[db1dev] Booting VM... 
[db1dev] Waiting for VM to boot. This can take a few minutes. 
[db1dev] VM booted and ready for use! 
[db1dev] Enabling host only network... 
[db1dev] Mounting shared folders... 
[db1dev] -- v-root: /vagrant 
[db1dev] Running provisioner: Vagrant::Provisioners::ChefClient... 
[db1dev] Creating folder to hold client key... 
[db1dev] Uploading chef client validation key... 
[db1dev] Generating chef JSON and uploading... 
[db1dev] Running chef-client... 
[db1dev] stdin: is not a tty 
: stderr 
[db1dev] [Thu, 19 Jan 2012 21:44:45 -0800] INFO: *** Chef 0.10.2 *** 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:46 -0800] INFO: Client key /etc/chef/client.pem is not present - registering 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:46 -0800] INFO: HTTP Request Returned 404 Not Found: Cannot load node dev-vagrant-db1-andres 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:47 -0800] INFO: Setting the run_list to ["role[base]", "role[db_master]"] from JSON 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:47 -0800] INFO: Run List is [role[base], role[db_master]] 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:47 -0800] INFO: Run List expands to [base_server, vim, postgresql::server] 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:47 -0800] INFO: Starting Chef Run for dev-vagrant-db1-andres 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:47 -0800] INFO: Loading cookbooks [base_server, openssl, postgresql, vim] 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:47 -0800] INFO: Removing cookbooks/apt/resources/repository.rb from the cache; its cookbook is no longer needed on this client. 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:47 -0800] INFO: Removing cookbooks/apt/metadata.rb from the cache; its cookbook is no longer needed on this client. 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:47 -0800] INFO: Removing cookbooks/apt/providers/repository.rb from the cache; its cookbook is no longer needed on this client. 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:47 -0800] INFO: Removing cookbooks/apt/recipes/cacher.rb from the cache; its cookbook is no longer needed on this client. 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:47 -0800] INFO: Removing cookbooks/apt/recipes/cacher-client.rb from the cache; its cookbook is no longer needed on this client. 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:47 -0800] INFO: Removing cookbooks/apt/recipes/default.rb from the cache; its cookbook is no longer needed on this client. 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:47 -0800] INFO: Removing cookbooks/apt/metadata.json from the cache; its cookbook is no longer needed on this client. 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:47 -0800] INFO: Removing cookbooks/apt/README.md from the cache; its cookbook is no longer needed on this client. 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:47 -0800] INFO: Storing updated cookbooks/base_server/recipes/default.rb in the cache. 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:47 -0800] INFO: Storing updated cookbooks/base_server/README.rdoc in the cache. 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:47 -0800] INFO: Storing updated cookbooks/base_server/metadata.rb in the cache. 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:47 -0800] INFO: Processing package[postgresql-client] action install (postgresql::client line 37) 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:48 -0800] ERROR: package[postgresql-client] (postgresql::client line 37) has had an error 
[Thu, 19 Jan 2012 21:44:48 -0800] ERROR: Running exception handlers 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:48 -0800] FATAL: Saving node information to /srv/chef/file_store/failed-run-data.json 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:48 -0800] ERROR: Exception handlers complete 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:48 -0800] FATAL: Stacktrace dumped to /srv/chef/file_store/chef-stacktrace.out 
: stdout 
[db1dev] [Thu, 19 Jan 2012 21:44:48 -0800] FATAL: Chef::Exceptions::Exec: package[postgresql-client] (postgresql::client line 37) had an error: apt-get -q -y install postgresql-client=8.4.8-0ubuntu0.10.04 returned 100, expected 0 
: stdout 
The following SSH command responded with a non-zero exit status. 
Vagrant assumes that this means the command failed! 

chef-client -c /etc/chef/client.rb -j /etc/chef/dna.json 

The output of the command prior to failing is outputted below: 

[no output] 

Nếu tôi tự làm một $ sudo apt-get update từ bên trong máy chủ, làm một đợt tăng của đầu bếp-client cài đặt postgres mà không có một vấn đề. Bất kỳ ý tưởng về lý do tại sao các công thức apt không chạy? (Tôi cũng biết nó không chạy vì tệp dấu thời gian cho apt-get không được tạo trong ubuntu). Bất kì sự trợ giúp nào đều được đánh giá cao.

Trả lời

6

Vì vậy, từ lỗi bạn in, có vẻ như cách chạy lệnh

apt-get -q -y install postgresql-client=8.4.8-0ubuntu0.10.04 

là không.

Nhưng bạn nói rằng nếu bạn chạy

apt-get update 

Đầu tiên, và sau đó tái cung cấp, nó hoạt động tốt?

Linh cảm của tôi là khi bạn lần đầu tiên chạy đầu bếp, phiên bản của ứng dụng khách postgresql bạn đang yêu cầu không nằm trong danh sách các gói apt đã tải xuống của bạn, nhưng chạy phiên bản apt-get update đó.

Tôi thấy bạn đang chạy công thức base_server trước tiên, là thêm kho lưu trữ apt vào danh sách?

Bất kể, tôi khuyên bạn nên chạy một apt-get update trước khi chạy công thức postgres, đây là thứ có thể thích hợp để đưa vào công thức base_server mà tôi nghĩ.

+5

Cảm ơn, đó là những gì công thức apt phải làm. Các câu hỏi là "tại sao không phải là apt được cập nhật ngay cả khi công thức apt là nghĩa vụ phải làm điều đó" – Andres

+0

Bạn đang sử dụng công thức dựa trên https://github.com/opscode/cookbooks/blob/master/apt/ công thức nấu ăn/default.rb? Nếu vậy, chỉ cần thiết lập khả năng gọi apt-get-update từ công thức nấu ăn KHÁC (lưu ý chú thích trên dòng 29), nhưng không chạy cuộc gọi khi công thức này chạy đến 'action: nothing' trên dòng 33. –

+2

Ví dụ về việc sử dụng thực thi cập nhật apt-get sau khi chạy công thức có thể xem tại https://github.com/opscode/cookbooks/blob/master/rsyslog/recipes/default.rb#L28 –