gcp
Configurer GCP
Traductions
Ce tutoriel est également disponible dans les langues suivantes :
Configuration
Obtenir l'ID du projet
Copier/coller la valeur suivante dans la variable d'environnement GCP_PROJECT_ID
:
Générer le service account et ses permissions
Créer un service account cwcloud
Ensuite, lui ajouter le role owner
comme ceci :
Le service account doit aussi apparaitre dans les comptes principaux :
Générer la clef d'authentification
Aller dans IAM > Service Account > Manage key
Ensuite, créer une nouvelle clef (choisir le format JSON
) :
Le fichier téléchargé devrait ressembler à quelque chose comme ceci :
{
"type": "service_account",
"project_id": "projectid",
"private_key_id": "22fXXXXXXXXXXXXXXXXXXX",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvYYYYYYYYYYYYYYYYYY4G4A=\n-----END PRIVATE KEY-----\n",
"client_email": "cwcloud@projectid.iam.gserviceaccount.com",
"client_id": "ZZZZZZZZZZZZZZZZ",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/cwcloud%40projectid.iam.gserviceaccount.com",
"universe_domain": "googleapis.com"
}
Ensuite enregistrer la valeur en base64 de ce fichier dans la variable d'environnement GCP_APPLICATION_CREDENTIALS
.
Vous pouvez utiliser cette commande pour générer la valeur en base64 :
base64 -i projectid.json
Configuration du réseau
Créer un réseau default
comme ceci :
Voici le code terraform pour y parvenir :
variable "project_id" {
type = string
description = "The GCP project ID"
default = null
}
resource "google_compute_network" "vpc_network" {
project = var.project_id
name = "default"
auto_create_subnetworks = true
}
Vous pouvez ensuite stocker la valeur default
dans la variable d'environnement GCP_NETWORK
.
Configuration des firewalls
Voici le code terraform :
variable "project_id" {
type = string
description = "The GCP project ID"
default = null
}
variable "network" {
type = string
description = "The GCP vpc/network name"
default = null
}
resource "google_compute_firewall" "allow_ssh" {
name = "allow-ssh"
network = var.network
project = var.project_id
allow {
protocol = "tcp"
ports = ["22"]
}
source_ranges = ["0.0.0.0/0"]
target_tags = ["allow-ssh"]
}
resource "google_compute_firewall" "allow_http" {
name = "allow-http"
network = var.network
project = var.project_id
allow {
protocol = "tcp"
ports = ["80"]
}
source_ranges = ["0.0.0.0/0"]
target_tags = ["allow-http"]
}
resource "google_compute_firewall" "allow_https" {
name = "allow-https"
network = var.network
project = var.project_id
allow {
protocol = "tcp"
ports = ["443"]
}
source_ranges = ["0.0.0.0/0"]
target_tags = ["allow-https"]
}
Ensuite vous pouvez ajouter les tags dans le fichier cloud_environments.yml
:
firewall_tags:
- allow-http
- allow-https
- allow-ssh