Puppetserver 无法定位宝石

Puppetserver 无法定位宝石

我正在尝试使用添加 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

...解决了这个问题。

相关内容