Ce document explique comment configurer des applications pour connecter de manière automatisée deux instances de machine virtuelle (VM) à l'aide de SSH et d'OS Login. Le fait d'autoriser les applications à utiliser SSH peut être utile pour automatiser les processus de gestion du système.
Tous les exemples de code utilisés dans ce guide sont hébergés sur la page GitHub GoogleCloudPlatform/python-docs-samples.
Avant de commencer
- Configurez SSH pour un compte de service.
- Configurez OS Login sur votre projet ou sur une VM qui s'exécute en tant que compte de service.
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud.
Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :
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.
- Importez la bibliothèque Google OS Login pour créer des bibliothèques clientes, ce qui vous permet de vous authentifier avec l'API OS Login.
- Initialisez l'objet Client OS Login pour permettre à votre application d'utiliser OS Login.
- Mettez en œuvre une méthode
create_ssh_key()
qui génère une clé SSH pour le compte de service de la VM et ajoute la clé publique au compte de service. - Appelez la méthode
get_login_profile()
à partir de la bibliothèque OS Login pour obtenir le nom d'utilisateur POSIX utilisé par le compte de service. - Mettez en œuvre une méthode
run_ssh()
pour exécuter une commande SSH distante. - Supprimez les fichiers de clé SSH temporaires.
Connectez-vous à la VM qui héberge l'application SSH.
Sur la VM, installez
pip
et la bibliothèque cliente Python 3 :sudo apt update && sudo apt install python3-pip -y && pip install --upgrade google-cloud-os-login requests
Facultatif : Si vous utilisez l'exemple d'application
oslogin_service_account_ssh.py
, téléchargez-le à partir de GoogleCloudPlatform/python-docs-samples :curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/compute/oslogin/oslogin_service_account_ssh.py
Exécutez l'application SSH. L'exemple d'application utilise
argparse
pour accepter les variables depuis la ligne de commande. Dans cet exemple, indiquez à l'application d'installer et d'exécutercowsay
sur une autre VM de votre projet.python3 service_account_ssh.py \ --cmd 'sudo apt install cowsay -y && cowsay "It works!"' \ --project=PROJECT_ID --instance=VM_NAME --zone=ZONE
Remplacez les éléments suivants :
PROJECT_ID
: ID de projet de la VM à laquelle l'application se connecte.VM_NAME
: nom de la VM à laquelle l'application se connecte.ZONE
: zone de la VM à laquelle l'application se connecte.
Le résultat ressemble à ce qui suit :
⋮ ___________ It works! ----------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
- Téléchargez et consultez l'exemple de code complet. Il comprend une courte illustration de l'utilisation conjointe de toutes ces méthodes. N'hésitez pas à le télécharger, à le modifier et à l'exécuter selon vos besoins.
- Obtenez plus d'informations sur le fonctionnement des connexions SSH dans Compute Engine, y compris la configuration et le stockage de clés SSH.
Configurer une application SSH
Configurez votre application pour gérer les clés SSH et initier des connexions SSH aux VM Compute Engine. En règle générale, votre application doit effectuer les opérations suivantes :
Exemple d'application SSH
L'exemple d'application
oslogin_service_account_ssh.py
illustre une mise en œuvre possible d'une application SSH. Dans cet exemple, l'application utilise la méthoderun_ssh()
pour exécuter une commande sur une instance distante et renvoyer le résultat de la commande.Exécuter l'application SSH
Après avoir créé une application qui utilise SSH, vous pouvez l'exécuter en suivant un processus semblable à l'exemple suivant, qui installe et exécute l'exemple d'application
oslogin_service_account_ssh.py
. Les bibliothèques que vous installez peuvent varier en fonction du langage de programmation utilisé par l'application.Vous pouvez également créer une application qui importe
oslogin_service_account_ssh.py
et l'exécute directement.Étapes suivantes
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/11/22 (UTC).
-