问题标签 [databags]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - Chef + Vagrant + 加密数据包 + Windows
我正在尝试使用 Vagrant 和 Chef 来测试加密的数据包。我使用创建了一个加密数据包
knife solo data bag create test test_service --data-bag-path ../../data_bags/ --secret-file ~/.chef/encrypted_data_bag_secret
并验证项目已创建。
在我的 Vagrant 文件中添加了 data_bag 和加密密钥路径
config.vm.provision :chef_solo do |chef|
chef.log_level = :debug
chef.data_bags_path = "../../data_bags"
chef.encrypted_data_bag_secret_key_path = '~/.chef/encrypted_data_bag_secret'
配方包含
secret_key = Chef::EncryptedDataBagItem.load_secret("C:\\tmp\\vagrant-chef-3\\encrypted_data_bag_secret_key")
usr_creds = chef::EncryptedDataBagItem.load("test","test_service", secret_key)
当 Vagrant 运行时,它会加载加密的密钥
==> default: Running provisioner: chef_solo...
Uploading chef encrypted data bag secret key...
但抛出错误
参数错误
声明厨师资源时必须提供名称
在 Vagrant 框中,我可以看到 Vagrant 创建了 2 个目录
C:\tmp\vagrant-chef-3\chef-solo-1\cookbooks
C:\tmp\vagrant-chef-3\chef-solo-2\data_bags
在 Vagrant 框的 solo.rb 中,C:\tmp\vagrant-chef-3\solo.rb
有一个食谱和加密密钥的设置,但没有数据包的位置
经过反复试验,Chef 似乎无法找到数据包的位置。我在某处遗漏了什么吗?
chef-solo - 数据包项必须包含 Hash 或 Mash 错误
配置厨师节点时出现以下错误:
我已经验证了数据包名称config.json存在,并且数据包中有一个同名的id。此外,在 Vagrant 文件中正确设置了数据包路径。
配置文件
JSON 是有效的。
更新。 Chef 客户端 12.0.1 和 12.0.3 上的问题。降级到 11.18.0 时不会发生。
dynamic - Chef 数据包和动态变量传递
我正在想办法让下面的代码工作;我尝试了各种方法,但厨师客户端运行在第 3 行中断。
然而,在另一个测试配方中,我能够成功地完成以下工作:
我对厨师很陌生,请有人告诉我如何让它工作吗?
encryption - 我怎样才能始终保持加密的数据包“加密”?
在我的一个厨师食谱中,我使用加密的数据包来隐藏我定义的远程文件资源的下载路径。但是,当在一个节点上收敛时,如果由于某种原因下载失败,那么我可以在日志中看到我所有的秘密。
因为我打算在 CI 服务器上部署它,所以我真的不想让它显示出来。
有什么方法可以使数据即使在出错时也保持加密?
ruby - 加载通过 Chef 代码创建的 Chef 数据包项时出错
我有两个与该问题相关的问题。(已解决的问题,下面提供的解决方案)
我有一个名为 java 的数据包。它包含特定于每个节点的主机名的数据包项,如下所示
我可以使用 Chef 代码创建数据包
但是在执行配方时,我在代码中遇到错误,它正在为 jdk_version 赋值
问题 1:如何从上述数据包项格式中获取值?
如果我如下创建数据包,我可以获取 jdk_version
以上述格式创建数据包的代码
问题2:我在之前的数据包项实现中做错了什么?
已解决的问题:: 我现在能够以下述格式创建数据包项,能够成功获取数据
在创建数据包项哈希时,为 jdk_version 及其值添加了“{}”大括号而不是“[]”。
下面提供了工作代码,
templates - 如何将 2 个数据包变量传递给模板厨师
我正在尝试将 2 个数据包作为变量传递到模板中,但它以错误消息结尾。有谁知道我如何将 2 个数据包传递给模板?
食谱
模板
ruby - 在 Chef 数据包参考中将属性与文字相结合
在knife ec2期间,我指定了一个我想在数据包中引用的ClientID属性,只是我想添加到包名中,所以它不完全是ID。这适用于确切的 ID:
但我正在尝试这样的事情(这不起作用)
因此,如果 ClientID = abcd,则引用将是“abcd_tenants”。有没有一种解决方案可以让我在不为数据包传递单独的 json 属性的情况下执行此操作?
haskell - 将列表映射到类型
我正在尝试将列表 ["a","b","c","c"] 转换为 haskell 中的集合,例如: [("a",1),("b",1),( "c",2)]。我不想使用地图。我的功能如下所示:
我做错了什么,还是我错过了任何情况?
chef-infra - 使用 chef-vault 代替数据包
奥海厨师。
我写了一个将用户名和密码作为参数的定义。当在带有从数据包中获取的参数的配方中使用时,它可以工作。
但是,从 chef-vault 获取参数时失败
下面是使用数据包的代码:
然后将它们传递给我的定义,它工作正常
但是,当我尝试对 chef-vault 执行相同操作时,它会失败,因为定义正在检查 NIL 值的输入。在我看来,数据包是在编译时评估的,而保管库项目是在执行时评估的。
如果我想让这个工作,我应该怎么做?有没有办法强制在编译时进行 Vault 项目评估?
这是使用失败的保险库的代码:
如果参数之一为空,它会引发我的代码中的异常这是定义中的代码:
所以我得到的例外是“Exiting - nil values are unaxceptable for connectProfiletoLdap”
chef-infra - 没有这样的文件或目录 - 找不到文件错误厨师
这是我的食谱代码,
我认为file
资源将/etc/chef/encrypted_data_bag_secret
首先创建并且可供使用,Chef::EncryptedDataBagItem.load_secret
但是当我运行这本食谱时,我开始收到以下错误消息。
由于我在引导节点时添加了这本食谱,所以我不知道如何在引导期间提供秘密文件。