我正在尝试使用添加 AWS Secrets Manager hiera 后端的模块:
https://forge.puppet.com/accenture/hiera_aws_sm
此模块需要aws-sdk-secretsmanagergem,我通过puppetserver安装的:
$ sudo puppetserver gem install aws-sdk-secretsmanager
我还可以看到 puppetserver 中列出了这颗宝石:
$ sudo puppetserver gem list
*** LOCAL GEMS ***
<trimmed>
aws-sdk-schemas (1.6.0)
aws-sdk-secretsmanager (1.40.0, 1.39.0)
aws-sdk-securityhub (1.29.0)
<trimmed>
该模块本身包含以下行来导入 gem:
require 'aws-sdk-secretsmanager'
当我尝试运行代理测试时......
$ sudo puppet agent --test
...当此模块尝试运行时,我收到以下错误(在注释掉模块添加的一些错误处理混淆之后):
Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Internal Server Error: org.jruby.exceptions.LoadError: (LoadError) no such file to load -- aws-sdk-secretsmanager
我无法弄清楚为什么 puppetserver jruby 实例无法加载 gem,因为它出现在列表中并且在调试它时遇到了一些障碍。
答案1
事实证明,这个问题是由于以aws-sdk-secretsmanager
某种方式安装了多个版本造成的:
$ sudo puppetserver gem list
*** LOCAL GEMS ***
<trimmed>
aws-sdk-secretsmanager (1.40.0, 1.39.0)
<trimmed>
跑步...
$ sudo puppetserver gem uninstall aws-sdk-secretsmanager
...接受提示以卸载所有已安装的版本,然后运行...
$ sudo puppetserver gem install aws-sdk-secretsmanager
...解决了这个问题。