2013-01-16 30 views
4

我加入了一家新公司,爲了趕上速度,我一直在與我的虛擬機玩Vagrant。我讓我的系統幾乎設置,然後一個奇怪的錯誤迫使我關閉我的筆記本電腦,而不通過vagrant destroy斷開連接。現在,當試圖設置,我運行vagrant up並獲得以下錯誤信息。刪除沒有私鑰的刀客戶端?

[default] Running provisioner: Vagrant::Provisioners::ChefClient... 
    [default] Creating folder to hold client key... 
    [default] Uploading chef client validation key... 
    [default] Generating chef JSON and uploading... 
    [default] Running chef-client... 
    stdin: is not a tty 
    [Wed, 16 Jan 2013 05:20:20 -0500] INFO: *** Chef 0.10.2 *** 
    [Wed, 16 Jan 2013 05:20:20 -0500] INFO: Client key /etc/chef/client.pem is not present  - registering 
    [Wed, 16 Jan 2013 05:20:21 -0500] INFO: HTTP Request Returned 409 Conflict: Client already exists. 
    [Wed, 16 Jan 2013 05:20:22 -0500] INFO: HTTP Request Returned 403 Forbidden: Merb::ControllerExceptions::Forbidden 
    [Wed, 16 Jan 2013 05:20:22 -0500] FATAL: Stacktrace dumped to /srv/chef/file_store/chef-stacktrace.out 
    [Wed, 16 Jan 2013 05:20:22 -0500] FATAL: Net::HTTPServerException: 403 "Forbidden" 
    The following SSH command responded with a non-zero exit status. 
    Vagrant assumes that this means the command failed! 

    chef-client -c /tmp/vagrant-chef-1/client.rb -j /tmp/vagrant-chef-1/dna.json 

現在從我自己的研究,我看到這意味着客戶端已經存在與指定的名稱,所以我決定手動關閉它。我試圖用knife client list列出所有的刀客戶,但後來得到以下消息:

WARNING: No knife configuration file found 
    ERROR: Your private key could not be loaded from /etc/chef/client.pem 
    Check your configuration file and ensure that your private key is readable 

奇怪。我知道knife.rb存在,我看到它時,我ls,所以我不知道刀配置文件如何不存在。我無法看到我的刀客戶顯然沒有這個私鑰。我對流浪者,刀和廚師是全新的,所以我很難過。

想法?

+2

嘗試使用-c按照您在運行廚師客戶端時所用的相同方式將刀具配置文件的顯式路徑。我相信[path是配置文件中client_key條目的默認路徑,如果它沒有找到它使用的默認文件 – PatrickWalker

回答

1

因此,約定是您的knife.rb位於~/.chef/knife.rb/etc/chef/knife.rb - 我更喜歡前者,因爲它將它保留在我的個人文件夾中,並且僅限於我的用戶帳戶。

我也會保留我的Chef Server客戶端證書。

一旦您能夠成功執行knife client list,那麼您將能夠識別並刪除有問題的客戶端證書。 (您也可以在此期間使用Web UI)。

讓Vagrant刪除客戶的證書銷燬是一個suggested feature,但從未實施,讓它給運營商做出該決定。

此外 - 它看起來像你使用一個非常老的廚師版本 - 0.10.2 - 我們今天剛剛發佈了10.18.2。需要考慮的事情。