Richten Sie mit gcloud cli eine freigegebene GCP-VPC mit benutzerdefiniertem Subnetz ein
Das Host-Projekt enthält ein Netzwerk, das von der Elastifile-Bereitstellung verwendet wird
Das Dienstprojekt enthält die Elastifile-Rechenressourcen
Host-Projekt | Support-Team-a |
Serviceprojekt | Support-Team-b |
Konfigurieren Sie das Serviceprojekt („support-team-b")
Melden Sie sich beim Dienstkonto für das Dienstprojekt an
gcloud auth login chutch@support-team-b.iam.gserviceaccount.com
Legen Sie die Konfiguration auf das Dienstprojekt fest
gcloud config set project support-team-b
Fügen Sie Rollen hinzu, die für die Bereitstellung im Serviceprojekt erforderlich sind
gcloud projects add-iam-policy-binding support-team-b --member "serviceAccount:chutch@support-team-b.iam.gserviceaccount.com" --role "roles/compute.instanceAdmin.v1" gcloud projects add-iam-policy-binding support-team-b --member "serviceAccount:chutch@support-team-b.iam.gserviceaccount.com" --role "roles/iam.serviceAccountUser" gcloud projects add-iam-policy-binding support-team-b --member "serviceAccount:chutch@support-team-b.iam.gserviceaccount.com" --role "roles/compute.networkAdmin" gcloud projects add-iam-policy-binding support-team-b --member "serviceAccount:chutch@support-team-b.iam.gserviceaccount.com" --role "roles/compute.networkUser" gcloud projects add-iam-policy-binding support-team-b --member "serviceAccount:chutch@support-team-b.iam.gserviceaccount.com" --role "roles/storage.admin" gcloud projects add-iam-policy-binding support-team-b --member "serviceAccount:chutch@support-team-b.iam.gserviceaccount.com" --role "roles/compute.imageUser" gcloud projects add-iam-policy-binding support-team-b --member "serviceAccount:chutch@support-team-b.iam.gserviceaccount.com" --role "roles/editor"
Konfigurieren Sie das Host-Projekt („support-team-a")
Melden Sie sich beim Dienstkonto für das Hostprojekt an
gcloud auth login chutch@support-team-a.iam.gserviceaccount.com
Legen Sie die Konfiguration auf das Hostprojekt fest
gcloud config set project support-team-a
Überprüfen Sie, ob Anmeldeinformationen, Region und Zone für das Hostprojekt festgelegt sind
gcloud config list [compute] region = us-central1 zone = us-central1-f [core] account = chutch@support-team-a.iam.gserviceaccount.com project = support-team-a
SharedVPC im Hostprojekt aktiviert
(Dies erfordert „ compute.organizations.enableXpnHost ", das von der übergeordneten Organisation gewährt wurde.)
gcloud compute shared-vpc enable support-team-a
Fügen Sie das Dienstprojekt zum Hostprojekt SharedVPC hinzu
gcloud compute shared-vpc associated-projects add --host-project=support-team-a support-team-b
Überprüfen Sie, ob das Dienstprojekt vom Hostprojekt aus konfiguriert ist
gcloud compute shared-vpc associated-projects list support-team-a RESOURCE_ID RESOURCE_TYPE support-team-b PROJECT
Überprüfen Sie, ob das Hostprojekt vom Dienstprojekt aus konfiguriert ist
gcloud compute shared-vpc get-host-project support-team-b kind: compute#project name: support-team-a
Richten Sie im Hostprojekt ein benutzerdefiniertes Subnetz ein
Erstellen Sie ein Subnetz im Hostprojekt
gcloud compute networks create elastifile-support --subnet-mode custom
Definieren Sie die Subnetzregion und den Subnetzbereich im Hostprojekt
gcloud compute networks subnets create elastifile-central1 --network elastifile-support --region us-central1 --range 10.200.0.0/20
Speichern Sie die Kontoanmeldeinformationen für das benutzerdefinierte Subnetz in einer Datei
gcloud beta compute networks subnets get-iam-policy elastifile-central1 --project support-team-a --format json > subnet-policy.json
Bearbeiten Sie subnet-policy.json und fügen Sie ein Dienstkonto aus dem Dienstprojekt hinzu
{ "bindings": [ { "members": [ "serviceAccount:chutch@support-team-b.iam.gserviceaccount.com" ], "role": "roles/compute.networkUser" } ], "etag": "ACAB" }
{ "bindings": [ { "members": [ "serviceAccount:chutch@support-team-b.iam.gserviceaccount.com" ], "role": "roles/compute.networkUser" } ], "etag": "ACAB" }
Anmeldeinformationen für benutzerdefiniertes Subnetz vom Hostprojekt aktualisieren
gcloud beta compute networks subnets set-iam-policy elastifile-central1 subnet-policy.json --project support-team-a
Fügen Sie dem benutzerdefinierten Subnetz im Hostprojekt Firewallregeln hinzu
gcloud compute firewall-rules create elastifile-central1-allow-icmp --network elastifile-support --priority 65534 --allow icmp --source-ranges 0.0.0.0/0 --no-disabled gcloud compute firewall-rules create elastifile-central1-allow-ssh --network elastifile-support --priority 65534 --allow tcp:22 --source-ranges 0.0.0.0/0 --no-disabled gcloud compute firewall-rules create elastifile-central1-allow-https --network elastifile-support --priority 1000 --target-tags https-server --allow tcp:443 --source-ranges 0.0.0.0/0 --no-disabled
gcloud compute firewall-rules create elastifile-central1-allow-internal --network elastifile-support --priority 65534 --allow tcp:0-65535,udp:0-65535,icmp --source-ranges 10.200.0.0/20 --no-disabled gcloud compute firewall-rules create elastifile-central1-storage-management --network elastifile-support --priority 1000 --direction ingress --target-tags elastifile-management-node --source-tags elastifile-storage-node,elastifile-replication-node,elastifile-clients --source-ranges 10.200.0.0/20 --allow icmp,tcp:22,tcp:53,tcp:80,tcp:8080,tcp:443,tcp:10014-10017,udp:53,udp:123,udp:6667 --no-disabled gcloud compute firewall-rules create elastifile-central1-storage-service --network elastifile-support --priority 1000 --direction ingress --target-tags elastifile-storage-node,elastifile-replication-node --source-ranges 10.200.0.0/20 --source-tags elastifile-management-node,elastifile-clients --allow icmp,tcp:22,tcp:111,tcp:2049,tcp:644,tcp:4040,tcp:4045,tcp:10015-10017,tcp:8000-9224,tcp:32768-60999,udp:111,udp:2049,udp:644,udp:4040,udp:4045,udp:6667,udp:8000,udp:9224,udp:32768,udp:60999 --no-disabled
Bereitstellung im Dienstprojekt unter Verwendung des benutzerdefinierten Subnetzes des Hostprojekts
Subnetze im Hostprojekt auflisten
gcloud compute networks subnets list-usable --project support-team-a PROJECT REGION NETWORK SUBNET RANGE SECONDARY_RANGES support-team-a us-central1 elastifile-support elastifile-central1 10.200.0.0/20
Rufen Sie den URI für das Zielsubnetz im Hostprojekt ab
gcloud compute networks subnets list --project support-team-a --uri https://www.googleapis.com/compute/v1/projects/support-team-a/regions/us-central1/subnetworks/elastifile-central1
gcloud compute networks subnets list --project support-team-a --uri https://www.googleapis.com/compute/v1/projects/support-team-a/regions/us-central1/subnetworks/elastifile-central1
Aktualisieren Sie terraform.tfvars, um „NETWORK" und „SUBNETWORK" aus dem Hostprojekt zu verwenden
ZONE = "us-central1-f" PROJECT = "support-team-b" NETWORK = "elastifile-suport" SUBNETWORK = "/projects/support-team-a/regions/us-central1/subnetworks/elastifile-central1" IMAGE = "elastifile-storage-2-7-5-12-ems" CREDENTIALS = "support-team-b-0715a3734e41.json" SERVICE_EMAIL = "chutch@support-team-b.iam.gserviceaccount.com"
ZONE = "us-central1-f" PROJECT = "support-team-b" NETWORK = "elastifile-suport" SUBNETWORK = "/projects/support-team-a/regions/us-central1/subnetworks/elastifile-central1" IMAGE = "elastifile-storage-2-7-5-12-ems" CREDENTIALS = "support-team-b-0715a3734e41.json" SERVICE_EMAIL = "chutch@support-team-b.iam.gserviceaccount.com"
Oder starten Sie EMS direkt über gcloud und schließen Sie die Bereitstellung über die Benutzeroberfläche ab
gcloud beta compute --project=support-team-b instances create elastifile-storage-sp --zone=us-central1-f --machine-type=n1-standard-4 --subnet=/projects/support-team-a/regions/us-central1/subnetworks/elastifile-central1 --network-tier=PREMIUM --maintenance-policy=MIGRATE --service-account=chutch@support-team-b.iam.gserviceaccount.com --scopes=https://www.googleapis.com/auth/cloud-platform --image=https://www.googleapis.com/compute/v1/projects/elastifle-public-196717/global/images/elastifile-storage-2-7-5-12-ems --boot-disk-size=100GB --boot-disk-type=pd-standard --boot-disk-device-name=elastifile-storage-sp --tags=elastifile-management-node
No comments:
Post a Comment