Chef

如果我在本地使用 Chef,是否需要執行 SSH 守護程序?

  • June 17, 2014

我想寫一chef本說明書來設置 Linux 桌面環境。

我創建了一個kitchenby knife solo init chef-repo,並創建了一個說明書hello和一個節點文件localhost.json

然後我執行:

$ knife solo cook localhost

並得到這個錯誤:

Running Chef on localhost...
Checking Chef version...
ERROR: Network Error: Connection refused - connect(2) for "localhost" port 22
Check your knife configuration and network settings

即使我在本地主機中使用廚師主機和客戶端,我是否應該執行 ssh 守護程序?

Linux Mint 16在 VirtualBox 環境中使用。這是我的~/.chef/knife.rb配置文件:

log_level                :info
log_location             STDOUT
node_name                'ironsand'
client_key               '/home/ironsand/.chef/ironsand.pem'
validation_client_name   'chef-validator'
validation_key           '/etc/chef-server/chef-validator.pem'
chef_server_url          'https://vm-mint:443'
syntax_check_cache_path  '/home/ironsand/.chef/syntax_check_cache'

您已嘗試使用Knife-solo,該工具旨在*“使與 chef-solo 的合作與 chef-server 一樣強大”。正如您所發現的,基本假設是您配置了一台不同的機器*,您將通過 SSH 連接到該機器。然後,Knife-solo 將通過綜合包安裝 chef-client(預設情況下),將所有需要的食譜放到機器上,最後從 Chef 綜合包執行 chef-solo:

來自文件:“knife solo cook 將目前廚房(Chef repo)上傳到目標主機並在該主機上執行 chef-solo。”

您需要執行 chef-solo 大致是:

  1. 食譜(可能使用Berkshelfberks vendor(v3) 或berks download(v2))
  2. 指向食譜的 solo.rb 配置(請參見此處
  3. 可能是用於屬性覆蓋的 JSON 文件。

要管理localhost,將這些東西放在一起並執行就足夠了chef-solo -c solo.rb -J dna.json

底線:在本地主機中使用 Chef 沒有必要使用knife-solo。

引用自:https://unix.stackexchange.com/questions/133932