En este documento, se describe cómo configurar apps para que se conecten de manera programática entre dos instancias de máquina virtual (VM) mediante SSH y Acceso a SO. Permitir que las apps usen SSH puede ser útil para automatizar los procesos de administración del sistema.
Todos los ejemplos de código que se usan en esta guía se alojan en la página de GitHub GoogleCloudPlatform/python-docs-samples.
Antes de comenzar
- Configura SSH para una cuenta de servicio.
- Configura Acceso al SO en tu proyecto o en una VM que se ejecute como una cuenta de servicio.
-
Si aún no lo hiciste, configura la autenticación.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud.
Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
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.
- Importa la biblioteca del Acceso al SO de Google para compilar bibliotecas cliente, lo que te permite autenticarte con la API de Acceso al SO.
- Inicializar el objeto de Acceso al SO para permitir que tu aplicación use Acceso al SO.
- Implementar un método
create_ssh_key()
que genere una clave SSH para la cuenta de servicio de la VM y agregue la clave pública a la cuenta de servicio. - Llamar al método
get_login_profile()
desde la biblioteca de Acceso al SO para obtener el nombre de usuario POSIX que usa la cuenta de servicio. - Implementa un método
run_ssh()
para ejecutar un comando SSH remoto. - Quita los archivos de Llave SSH temporales.
Conéctate a la VM que aloja la app SSH.
En la VM, instala
pip
y la biblioteca cliente de Python 3:sudo apt update && sudo apt install python3-pip -y && pip install --upgrade google-cloud-os-login requests
Opcional: Si usas la app de ejemplo
oslogin_service_account_ssh.py
, descárgala desde GoogleCloudPlatform/python-docs-samples:curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/compute/oslogin/oslogin_service_account_ssh.py
Ejecuta la app de SSH. La app de ejemplo usa
argparse
para aceptar variables desde la línea de comandos. En este ejemplo, indica a la app que instale y ejecutecowsay
en otra VM del proyecto.python3 service_account_ssh.py \ --cmd 'sudo apt install cowsay -y && cowsay "It works!"' \ --project=PROJECT_ID --instance=VM_NAME --zone=ZONE
Reemplaza lo siguiente:
PROJECT_ID
: el ID del proyecto de la VM a la que se conecta la app.VM_NAME
: el nombre de la VM a la que se conecta la app.ZONE
: la zona de la VM a la que se conecta la app.
El resultado es similar a este:
⋮ ___________ It works! ----------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
- Descarga y observa la muestra de código completa. La muestra completa incluye una pequeña muestra del uso de todos estos métodos juntos. No dudes en descargarla, modificarla y ejecutarla para adaptarla a tus necesidades.
- Obtén más información sobre cómo funcionan las conexiones SSH en Compute Engine, incluida la configuración y el almacenamiento de llaves SSH.
Configura una app de SSH
Configura tu aplicación para administrar claves SSH e iniciar conexiones SSH a las VMs de Compute Engine. En un nivel alto, la aplicación debe hacer lo siguiente:
App SSH de ejemplo
En la app de ejemplo
oslogin_service_account_ssh.py
, se muestra una posible implementación de una app SSH. En este ejemplo, la app usa el métodorun_ssh()
para ejecutar un comando en una instancia remota y mostrar el resultado del comando.Ejecuta la app SSH
Después de crear una app que use SSH, puedes ejecutarla mediante un proceso similar al siguiente ejemplo, que instala y ejecuta la app de ejemplo
oslogin_service_account_ssh.py
. Las bibliotecas que instales pueden variar según el lenguaje de programación que use la app.De manera alternativa, puedes escribir una app que importe
oslogin_service_account_ssh.py
y la ejecute directamente.¿Qué sigue?
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-12-22 (UTC)
-