AWS Opsworks 将 data_bag 文件夹放在哪里?

AWS Opsworks where to put data_bag folder?

我将 AWS Opsworks 与 Chef 12 和自定义说明书一起使用。我也想使用 data_bags,但我不知道 Opsworks 在哪里寻找它们。

如果我将它们添加 /var/chef/data_bags 我可以使用 chef-client --local-mode 成功 运行 食谱,但是当我尝试通过 Opsworks -> Stack -> Execute 食谱时,我得到以下信息错误。

[2016-01-07T21:05:07+00:00] INFO: HTTP Request Returned 404 Not Found: Object not found: chefzero://localhost:8889/data/users

OpsWorks 似乎在这个位置创建了自己的 data_bags /var/chef/runs/9586fca2-52d1-43a8-9b3c-6fc0e4e79259/data_bags 但是这些都是自定义 AWS 文件夹,例如..

aws_opsworks_app      aws_opsworks_ecs_cluster            aws_opsworks_instance  aws_opsworks_rds_db_instance  aws_opsworks_user
aws_opsworks_command  aws_opsworks_elastic_load_balancer  aws_opsworks_layer     aws_opsworks_stack

如何添加到 OpsWorks Databag 或将我自己的 data_bag 文件夹放在哪里?

http://docs.aws.amazon.com/opsworks/latest/userguide/best-practices-server-migrate.html#best-practices-server-migrate-data-bags

http://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-chef11-10.html#workingcookbook-chef11-10-databag

所以基本上您需要在 opsworks 内部定义附加到堆栈级别或层级别等的自定义 json。这些 json 被提取并注入数据包中,最终成为 [=18= 的一部分]. (即你不能在食谱中定义袋子)