我有一个虚拟机(托pipe在“云”),已经与我的组织自己的厨师服务器配备厨师。
我想在本地复制该虚拟机(使用stream浪的pipe理虚拟机),以便做一些厨师开发。
我已经能够通过在厨师服务器上创build新节点并手动复制现有节点中的angular色,食谱,属性等来做我想做的事情。
在我看来这将是一个相当常见的用例(即复制一个节点/虚拟机),所以可能有一种方法可以轻松地做到这一点(无需手动复制angular色,食谱,属性等) – 但是,我找不到一个。
我所做的就是设置本地虚拟机(通过Vagrant或简单的VirtualBox虚拟机),然后在那里设置一个完整的Chef服务器安装。 之后,我将我的普通knife.rb复制到一个替代的knife.rb文件(如knife.local.rb),在那里我改变了厨师服务器的URL并通过上传所有的数据
knife cookbook upload -a -c ~/.chef/knife.local.rb knife data bag from file users users/* -c ~/.chef/knife.local.rb etc etc...
最后,通过Vagranttesting你的食谱,你可以使用当地的厨师的地址来做到这一点! 作为帮手,您可以定义一个lknifefunction,可以作为当地厨师的knife工具。 只要把你的用户的.bashrc
function lknife { `which knife` "$@" -c "$HOME/.chef/knife.local.rb"; }
knife edit可以做到这一点:
knife edit <existing node name> # Change "name" attribute to something unique
这将创build一个具有与现有节点相同的运行列表和属性(名称除外)的新节点。