在Vagrant solo provisioner上使用chef.json安装apt包
我想使用Vagrants Chef solo provisioner安装几个任意的APT软件包 json似乎允许您执行chef命令,但我不清楚如何执行。比如:在Vagrant solo provisioner上使用chef.json安装apt包,vagrant,chef-infra,Vagrant,Chef Infra,我想使用Vagrants Chef solo provisioner安装几个任意的APT软件包 json似乎允许您执行chef命令,但我不清楚如何执行。比如: chef.json = { apt: { package: {'libssl-dev': {action: 'install'}} } ?chef.json不执行或定义命令。 它定义了可由配方使用的节点属性 我喜欢读书 及 一些json内容是由vagrant生成的,比如在vagrant文件中用chef.add_recip
chef.json = {
apt: {
package: {'libssl-dev': {action: 'install'}}
}
?chef.json不执行或定义命令。 它定义了可由配方使用的节点属性 我喜欢读书 及 一些json内容是由vagrant生成的,比如在vagrant文件中用chef.add_recipe关键字定义runlist属性 对于您的用例,您应该有一本带有配方解析节点['apt']并使用deb_包资源的烹饪书。Chef用于定义通过Chef客户端执行的 配方基本上是对脚本的定义 资源是您正在配置、或等的特定元素 节点是运行chef客户端的计算机 您为chef solo设置的json定义了类似于您的厨师可以用来决定做什么的变量 因此,您有一个属性散列供Chef使用,但您需要一个配方,该配方基于要在节点上执行的散列来配置资源 在您的情况下,您需要配置 包资源支持许多不同的包后端,包括apt,因此除了包名称之外,您不需要担心差异 要从哈希中安装软件包,您可以创建如下配方:
node[:apt][:package].each do |pkg,pkg_data|
package pkg do
action pkg_data[:action].to_sym
end
end
然后将各个配方打包成一个类似配方的逻辑分组。一般来说,一本食谱应该是一个软件,比如说httpd或mysql
正如Tensibia所提到的,通读食谱/食谱,然后从那里开始
node[:apt][:package].each do |pkg,pkg_data|
package pkg do
action pkg_data[:action].to_sym
end
end