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

时间:2017-03-23 03:01:19

标签: ansible google-cloud-shell

我试图使用ansible从Google Cloud Shell中对现有的GCE实例运行一个剧本(根据我的理解,这本身就是一个特殊的GCE实例)

GCE Guide听起来好像应该自动获取凭据,如果我将它们留空。

  

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

然而,ssh尝试失败。我还需要做些什么才能允许GCE - > GCE ssh?我是否需要指定用于ssh尝试的用户?如果有人有一个非常出色的工作实例。

修改:我已经使用these instructions为我的Google用户添加了一个项目范围的ssh密钥(该用户通过' whoami'当我登录到实例或云外壳时返回),但我仍然不能手动或用ansible来嘘到其他情况。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

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