2

我正在尝试使用 ansible 从 Google Cloud Shell 中针对现有 GCE 实例运行剧本(据我了解,它本身就是一个特殊的 GCE 实例)

GCE 指南听起来像是如果我将凭据留空,它可能会自动获取凭据。

在 GCE VM 中运行 Ansible 时,您可以通过将 service_account_email 和 credentials_file 都设置为空白字符串来使用来自本地元数据服务器的服务帐户凭据。

但是,ssh 尝试失败。我是否还需要做一些事情来允许 GCE --> GCE ssh?我是否可能需要指定用于 ssh 尝试的用户?如果有人有一个很好的工作示例。

编辑:我使用这些说明为我的 google 用户(登录到实例或云 shell 时由“whoami”返回的用户)添加了一个项目范围的 ssh 密钥,但我仍然无法手动或使用 ansible shh 到其他实例.

4

2 回答 2

1

从我的搜索(例如项目、评论、论坛问题等)来看,似乎无法通过设置使 Ansible 自动连接到其他 GCE 实例而不设置 ssh 密钥。

但是,“gcloud compute ssh”可以从 GCE 中自动连接到其他 GCE 实例。我怀疑(并且正在尝试)模仿 Ansible 使用的 ssh api 的脚本,但委托给 gcloud 可以允许 Ansible 在没有密钥管理的情况下工作。

于 2017-03-26T19:08:23.560 回答
0

我相信现在从 Google Cloud Shell 中运行 Ansible 最方便的方法是使用我创建的 dockerized Ansible 项目。在我最后一次尝试将 Ansible 安装到 Google Cloud Shell VM 上时,我无法让它工作。但是,docker 默认是可用的。

此外,我不再认为尝试从 VM 中自动提取凭据是可行的。因此,该容器需要服务帐户凭据,我已包含指向有关使用所需角色创建说明的链接。

https://github.com/chad-autry/wac-gce-ansible

于 2019-03-19T15:33:40.300 回答