Este documento descreve como configurar apps para se conectar de maneira programática entre duas instâncias de máquina virtual (VM) usando login SSH e SO. Ativar apps para usar o SSH pode ser útil para automatizar processos de gerenciamento de sistemas.
Todas as amostras de código usadas neste guia estão hospedadas na página do GoogleCloudPlatform/python-docs-samples do GitHub.
Antes de começar
- Configure o SSH para uma conta de serviço.
- Configure o Login do SO no seu projeto ou em uma VM executada como uma conta de serviço.
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud.
Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine da seguinte maneira.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Importe a biblioteca de Login do SO do Google para criar bibliotecas de cliente, o que permite a autenticação com a API Login do SO.
- Inicialize o objeto da API OS Login para permitir que o app use o Login do SO.
- Implemente um método
create_ssh_key()
que gere uma chave SSH para a conta de serviço da VM e adicione a chave pública à conta de serviço. - Chame o método
get_login_profile()
da API do Login do SO para conseguir o nome de usuário POSIX usado pela conta de serviço. - Implemente um método
run_ssh()
para executar um comando SSH remoto. - Remova os arquivos de chave SSH temporários.
Conecte-se à VM que hospeda o app SSH.
Na VM, instale
pip
e a biblioteca de cliente do Python 3:sudo apt update && sudo apt install python3-pip -y && pip install --upgrade google-cloud-os-login requests
Opcional: se você estiver usando o app de exemplo
oslogin_service_account_ssh.py
, faça o download em GoogleCloudPlatform/python-docs-samples:curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/compute/oslogin/oslogin_service_account_ssh.py
Execute o app SSH. O app de exemplo usa
argparse
para aceitar variáveis da linha de comando. Neste exemplo, instrua o app a instalar e executarcowsay
em outra VM no projeto.python3 service_account_ssh.py \ --cmd 'sudo apt install cowsay -y && cowsay "It works!"' \ --project=PROJECT_ID --instance=VM_NAME --zone=ZONE
Substitua:
PROJECT_ID
: o ID do projeto da VM a que o aplicativo está se conectando.VM_NAME
: o nome da VM a que o app está se conectando.ZONE
: a zona da VM a que o aplicativo está se conectando.
O resultado será assim:
⋮ ___________ It works! ----------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
- Faça o download e confira o exemplo de código completo. A amostra completa contém um pequeno exemplo de como usar todos esses métodos juntos. Sinta-se à vontade para fazer o download desse exemplo, alterá-lo e executá-lo para atender às suas necessidades.
- Saiba mais sobre como as conexões SSH funcionam no Compute Engine, incluindo configuração e armazenamento de chaves SSH.
Configurar um app SSH
Configure seu app para gerenciar chaves SSH e iniciar conexões SSH com VMs do Compute Engine. De modo geral, o app precisa fazer o seguinte:
App SSH de amostra
O app de exemplo
oslogin_service_account_ssh.py
demonstra uma possível implementação de um app SSH. Neste exemplo, o aplicativo usa o métodorun_ssh()
para executar um comando em uma instância remota e retornar a saída do comando.Executar o app SSH
Depois de criar um app que usa SSH, é possível executá-lo seguindo um processo semelhante ao exemplo a seguir, que instala e executa o app de amostra
oslogin_service_account_ssh.py
. As bibliotecas instaladas podem ser diferentes, dependendo da linguagem de programação que o app usar.Como alternativa, você pode criar um app que importa
oslogin_service_account_ssh.py
e o executa diretamente.A seguir
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2024-09-24 UTC.
-