我正在尝试使用一个添加 AWS Secrets Manager hiera 后端的模块:
https://forge.puppet.com/accenture/hiera_aws_sm
这个模块需要我通过 puppetserver 安装的aws-sdk-secretsmanager gem:
$ sudo puppetserver gem install aws-sdk-secretsmanager
我还可以在 puppetserver 中看到这个 gem:
$ 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,因为它出现在列表中并且在调试它时遇到了一些问题。
原来这个问题是因为
aws-sdk-secretsmanager
以某种方式安装了多个版本:跑步...
...接受提示卸载所有已安装的版本,然后运行...
...解决了这个问题。