厨房属性只能在一个平台上使用

马修

我的.kitchen.yml文件有问题我希望为我的所有平台加载我的属性,但只为我的一个平台加载它这是我的.kitchen.yml文件内容:

.kitchen.yml
---
driver:
  name: vagrant
  gui: true

provisioner:
  name: chef_zero

transport:
  name: winrm
  elevated: true

platforms:
  - name: win2012r2-standard
    driver:
      box: eltuko/win2012r2-chef-pester
      customize:
        memory: 2048
  - name: win2008r2-standard
    driver:
      box: charris/windows-2008-r2-x64
      customize:
        memory: 2048

suites:
  - name: default
    run_list:
      - recipe[xxx]
      - recipe[yyy]
    attributes:
      web:
        app:
          name: "MyApp"
          zip: "MyApp.zip"
      chef_client:
        config:
          log_level: ":debug"

需要更多背景信息吗?

我的食谱需要设置2个属性才能正常工作。默认情况下,这些属性值设置为nil

属性/ default.rb
default['web']['app']['name'] = nil
default['web']['app']['zip'] = nil

我的默认配方在开始时会检查是否在继续执行脚本之前设置了属性,请使用以下方法进行操作:

配方/default.rb
ruby_block 'Check if node is configured correctly' do
  block do
    raise 'app name is not set.' if node['web']['app']['name'].nil?
    raise 'app zip is not set.' if node['web']['app']['zip'].nil?
  end
end

当我运行时kitchen converge,kitchen将启动我的Windows Server 2012 R2VM并成功部署我的应用程序(属性起作用)。完成该平台后,厨房将再次为我的Windows Server 2008 R2VM重新开始该过程虽然,此时它会引发我在recipes/default.rb文件中创建的异常

在我的Windows Server 2008 R2VM收到以下错误

控制台日志
================================================================================
Error executing action `run` on resource 'ruby_block[Check if node is configured correctly]'
================================================================================

    RuntimeError
    ------------
    app name is not set.
编码器

将其复制下来,因为它是答案:在测试实例上添加,删除或更改属性数据时,您需要销毁并重新创建该实例。属性数据是在创建阶段收集和缓存的,因此仅重新运行converge将不会执行任何操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么此代码只能在一个平台上运行而不能在另一个平台上运行?

来自分类Dev

为什么此代码只能在一个平台上运行而不能在另一个平台上运行?

来自分类Dev

为什么此代码只能在一个平台上运行而不能在另一个平台上运行?

来自分类Dev

XSD指定一个只能在XML中使用一次的属性

来自分类Dev

无法从Linux平台上的另一个jar使用Java Runtime访问jarfile

来自分类Dev

在另一个平台上构建?

来自分类Dev

如何仅在一个Ionic平台上添加插件?

来自分类Dev

C#属性只能在具有另一个属性的类中的方法上

来自分类Dev

只能在一个文件中使用中间证书和根证书来验证证书

来自分类Dev

JS脚本只能在一个html卡上使用,而不是全部

来自分类Dev

JS脚本只能在一个html卡上使用,而不是全部

来自分类Dev

只能在JOIN中的一个表上限制

来自分类Dev

只能在JOIN中的一个表上限制

来自分类Dev

如何维护几个只能在一个对象中存在一个对象的集合?

来自分类Dev

我怎么说一个功能仅在给定的平台上可用

来自分类Dev

当存在一个归属关系时,如何让来宾用户在平台上发表评论

来自分类Dev

提供“类型别名”的Typescript编译器只能在.ts文件中使用。在一个js文件中

来自分类Dev

“当未使用EXISTS引入子查询时,只能在选择列表中指定一个表达式”错误

来自分类Dev

如何将一个jQuery放在只能在该局部视图中使用的局部视图中?

来自分类Dev

使用 Scala 从不同平台的一个平台查询

来自分类Dev

在 symfony 4 和 Api 平台上添加一个注销动作,并在 React Native 上使用这个动作来销毁 JWT 生成的令牌

来自分类Dev

只能在1个工作簿上运行一个VBA

来自分类Dev

我如何一次只能在一个元素上激活.hover()函数

来自分类Dev

使变量只能在同一包中的另一个类访问

来自分类Dev

一个网站只能在一台计算机上无法访问

来自分类Dev

为什么Unity3D只能在Android平台上加载32位本机插件(.so)?

来自分类Dev

Perl用字符串“ x”替换数字,但只能在一个特定位置

来自分类Dev

如何创建只能在一个线程上同时执行的功能?

来自分类Dev

我只能在android中为所有dpi设置一个图标吗?

Related 相关文章

  1. 1

    为什么此代码只能在一个平台上运行而不能在另一个平台上运行?

  2. 2

    为什么此代码只能在一个平台上运行而不能在另一个平台上运行?

  3. 3

    为什么此代码只能在一个平台上运行而不能在另一个平台上运行?

  4. 4

    XSD指定一个只能在XML中使用一次的属性

  5. 5

    无法从Linux平台上的另一个jar使用Java Runtime访问jarfile

  6. 6

    在另一个平台上构建?

  7. 7

    如何仅在一个Ionic平台上添加插件?

  8. 8

    C#属性只能在具有另一个属性的类中的方法上

  9. 9

    只能在一个文件中使用中间证书和根证书来验证证书

  10. 10

    JS脚本只能在一个html卡上使用,而不是全部

  11. 11

    JS脚本只能在一个html卡上使用,而不是全部

  12. 12

    只能在JOIN中的一个表上限制

  13. 13

    只能在JOIN中的一个表上限制

  14. 14

    如何维护几个只能在一个对象中存在一个对象的集合?

  15. 15

    我怎么说一个功能仅在给定的平台上可用

  16. 16

    当存在一个归属关系时,如何让来宾用户在平台上发表评论

  17. 17

    提供“类型别名”的Typescript编译器只能在.ts文件中使用。在一个js文件中

  18. 18

    “当未使用EXISTS引入子查询时,只能在选择列表中指定一个表达式”错误

  19. 19

    如何将一个jQuery放在只能在该局部视图中使用的局部视图中?

  20. 20

    使用 Scala 从不同平台的一个平台查询

  21. 21

    在 symfony 4 和 Api 平台上添加一个注销动作,并在 React Native 上使用这个动作来销毁 JWT 生成的令牌

  22. 22

    只能在1个工作簿上运行一个VBA

  23. 23

    我如何一次只能在一个元素上激活.hover()函数

  24. 24

    使变量只能在同一包中的另一个类访问

  25. 25

    一个网站只能在一台计算机上无法访问

  26. 26

    为什么Unity3D只能在Android平台上加载32位本机插件(.so)?

  27. 27

    Perl用字符串“ x”替换数字,但只能在一个特定位置

  28. 28

    如何创建只能在一个线程上同时执行的功能?

  29. 29

    我只能在android中为所有dpi设置一个图标吗?

热门标签

归档