使用Ansible从Cloud Shell中管理GCE实例

使用Ansible从Cloud Shell中管理GCE实例,ansible,google-cloud-shell,Ansible,Google Cloud Shell,我正试图使用ansible在Google Cloud Shell(据我所知,它本身就是一个特殊的GCE实例)中对现有的GCE实例运行剧本 如果我将凭证留空,它可能会自动拾取凭证 在GCE VM内运行Ansible时,您可以通过将service_account_email和credentials_file设置为空字符串来使用来自本地元数据服务器的service account凭据 但是,ssh尝试失败。我还需要做些什么来允许GCE-->GCE ssh吗?我是否需要指定用于ssh尝试的用户?如果有人

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

如果我将凭证留空,它可能会自动拾取凭证

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

但是,ssh尝试失败。我还需要做些什么来允许GCE-->GCE ssh吗?我是否需要指定用于ssh尝试的用户?如果有人有一个很好的例子

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

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


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

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

此外,我不再相信尝试从VM自动提取凭据是切实可行的。因此,容器需要服务帐户凭据,我已经包含了指向使用所需角色创建的说明的链接


我相信我已经成功地编辑了gce.py以传递机器名和区域,并创建了一个脚本,可以用来代替ssh用于ansible,并调用“gcloud compute ssh”。在我的例子中,我已经设置了多个gce实例,并希望ssh到所有实例中并执行一些命令。如果您对如何实现这一点有想法,我们可以通过quora或fb或其他方式进一步讨论吗?