Meu objetivo é criar uma instância de mecanismo de computação na nuvem do Google a partir da qual eu possa executar scripts ansiosos para criar instâncias adicionais que executem contêineres por meio do GKE.
Eu já descobri várias coisas:
- Como criar uma instância em que ansible e gce.py possam ser executados
- Como conceder a essa instância direitos suficientes para chamar o apache-cloudlib
- Esse ansible usa 'ansible_ssh_host' do inventário para fazer sua conexão
gce.py pode usar o endereço IP externo ou o endereço IP interno, dependendo do valor da variável de shell INVENTORY_IP_TYPE.
Nenhum deles é configurado pelo ambiente do mecanismo de computação para usar a chave SSH gerada pelo gcloud compute ssh-config, que se parece com isso:
Host compute-instance.us-central1-a.project-name
Hostname 99.99.99.99
IdentityFile /home/user/.ssh/google_compute_engine
* em que 99.99.99.99 é o endereço IP público
O resultado final é que eu posso ssh para compute-instance.us-central1-a.project-name, mas não para o IP público, 99.99.99.99 ou o IP privado, sem especificar o arquivo de chave privada (google_compute_engine), que não é uma opção no script gce.py.
Eu posso obter o comportamento desejado adicionando o IP interno como outra entrada para o host:
Host compute-instance.us-central1-a.project-name 10.128.0.2
.. no entanto, há uma nota no arquivo de configuração que o arquivo é gerado automaticamente (e não para fazer isso):
# The following has been auto-generated by "gcloud compute config-ssh"
# to make accessing your Google Compute Engine virtual machines easier.
#
# To remove this blob, run:
#
# gcloud compute config-ssh --remove
...
# You should not hand-edit this section, unless you are deleting it.
#
Existe uma maneira "certa" conhecida de fazer com que o gce.py funcione a partir do google cloud, sem invadir o valor do ansible_ssh_host gerado pelo script?