使用 Ansible 从云中管理 GCE 实例 Shell
Use Ansible to manage GCE instances from within Cloud Shell
我正在尝试使用 ansible 运行 针对 Google Cloud Shell 中现有 GCE 实例的剧本(据我了解,它本身就是一个特殊的 GCE 实例)
GCE Guide 听起来好像如果我将它们留空,它应该会自动获取凭据。
When running Ansible inside a GCE VM you can use the service account credentials from the local metadata server by setting both service_account_email and credentials_file to a blank string.
但是,ssh 尝试失败。我还需要做些什么来允许 GCE --> GCE ssh 吗?我可能需要指定用于 ssh 尝试的用户吗?如果有人有一个很好的工作示例。
编辑:我为我的 google 用户添加了一个项目范围的 ssh 密钥(当我登录实例或云 shell 时 'whoami' 返回的用户)使用 these instructions,但我仍然无法手动或使用 ansible 对其他实例进行嘘声。
根据我的搜索(例如项目、评论、论坛问题等),似乎无法通过设置使 Ansible 在不设置 ssh 密钥的情况下自动连接到其他 GCE 实例。
但是,'gcloud compute ssh' 可以从 GCE 中自动连接到其他 GCE 实例。我怀疑(并且正在尝试)模拟 Ansible 使用的 ssh api 的脚本,但委托给 gcloud 可能允许 Ansible 在没有密钥管理的情况下工作。
我认为 Google Cloud Shell 中 运行 Ansible 的最便捷方式,现在是使用我创建的 dockerized Ansible 项目。在我最后一次尝试将 Ansible 安装到 Google Cloud Shell VM 上时,我无法让它工作。但是,默认情况下 docker 可用。
此外,我不再认为尝试从 VM 自动提取凭据是可行的。因此容器需要服务帐户凭据,我已将其包含到有关使用所需角色创建说明的链接。
我正在尝试使用 ansible 运行 针对 Google Cloud Shell 中现有 GCE 实例的剧本(据我了解,它本身就是一个特殊的 GCE 实例)
GCE Guide 听起来好像如果我将它们留空,它应该会自动获取凭据。
When running Ansible inside a GCE VM you can use the service account credentials from the local metadata server by setting both service_account_email and credentials_file to a blank string.
但是,ssh 尝试失败。我还需要做些什么来允许 GCE --> GCE ssh 吗?我可能需要指定用于 ssh 尝试的用户吗?如果有人有一个很好的工作示例。
编辑:我为我的 google 用户添加了一个项目范围的 ssh 密钥(当我登录实例或云 shell 时 'whoami' 返回的用户)使用 these instructions,但我仍然无法手动或使用 ansible 对其他实例进行嘘声。
根据我的搜索(例如项目、评论、论坛问题等),似乎无法通过设置使 Ansible 在不设置 ssh 密钥的情况下自动连接到其他 GCE 实例。
但是,'gcloud compute ssh' 可以从 GCE 中自动连接到其他 GCE 实例。我怀疑(并且正在尝试)模拟 Ansible 使用的 ssh api 的脚本,但委托给 gcloud 可能允许 Ansible 在没有密钥管理的情况下工作。
我认为 Google Cloud Shell 中 运行 Ansible 的最便捷方式,现在是使用我创建的 dockerized Ansible 项目。在我最后一次尝试将 Ansible 安装到 Google Cloud Shell VM 上时,我无法让它工作。但是,默认情况下 docker 可用。
此外,我不再认为尝试从 VM 自动提取凭据是可行的。因此容器需要服务帐户凭据,我已将其包含到有关使用所需角色创建说明的链接。