Cloud Workstations vous permet de créer et d'utiliser des des images pour vos stations de travail. Une fois qu'une image personnalisée est utilisée, il est utile d'automatiser la recompilation de l'image afin d'intégrer les correctifs et mises à jour disponibles dans les images de base.
Dans ce tutoriel, vous allez apprendre à créer un pipeline automatisé pour vous assurer que vous incluiez les mises à jour de sécurité et les correctifs dans vos images de poste de travail personnalisées.
Objectifs
En suivant ce tutoriel, vous allez créer un pipeline automatisé pour votre image de base en procédant comme suit:
- Créez un dépôt Artifact Registry pour stocker et analyser votre image personnalisée.
- Configurez GitHub avec Google Cloud pour stocker vos configurations d'image.
- Créer un déclencheur Cloud Build pour automatiser la création et le déploiement d'images personnalisées vers Artifact Registry.
- Configurez Cloud Scheduler pour lancer régulièrement des compilations.
- Examinez les résultats des processus automatisés.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :
Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Une fois que vous avez terminé les tâches décrites dans ce document, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Container Scanning API, Cloud Build, and Cloud Scheduler APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Container Scanning API, Cloud Build, and Cloud Scheduler APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Préparer l'environnement
Avant de continuer, assurez-vous de définir les variables d'environnement suivantes.
Définissez l'ID du projet Cloud que vous prévoyez d'utiliser:
PROJECT_ID=$PROJECT_ID
Définissez le nom d'utilisateur GitHub où vous prévoyez de stocker votre dépôt:
GITHUB_USER=$GITHUB_ID
Définissez les variables
PROJECT_NUMBER
etREGION
à utiliser tout au long du processus:PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID \ --format='value(projectNumber)') REGION=$REGION
Dans l'exemple précédent, remplacez $REGION par le nom de la région. que vous prévoyez d'utiliser (par exemple,
us-central1
).Pour en savoir plus sur les régions disponibles, consultez Emplacements Cloud Workstations
Créer un dépôt Artifact Registry
Dans ce tutoriel, vous allez utiliser Artifact Registry pour stocker et analyser vos images.
Créez un dépôt à l'aide de la commande suivante:
gcloud artifacts repositories create custom-images \ --repository-format=docker \ --location=$REGION \ --description="Docker repository"
Remplacez $REGION par le nom de la région que vous prévoyez d'utiliser. utiliser.
Configurez Docker pour qu'il utilise vos identifiants CLI
gcloud
lorsque accédant à Artifact Registry.gcloud auth configure-docker $REGION-docker.pkg.dev
Pour désactiver Artifact Analysis, exécutez la commande suivante:
gcloud services disable containerscanning.googleapis.com
Configurer votre dépôt GitHub
En pratique, vous conservez le Dockerfile de vos images personnalisées dans un dépôt Git. La un processus automatisé accède à ce dépôt pendant le processus de compilation pour extraire les configurations appropriées et le Dockerfile.
Dupliquer l'exemple de dépôt
Pour dupliquer un exemple de dépôt qui fournit des définitions de conteneur, procédez comme suit : étapes:
- Cliquez sur ce lien pour accéder à
Créez une copie.
du dépôt
software-delivery-workshop
. - Si vous y êtes invité, connectez-vous à GitHub.
- Sélectionnez votre nom d'utilisateur GitHub comme propriétaire. Le nom du dépôt s'affiche sous la forme
software-delivery-workshop
. - Cliquez sur Create fork (Créer une copie) et attendez quelques secondes que le processus se termine.
Connecter Cloud Build à GitHub
Ensuite, connectez ce dépôt à Cloud Build à l'aide de l'API Capacité de connexion de GitHub. Cliquez sur le lien vers le dépôt GitHub et suivez les instructions décrivant le déroulement du processus. Vous n'avez pas besoin de créez le déclencheur à la dernière étape de l'assistant, et vous pouvez ignorer la dernière car vous pourrez le faire plus tard à partir de la ligne de commande.
Si vous utilisez une autre solution de dépôt Git, vous pouvez également suivre les instructions pour connecter Cloud Build à GitLab ou à Bitbucket.
Créer un déclencheur Cloud Build
L'exemple de dépôt contient une définition de conteneur et Cloud Build
utilisée pour créer l'image de conteneur. Au cours de cette étape, vous allez créer
un déclencheur Cloud Build qui exécute les instructions
cloudbuild.yaml
que vous trouverez dans le
labs/cloudbuild-scheduled-jobs/code-oss-java
.
gcloud builds triggers create manual \
--name=custom-image-trigger \
--repo=$GITHUB_USER/software-delivery-workshop \
--repo-type=GITHUB \
--branch=main \
--build-config=labs/cloudbuild-scheduled-jobs/code-oss-java/cloudbuild.yaml \
--substitutions=_REGION=$REGION,_AR_REPO_NAME=custom-images,_AR_IMAGE_NAME=code-oss-java,_IMAGE_DIR=labs/cloudbuild-scheduled-jobs/code-oss-java
TRIGGER_ID=$(gcloud builds triggers list \
--filter=name="custom-image-trigger" --format="value(id)")
Cet exemple configure les éléments suivants:
- La commande CLI
gcloud
crée un déclenchement manuel dans Cloud Build, nommécustom-image-trigger
, comme indiqué par l'indicateurname
sur la deuxième ligne. - Les trois lignes suivantes contiennent des indicateurs liés au dépôt GitHub source:
- Chemin d'accès au dépôt
- Type du dépôt
- Branche Git à compiler
- L'option
build-config
indique le chemin d'accès Cloud Build dans le dépôt Git. Pour rendre la tâche dynamique, utilisez l'option
substitutions
. Pour ce job, la commande transmet les variables suivantes:- Région,
$_REGION
- Nom du dépôt Artifact Registry,
$_AR_REPO_NAME
- Nom de l'image de conteneur,
$_AR_IMAGE_NAME
- Emplacement du Dockerfile à compiler,
$_IMAGE_DIR
Consultez le cloudbuild.yaml pour voir comment ces variables sont utilisées dans le processus.
- Région,
Une fois le déclencheur créé, son nom unique est récupéré et stocké dans la variable d'environnement
$TRIGGER_ID
pour une utilisation ultérieure.
Configurer Cloud Scheduler
Pour vous assurer que vos images disposent des dernières mises à jour et des correctifs, utilisez Cloud Scheduler pour exécuter Cloud Build à une fréquence définie. Pour ce tutoriel, la tâche est exécutée tous les jours. Dans Choisissez une fréquence adaptée aux besoins de votre entreprise vous assurer que les dernières mises à jour sont toujours incluses.
Attribuez un rôle requis au compte de service par défaut pour appeler Déclencheur Cloud Build:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \ --role="roles/cloudbuild.builds.editor"
Attribuez un rôle requis au compte de service Cloud Build pour effectuer l'importation vers Artifact Registry:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \ --role="roles/artifactregistry.admin"
Créez la tâche Cloud Scheduler à l'aide de la commande suivante:
gcloud scheduler jobs create http run-build \ --schedule='0 1 * * *' \ --uri=https://cloudbuild.googleapis.com/v1/projects/$PROJECT_ID/locations/global/triggers/$TRIGGER_ID:run \ --location=us-central1 \ --oauth-service-account-email=$PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --oauth-token-scope=https://www.googleapis.com/auth/cloud-platform
La tâche est configurée pour s'exécuter une fois par jour. Toutefois, pour tester immédiatement, exécutez le job manuellement Cloud Scheduler:
- Sur la page Cloud Scheduler, recherchez l'entrée que vous venez de créer, appelée run-build.
- Dans la colonne "Actions", cliquez sur le menu more_vertPlus. ligne.
- Cliquez sur Forcer l'exécution d'une tâche pour tester manuellement le système.
Une fois la commande exécutée, passez au Page d'historique de Cloud Build pour examiner la progression:
Étudier les résultats
Comme vous avez activé l'API Container Scanning lors de la configuration Artifact Registry analyse automatiquement les images pour vérifier les failles.
Pour examiner les failles:
Ouvrez la page "Dépôts Artifact Registry" :
Dans la liste des dépôts, cliquez sur un dépôt.
Cliquez sur le nom d'une image. Le nombre total de failles pour chaque condensé d'image apparaît dans la colonne Vulnerabilities (Failles).
Pour afficher la liste des failles d'une image, cliquez sur le lien dans la colonne Vulnerabilities (Failles). La liste des failles severity, la disponibilité d'un correctif et le nom du package contenant la faille de sécurité.
Effectuer un nettoyage
Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.
Pour éviter que les ressources soient facturées sur votre compte Google Cloud, utilisées sur cette page, pensez bien à supprimer les ressources que vous dont vous n'avez plus besoin.
Pour supprimer un projet Google Cloud depuis la console Google Cloud ou depuis
CLI gcloud
:
Console
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
gcloud
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Étape suivante
- Consultez la liste des images de base préconfigurées disponibles.
- Personnalisez vos images de conteneurs.
- Consultez les types de machines disponibles.
- Mettre en place des bonnes pratiques de sécurité
- Découvrez des architectures de référence, des schémas et des bonnes pratiques concernant Google Cloud. Consultez notre Centre d'architecture cloud.