GCP-3: Automatisation administration cloud storage 💾

Objectifs:
🎯 créer un bucket.
🎯 créer une politique de rétention.
🎯 pousser des éléments.
🎯 automatiser ces actions.

Prérequis:
💡 terraform.
💡 bash.
💡 avoir un projet ou une orga gcp.
💡 [ Github-Actions-0 ].
💡 [ GCP-1: Présentation ].
💡 [ GCP-2: Gestion des permissions ].


logo de GCP, cloud google qui va de pair avec nos outils devops.

Dans le chapitre [ GCP-2: Gestion des permissions ] nous avons parlé de ressources disponibles dans GCP mais sans les manipuler. Voyez donc ce chapitre comme un cas pratique du chapitre précédent.

Nous allons commencer par créer nos ressources depuis l'interface graphique, y pousser des fichiers txt (cela aurait pu être une image) et créer une politique de rétention. Puis nous allons tout supprimer et recréer le même contexte à l'aide de terraform et gcloud.

1) Depuis interface graphique.
1.1) Création d'un bucket.

Création d'un cloud storage bucket dans GCP, cloud google qui va de pair avec nos outils devops.

* Se rendre sur le service cloud storage.
* Sélectionner "buckets" et cliquer sur "créer".


Création d'un cloud storage bucket dans GCP, cloud google qui va de pair avec nos outils devops.

* Renseigner les métadonnées.
* Cliquer sur "créer".

1.2) Pousser un fichier dans le bucket.

Importer un fichier dans un cloud storage bucket dans GCP, cloud google qui va de pair avec nos outils devops.

* Se rendre dans le bucket.
* Cliquer sur "importer des fichiers".


Importer un fichier dans un cloud storage bucket dans GCP, cloud google qui va de pair avec nos outils devops.

* Nouveau fichier listé.

1.3) Ajouter une politique de rétention.

Créer une politique de rétention dans un cloud storage bucket dans GCP, cloud google qui va de pair avec nos outils devops.

(1) Cliquer sur "Cycle de vie".
(2) Cliquer sur "Ajouter une règle".


Créer une politique de rétention dans un cloud storage bucket dans GCP, cloud google qui va de pair avec nos outils devops.

* Sélectionner l'option de suppression.


Créer une politique de rétention dans un cloud storage bucket dans GCP, cloud google qui va de pair avec nos outils devops.

* Suppression des fichiers .txt de plus de 5 jours.
* Cliquer sur "Créer".

Nous avons pu créer notre bucket, l'alimenter d'un fichier texte et définir une politique de rétention depuis l'interface. C'est bien cependant pour mes besoins il me faut pouvoir recréer tout cela de manière identique et automatique.

Je vais donc supprimer les ressources créées juste avant, puis créer mes différents scripts.

2) Automatisation.
2.1) Création projet terraform.

Utilisation de terraform pour automatiser la création d'un cloud storage bucket dans GCP, cloud google qui va de pair avec nos outils devops.

* cred.json: clé d'un compte de service.
* main.tf: description du storage.
* variables.tf: définition des variables
* terraform.tfvars: surcharge des valeurs par défaut des vars.


Utilisation de terraform pour automatiser la création d'un cloud storage bucket dans GCP, cloud google qui va de pair avec nos outils devops.

* lifecycle_rule: politique de rétention.

Je ne vais pas détailler mes fichiers de variables mais seule la variable project_id est présente.

2) Automatisation.
2.1) Lancer le script.

terraform init;
terraform plan;
terraform apply;

Utilisation de terraform pour automatiser la création d'un cloud storage bucket dans GCP, cloud google qui va de pair avec nos outils devops.

* Bucket crée.

Utilisation de terraform pour automatiser la création d'un cloud storage bucket dans GCP, cloud google qui va de pair avec nos outils devops.

2.2) Pousser un fichier.

gsutil cp hello-world.txt gs://tf-test-policy/;

Utilisation de gcloud pour automatiser le push d'un fichier dans cloud storage bucket dans GCP, cloud google qui va de pair avec nos outils devops.

* Commande possible à condition d'être connecté à un projet et un compte de service avec gcloud.

Utilisation de gcloud pour automatiser le push d'un fichier dans cloud storage bucket dans GCP, cloud google qui va de pair avec nos outils devops.

* fichier uploadé.


Conclusion:
Dans ce chapitre nous avons vu comment il est possible de gérer le service cloud storage depuis l'interface graphique, l'automatisation du déploiement du service avec terraform et l'automatisation d'actions sur le service à l'aide de gcloud.

Si la partie terraform était trop rapide pour vous je vous invite à consulter ma rubrique [ Terraform: Grille de rubriques ]. Pour ce qui est de gcloud nous verrons des exemples plus complets par la suite.

Pour la suite, je vous propose de voir comment on peut intégrer ce que l'on vient de voir à un pipeline github. Rendez-vous à rubrique suivante [ GCP-4: Intégration github actions ].