如果我在本地使用 Chef,是否需要运行 SSH 守护进程?

如果我在本地使用 Chef,是否需要运行 SSH 守护进程?

我想写一本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'

答案1

您尝试过使用刀独奏,一个工具意味着“让厨师独奏与厨师服务员的合作一样强大”。正如您发现的,基本假设是您提供不同的机器您将通过 SSH 进入。 Knife-solo 然后将通过综合包安装 Chef-client(默认情况下),将所有需要的食谱放入机器上,最后从 Chef 综合包运行 Chef-solo:

来自文档:“knife Solo Cook 将当前厨房(Chef 存储库)上传到目标主机,并在该主机上运行 Chef-Solo。”

运行 Chef-solo 所需的内容大致是:

  1. 食谱(可能使用伯克谢尔夫berks vendor(v3) 或berks download(v2))
  2. 指向说明书的solo.rb配置(看这里
  3. 可能是用于属性覆盖的 JSON 文件。

管理本地主机,将这些东西放在一起并运行就足够了chef-solo -c solo.rb -J dna.json

底线:无需使用 Knife-solo 即可在本地主机中使用 Chef。

相关内容