Я использовал Ansible для создания кластера gce, следуя указаниям по адресу: https://docs.ansible.com/ansible/latest/scenario_guides/guide_gce.html
И в конце создания GCE я использовал модуль add_host
Ansible для регистрации всех экземпляров в соответствующих группах.,e.g. gce_master_ip
Но тогда, когда я попытаюсь выполнить следующие задачи после задачи создания, они не будут работать:
- name: Create redis on the master
hosts: gce_master_ip
connection: ssh
become: True
gather_facts: True
vars_files:
- gcp_vars/secrets/auth.yml
- gcp_vars/machines.yml
roles:
- { role: redis, tags: ["redis"] }
В файле auth.yml
, который я уже предоставил учетной записи службыадрес электронной почты, путь к файлу учетных данных json и идентификатор проекта.Но, видимо, этого недостаточно.Я получил ошибки, как показано ниже:
UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Permission denied (publickey).\r\n", "unreachable": true}
Это типичное имя пользователя ssh и учетные данные не разрешены или не предоставлены.В этом случае я бы сказал, что я не настроил ничего из имени пользователя и личного ключа для соединения ssh
, которое Ansible будет использовать для подключения.
Есть ли что-то, что я должен сделать, чтобы убедиться, что соответствующие учетные данныепредоставляются для установления соединения?
Во время моего поиска я думаю, что один вопрос только что кратко упомянул, что вы можете использовать команду gcloud compute ssh...
.Но есть ли способ, которым я мог бы указать в Ansible не использовать классический ssh
и использовать один из gcloud?