Hil*_*kus 5 ssh google-compute-engine ansible google-cloud-platform
我正在使用gcp_compute_instanceansible 模块创建一个实例,基本上复制了这个文档中的内容。这可以很好地创建实例,但在创建实例后,我无法使用不同的剧本对其进行配置,因为该实例无法将服务帐户识别为有效的 ssh 用户。运行第二个剧本时出现的错误是
Failed to connect to the host via ssh: ansible@35.196.226.99: Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)
我在 gce/ansible 的任何文档或教程中都没有找到如何配置对新创建实例的 ssh 访问。所有文档都暗示它应该只与您配置的实际创建实例一起使用,这显然不是这种情况。我尝试的是给服务帐户一个具有权限的角色,compute.instances.osAdminLogin但仍有两条我不知道的信息。
remote_user设置为服务帐户的名称,但这不起作用。如何在 ansible 中自动配置它,以便我可以在没有手动干预的情况下背靠背运行两个剧本?gcloud compute os-login ssh-keys add将它添加到我的个人帐户,而不是添加到服务帐户请注意,我可以使用我的个人帐户通过 ssh 进入实例就好了,它使用 GCE 的操作系统登录功能和我的个人 ssh 密钥,但我想使用具有自己的 ssh 密钥的服务帐户运行第二个 ansible playbook,而不是我的个人帐户,以便我可以与其他人或 CI/CD 服务共享整个过程
您可以将 ansible 服务帐户 SSH 密钥存储在 GCP 内。如果您这样做,每当您创建虚拟机时都会自动生成您的密钥。
要添加密钥,您可以转到 Compute Engine > 元数据 > SSH 密钥
| 归档时间: |
|
| 查看次数: |
2137 次 |
| 最近记录: |