【问题标题】:Use Ansible to manage GCE instances from within Cloud Shell使用 Ansible 在 Cloud Shell 中管理 GCE 实例
【发布时间】:2017-03-23 03:01:19
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: ansible google-cloud-shell


    【解决方案1】:

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

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

    【讨论】:

    • 我相信我已经成功地编辑了 gce.py 以传递机器名称和区域,并创建了一个可以用来代替 ssh 的脚本,并调用 'gcloud compute ssh' github.com/chad-autry/wac-gce-ansible
    • 就我而言,我已经设置了多个 gce 实例,并希望通过 ssh 进入所有实例并执行一些命令。如果您对如何实现这一点有任何想法,我们可以通过 quora 或 fb 或其他方式进一步讨论吗?
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-10-16
      • 2013-04-04
      • 1970-01-01
      • 1970-01-01
      • 2017-04-17
      • 1970-01-01
      • 2019-04-21
      • 2018-04-17
      • 1970-01-01
      相关资源
      最近更新 更多