如何将节点特定的 SSH 密钥与 Rundeck AWS EC2 资源插件一起使用?

Posted

技术标签:

【中文标题】如何将节点特定的 SSH 密钥与 Rundeck AWS EC2 资源插件一起使用?【英文标题】:How to use node specific SSH keys with Rundeck AWS EC2 Resource Plugin? 【发布时间】:2016-10-06 00:03:16 【问题描述】:

我已经为节点配置了带有 AWS EC2 资源插件的 Rundeck 服务器。

现在对于多个 EC2 实例,我使用不同的 SSH 密钥。

有没有办法告诉 Rundeck 在同一个 Rundeck 项目中为不同的 EC2 实例(Rundeck 节点)使用不同的 SSH 密钥?

我曾尝试使用 AWS Resource Plugin 映射为 Rundeck 指定“ssh-keypath”,但没有成功。有什么替代方法吗?

【问题讨论】:

【参考方案1】:

您应该能够使用ssh-keypath 指向本地文件,或使用ssh-key-storage-path 指向密钥存储设施中的位置。您还可以在路径中包含 $node.instanceId 之类的内容以动态指定值。对于 EC2 提供程序,您可以在“映射”配置中进行设置,例如 ssh-key-storage-path.default=keys/nodes/node-$node.instanceId.sshkey

如果您只为 keypath 指定了一个静态值,那么所有节点都将使用相同的值。你试过了吗?

另一种方法是在项目配置中的 SSH 节点执行器配置中设置默认值,再次使用密钥路径中的动态节点变量。您可以在项目配置 GUI(或 project.properties 文件内容)中执行此操作。如果您这样做,请不要在 EC2 提供程序中设置将覆盖项目默认值的值。

【讨论】:

我已经尝试了密钥路径的静态值,它工作正常,但我需要在所有服务器上使用相同的密钥。我还尝试将 EC2 提供程序映射为ssh-keypath.selector=keyName,但没有运气。 SSH 节点执行器配置也接受动态值吗?这对我也不起作用。

以上是关于如何将节点特定的 SSH 密钥与 Rundeck AWS EC2 资源插件一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Chef 获取 rundeck 的节点清单

rundeck自动化运维

rundeck基本使用

ssh-keygen - 如何使用特定用户名设置 rsa 密钥

如何使用 ansible 推送带有 SSH 密钥身份验证的剧本

新远程节点上的 Rundeck 身份验证失败