Я использую модуль gcp_compute_instance
ansible для создания экземпляра, в основном воспроизводя то, что находится в этом документе . Это прекрасно работает для создания экземпляра, но после создания экземпляра я не могу настроить его для другой книги воспроизведения, поскольку экземпляр не распознает учетную запись службы как действительного пользователя ssh. Ошибка, которую я получаю, когда запускаю вторую пьесу, -
Failed to connect to the host via ssh: ansible@35.196.226.99: Permission denied (publickey).
Я не нашел ни в одном документе или руководствах по gce / ansible, как настроить ssh-доступ к вновь созданному экземпляру. Все документы вроде бы подразумевают, что он должен просто работать с тем, что вы настроили для фактического создания экземпляра, что явно не так. Я попытался дать учетной записи службы роль, которая имеет разрешение compute.instances.osAdminLogin
, но есть еще две информации, которых я не знаю.
- Какое имя пользователя использовать для подключения. Моя вторая книга воспроизведения сейчас имеет
remote_user
в качестве имени учетной записи службы, но это не работает. Как я автоматически настраиваю это в ansible, чтобы я мог запускать обе книги воспроизведения без ручного вмешательства?
- Как связать ключ ssh с учетной записью службы? с помощью
gcloud compute os-login ssh-keys add
добавляет его в личный кабинет, а не в служебную учетную запись
Обратите внимание, что я могу просто войти в экземпляр ssh, используя свою личную учетную запись, которая использует функцию входа в ОС GCE и мой личный ключ ssh, но я хочу запустить вторую сборную playbook, используя служебную учетную запись с собственным ключом ssh а не мой личный аккаунт, чтобы я мог поделиться всем процессом с другими людьми или со службой CI / CD