问题标签 [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.

0 投票
0 回答
780 浏览

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 似乎无法找到数据包的位置。我在某处遗漏了什么吗?

0 投票
1 回答
1687 浏览

chef-solo - 数据包项必须包含 Hash 或 Mash 错误

配置厨师节点时出现以下错误:

我已经验证了数据包名称config.json存在,并且数据包中有一个同名的id。此外,在 Vagrant 文件中正确设置了数据包路径。

配置文件

JSON 是有效的。

更新。 Chef 客户端 12.0.1 和 12.0.3 上的问题。降级到 11.18.0 时不会发生。

0 投票
1 回答
958 浏览

dynamic - Chef 数据包和动态变量传递

我正在想办法让下面的代码工作;我尝试了各种方法,但厨师客户端运行在第 3 行中断。

然而,在另一个测试配方中,我能够成功地完成以下工作:

我对厨师很陌生,请有人告诉我如何让它工作吗?

0 投票
1 回答
93 浏览

encryption - 我怎样才能始终保持加密的数据包“加密”?

在我的一个厨师食谱中,我使用加密的数据包来隐藏我定义的远程文件资源的下载路径。但是,当在一个节点上收敛时,如果由于某种原因下载失败,那么我可以在日志中看到我所有的秘密。

因为我打算在 CI 服务器上部署它,所以我真的不想让它显示出来。

有什么方法可以使数据即使在出错时也保持加密?

0 投票
1 回答
578 浏览

ruby - 加载通过 Chef 代码创建的 Chef 数据包项时出错

我有两个与该问题相关的问题。(已解决的问题,下面提供的解决方案)

我有一个名为 java 的数据包。它包含特定于每个节点的主机名的数据包项,如下所示

我可以使用 Chef 代码创建数据包

但是在执行配方时,我在代码中遇到错误,它正在为 jdk_version 赋值

问题 1:如何从上述数据包项格式中获取值?

如果我如下创建数据包,我可以获取 jdk_version

以上述格式创建数据包的代码

问题2:我在之前的数据包项实现中做错了什么?

已解决的问题:: 我现在能够以下述格式创建数据包项,能够成功获取数据

在创建数据包项哈希时,为 jdk_version 及其值添加了“{}”大括号而不是“[]”。

下面提供了工作代码,

0 投票
1 回答
3519 浏览

templates - 如何将 2 个数据包变量传递给模板厨师

我正在尝试将 2 个数据包作为变量传递到模板中,但它以错误消息结尾。有谁知道我如何将 2 个数据包传递给模板?

食谱

模板

0 投票
0 回答
232 浏览

ruby - 在 Chef 数据包参考中将属性与文字相结合

在knife ec2期间,我指定了一个我想在数据包中引用的ClientID属性,只是我想添加到包名中,所以它不完全是ID。这适用于确切的 ID:

但我正在尝试这样的事情(这不起作用)

因此,如果 ClientID = abcd,则引用将是“abcd_tenants”。有没有一种解决方案可以让我在不为数据包传递单独的 json 属性的情况下执行此操作?

0 投票
1 回答
85 浏览

haskell - 将列表映射到类型

我正在尝试将列表 ["a","b","c","c"] 转换为 haskell 中的集合,例如: [("a",1),("b",1),( "c",2)]。我不想使用地图。我的功能如下所示:

我做错了什么,还是我错过了任何情况?

0 投票
1 回答
208 浏览

chef-infra - 使用 chef-vault 代替数据包

奥海厨师。

我写了一个将用户名和密码作为参数的定义。当在带有从数据包中获取的参数的配方中使用时,它可以工作。

但是,从 chef-vault 获取参数时失败

下面是使用数据包的代码:

然后将它们传递给我的定义,它工作正常

但是,当我尝试对 chef-vault 执行相同操作时,它会失败,因为定义正在检查 NIL 值的输入。在我看来,数据包是在编译时评估的,而保管库项目是在执行时评估的。

如果我想让这个工作,我应该怎么做?有没有办法强制在编译时进行 Vault 项目评估?

这是使用失败的保险库的代码:

如果参数之一为空,它会引发我的代码中的异常这是定义中的代码:

所以我得到的例外是“Exiting - nil values are unaxceptable for connectProfiletoLdap”

0 投票
1 回答
2121 浏览

chef-infra - 没有这样的文件或目录 - 找不到文件错误厨师

这是我的食谱代码,

我认为file资源将/etc/chef/encrypted_data_bag_secret首先创建并且可供使用,Chef::EncryptedDataBagItem.load_secret但是当我运行这本食谱时,我开始收到以下错误消息。

由于我在引导节点时添加了这本食谱,所以我不知道如何在引导期间提供秘密文件。