与Chef 12的Opsworks无法访问部署ssh_key

时间:2015-12-14 01:51:12

标签: amazon-web-services chef-solo aws-opsworks databags

对于使用Chef v11或更早版本的OpsWorks documentation,您可以通过执行以下操作来访问部署密钥:

include 'deploy'
key = node[:deploy]['appshortname'][:scm][:ssh_key]

但是根据OpsWorks with Chef 12文档:

  

迁移从Chef访问堆栈设置的配方代码   对于Linux到Chef 12 Linux的11.10及更早版本,您必须将代码修改为:

     
      
  • 访问Chef数据包而非Chef属性。
  •   
  • 使用Chef搜索而不是Chef节点对象。
  •   
  • 使用AWS OpsWorks数据包名称(例如aws_opsworks_app),而不是使用AWS * OpsWorks属性名称,例如opsworks和deploy。
  •   

我的问题是,有关如何访问ssh_key for deploy的文档尚未更新,以显示数据标签中我可以找到密钥的位置。

是否有人知道最新文档或有人指出我找到ssh部署密钥的正确方向?

1 个答案:

答案 0 :(得分:2)

这在本文档页面的“app_source”下列出:http://docs.aws.amazon.com/opsworks/latest/userguide/data-bag-json-app.html#data-bag-json-app-app-source

以上是上面几页中略有改动的示例,其中还显示了SSH密钥:

search("aws_opsworks_app").each do |app|
  Chef::Log.info("********** The app's short name is '#{app['shortname']}' **********")
  Chef::Log.info("********** The app's ssh_key is '#{app['app_source’][‘ssh_key’]}’ **********")
end