我想写一本chef
设置 Linux 桌面环境的食谱。
我创建了一个kitchen
by 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 所需的内容大致是:
管理本地主机,将这些东西放在一起并运行就足够了chef-solo -c solo.rb -J dna.json
。
底线:无需使用 Knife-solo 即可在本地主机中使用 Chef。