Private Service Connect एंडपॉइंट के साथ GCE पर Gemini CLI

1. खास जानकारी

Gemini CLI का इस्तेमाल, लोकल और वर्चुअल, दोनों तरह के एनवायरमेंट में किया जा सकता है. Gemini CLI, ओपन-सोर्स एआई एजेंट है. यह Gemini की सुविधाओं को सीधे आपके टर्मिनल में उपलब्ध कराता है. नेटवर्किंग के हिसाब से, Gemini CLI का इस्तेमाल करने पर यह सार्वजनिक तौर पर उपलब्ध एपीआई के आईपी पते के ज़रिए, Gemini API को कॉल करेगा.

अब अगर आपको Google Compute Engine मशीन पर Gemini CLI का इस्तेमाल करना है, लेकिन आपको एपीआई से निजी तौर पर कनेक्ट करना है, तो क्या होगा? इस कोडलैब में, आपको Google API के लिए Private Service Connect एंडपॉइंट को कॉन्फ़िगर करने का तरीका बताया जाएगा. इससे, ट्रैफ़िक को आपके तय किए गए इंटरनल आईपी पते पर भेजा जा सकेगा.

कॉन्फ़िगरेशन, Terraform, gcloud, और कंसोल का कॉम्बिनेशन होगा.

इस लैब में, आपको यह काम करने का तरीका बताया जाएगा:

  • VM इंस्टेंस और Cloud NAT सेट अप करना
  • Gemini CLI इंस्टॉल करना और पुष्टि करना
  • Googleapis से कनेक्ट करने के लिए, Private Service Connect एंडपॉइंट कॉन्फ़िगर करना
  • *.googleais से कनेक्टिविटी के पाथ की पुष्टि करना
  • डीएनएस की मैन्युअल एंट्री कॉन्फ़िगर करना

इस लैब में, आपको यह पैटर्न बनाना है.

इमेज 1.

809ec92718405b07.png

2. Google Cloud की सेवाओं का सेटअप

अपने हिसाब से एनवायरमेंट सेट अप करना

  1. Google Cloud Console में साइन इन करें. इसके बाद, नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करते. इसे कभी भी अपडेट किया जा सकता है.
  • प्रोजेक्ट आईडी, सभी Google Cloud प्रोजेक्ट के लिए यूनीक होता है. साथ ही, इसे बदला नहीं जा सकता. Cloud Console, एक यूनीक स्ट्रिंग अपने-आप जनरेट करता है. आम तौर पर, आपको इससे कोई फ़र्क़ नहीं पड़ता कि यह क्या है. ज़्यादातर कोडलैब में, आपको अपने प्रोजेक्ट आईडी (आम तौर पर PROJECT_ID के तौर पर पहचाना जाता है) का रेफ़रंस देना होगा. अगर आपको जनरेट किया गया आईडी पसंद नहीं है, तो कोई दूसरा रैंडम आईडी जनरेट किया जा सकता है. इसके अलावा, आपके पास अपना नाम आज़माने का विकल्प भी है. इससे आपको पता चलेगा कि वह नाम उपलब्ध है या नहीं. इस चरण के बाद, इसे बदला नहीं जा सकता. यह प्रोजेक्ट की अवधि तक बना रहता है.
  • आपकी जानकारी के लिए बता दें कि एक तीसरी वैल्यू भी होती है, जिसे प्रोजेक्ट नंबर कहते हैं. इसका इस्तेमाल कुछ एपीआई करते हैं. इन तीनों वैल्यू के बारे में ज़्यादा जानने के लिए, दस्तावेज़ पढ़ें.
  1. इसके बाद, आपको Cloud Console में बिलिंग चालू करनी होगी, ताकि Cloud संसाधनों/एपीआई का इस्तेमाल किया जा सके. इस कोडलैब को पूरा करने में ज़्यादा समय नहीं लगेगा. इस ट्यूटोरियल के बाद बिलिंग से बचने के लिए, बनाए गए संसाधनों को बंद किया जा सकता है. इसके लिए, बनाए गए संसाधनों को मिटाएं या प्रोजेक्ट को मिटाएं. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त में आज़माने वाले प्रोग्राम के लिए ज़रूरी शर्तें पूरी करते हैं.

Cloud Shell शुरू करें

Google Cloud को अपने लैपटॉप से रिमोटली ऐक्सेस किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जाएगा. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.

Google Cloud Console में, सबसे ऊपर दाएं कोने में मौजूद टूलबार पर, Cloud Shell आइकॉन पर क्लिक करें:

55efc1aaa7a4d3ad.png

इसे चालू करने और एनवायरमेंट से कनेक्ट करने में सिर्फ़ कुछ सेकंड लगेंगे. यह प्रोसेस पूरी होने के बाद, आपको कुछ ऐसा दिखेगा:

7ffe5cbb04455448.png

इस वर्चुअल मशीन में, डेवलपमेंट के लिए ज़रूरी सभी टूल पहले से मौजूद हैं. यह 5 जीबी की होम डायरेक्ट्री उपलब्ध कराता है. साथ ही, Google Cloud पर काम करता है. इससे नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस बेहतर होती है. इस कोडलैब में मौजूद सभी टास्क, ब्राउज़र में किए जा सकते हैं. आपको कुछ भी इंस्टॉल करने की ज़रूरत नहीं है.

3. टास्क 1. Terraform की मदद से एनवायरमेंट सेट अप करना

हम फ़ायरवॉल के नियमों और सबनेट के साथ एक कस्टम वीपीसी बनाएंगे. क्लाउड कंसोल खोलें और वह प्रोजेक्ट चुनें जिसका आपको इस्तेमाल करना है.

  1. अपनी कंसोल के सबसे ऊपर दाईं ओर मौजूद Cloud Shell खोलें. पक्का करें कि आपको Cloud Shell में सही प्रोजेक्ट आईडी दिख रहा हो. साथ ही, ऐक्सेस की अनुमति देने के लिए दिखने वाले किसी भी प्रॉम्प्ट की पुष्टि करें. 4261e776f64ea978.png
  2. terraform-build नाम का फ़ोल्डर बनाएं और उसमें जाएं
mkdir terraform-build  && cd terraform-build
  1. main.tf और variable.tf फ़ाइल बनाएं.
touch main.tf variable.tf 
  1. Cloud Shell एडिटर व्यू पर स्विच करें. editor को चुनें. साथ ही, यह पक्का करें कि आपने सभी ज़रूरी प्रॉम्प्ट को अनुमति दी हो, ताकि इंटरफ़ेस लोड हो सके.
  2. लोड होने के बाद, फ़ाइल > फ़ोल्डर खोलें पर जाएं. इसके बाद, /home/your-user-name/terraform-build पर जाएं और ठीक है को चुनें, ताकि फ़ोल्डर को एडिटर में खोला जा सके. 78f5eb9f2f82f1b0.png
  3. variable.tf फ़ाइल चुनें और इसमें यह कोड जोड़ें. your-project-id-here टेक्स्ट की जगह, कोटेशन मार्क में अपना असल प्रोजेक्ट आईडी डालें
variable "project_id" {
  type = string
  default = "your-project-id-here"
}

variable "network_id" {
  type = string
  default = "gemini-vpc-net"
}
  1. इसके बाद, main.tf फ़ाइल खोलें. हम यहां कुछ टेराफ़ॉर्म कोड जोड़ने जा रहे हैं, ताकि नीचे बताई गई कार्रवाइयां की जा सकें.

एपीआई चालू करना

resource "google_project_service" "default"

python-net नाम का वीपीसी बनाएं

resource "google_compute_network" "default"

सबनेट जोड़ना

resource "google_compute_subnetwork" "default"

फ़ायरवॉल के दो नियम जोड़ना

resource "google_compute_firewall" "allow_icmp"resource "google_compute_firewall" "allow_ssh"

  1. यहां दिए गए कोड को कॉपी करके, main .tf फ़ाइल में चिपकाएं.
resource "google_project_service" "default" {
  for_each = toset([
    "dns.googleapis.com",
    "aiplatform.googleapis.com",
    "servicedirectory.googleapis.com"
  ])

  service            = each.value
  disable_on_destroy = false
}

resource "google_compute_network" "default" {
  project                 = var.project_id
  name                    = var.network_id
  auto_create_subnetworks = false
  mtu                     = 1460
  routing_mode            = "GLOBAL"
}

resource "google_compute_subnetwork" "default" {
  name          = "vm1-subnet"
  ip_cidr_range = "192.168.100.0/24"
  region        = "us-east1"
  stack_type    = "IPV4_ONLY"
  network       = google_compute_network.default.id
}

resource "google_compute_firewall" "allow_icmp" {
  name    = "allow-icmp-${google_compute_network.default.name}"
  network = google_compute_network.default.id
  project = var.project_id

  allow {
    protocol = "icmp"
  }

  source_ranges = ["0.0.0.0/0"]
  target_tags   = ["allow-icmp"]
}

resource "google_compute_firewall" "allow_ssh" {
  name    = "allow-ssh-${google_compute_network.default.name}"
  network = google_compute_network.default.id
  project = var.project_id

  allow {
    protocol = "tcp"
    ports    = ["22"]
  }

  source_ranges = ["0.0.0.0/0"]
  target_tags   = ["allow-ssh"]
}
  1. Cloud Shell टर्मिनल पर वापस जाएं. पक्का करें कि आप terraform-build डायरेक्ट्री cd terraform-build में हों. इसके बाद, ये कमांड चलाएं

terraform init

इससे वर्किंग डायरेक्ट्री शुरू होती है. इस चरण में, दिए गए कॉन्फ़िगरेशन के लिए ज़रूरी प्रोवाइडर डाउनलोड किए जाते हैं.

terraform plan

यह एक एक्ज़ीक्यूशन प्लान जनरेट करता है. इससे पता चलता है कि Terraform, आपके इन्फ़्रास्ट्रक्चर को डिप्लॉय करने के लिए कौनसी कार्रवाइयां करेगा.

  1. अब संसाधन बनाने के लिए, terraform apply कमांड चलाएं और चलाने के लिए yes टाइप करें.

4. टास्क 2. Terraform की मदद से NAT गेटवे और वीएम बनाना

हमें इंटरनेट के लिए आउटबाउंड बाहरी ऐक्सेस देना होगा. इसलिए, Cloud NAT गेटवे बनाते हैं और उसे अटैच करते हैं.

  1. Cloud Shell खोलें. इसके बाद, terraform-build फ़ोल्डर पर जाएं और यहां दी गई तीन फ़ाइलें बनाएं. हम इनमें बाद में बदलाव करेंगे.
touch nat-vm.tf psc.tf dns.tf
  1. Cloud Shell एडिटर व्यू पर जाएं. इसके बाद, nat-vm.tf फ़ाइल चुनें और यह Terraform कोड जोड़ें. इससे एक NAT गेटवे और दो वीएम बन जाएंगे.

Terraform nat-vm.tf

resource "google_compute_router" "default" {
  name    = "outbound-nat"
  region  = "us-east1"
  network = google_compute_network.default.id

 bgp {
  asn = 64514
  }
}

resource "google_compute_router_nat" "default" {
  name                               = "outbound-gw"
  router                             = google_compute_router.default.name
  region                             = google_compute_router.default.region
  nat_ip_allocate_option             = "AUTO_ONLY"
  source_subnetwork_ip_ranges_to_nat = "ALL_SUBNETWORKS_ALL_IP_RANGES"

  log_config {
    enable = true
    filter = "ERRORS_ONLY"
  }
}

resource "google_compute_instance" "vm1" {
  name         = "cli-vm"
  zone         = "us-east1-b"
  machine_type = "n2-standard-2"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-12"
    }
  }

  network_interface {
    subnetwork = google_compute_subnetwork.default.id  
    stack_type = "IPV4_ONLY"
  }

  tags = ["allow-ssh", "allow-icmp"]

  metadata_startup_script = <<-EOF
    sudo apt-get update    
  EOF
}

resource "google_compute_instance" "vm2" {
  name         = "monitor-vm"
  zone         = "us-east1-b"
  machine_type = "n2-standard-2"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-12"
    }
  }

  network_interface {
    subnetwork = google_compute_subnetwork.default.id   
    stack_type = "IPV4_ONLY"
  }

  tags = ["allow-ssh", "allow-icmp"]

  metadata_startup_script = <<-EOF
    sudo apt-get update
    sudo apt-get install python3 python3-dev python3-venv -y
    sudo apt-get install tcpdump dnsutils -y
  EOF
}
  1. Cloud Shell टर्मिनल पर जाएं. पक्का करें कि आप terraform-build फ़ोल्डर में हों. इसके बाद, terraform plan चलाएं. इससे आपको पता चलेगा कि चार आइटम जोड़े जाएंगे. इसके बाद, terraform apply चलाएं और NAT गेटवे और दो वीएम बनाने के लिए, yes टाइप करें.

5. टास्क 3. सीएलआई वीएम कॉन्फ़िगर करना और उनकी जांच करना

  1. वीएम इंस्टेंस पर जाएं. cli-vm से शुरू होने वाली वीएम को चुनें. SSH को चुनें.
  2. एसएसएच करने के बाद, आपके पास वीएम का ऐक्सेस होना चाहिए. आइए, Gemini CLI चलाने के लिए एक फ़ोल्डर बनाएं
mkdir geminicli && cd geminicli
  1. Gemini CLI को इंस्टॉल करने के लिए, हमें Node js की ज़रूरत होती है. नीचे दिए गए तरीके का इस्तेमाल करके, Node.js इंस्टॉल करें
curl -fsSL https://deb.nodesource.com/setup_24.x -o nodesource_setup.sh

स्क्रिप्ट चलाएं

sudo -E bash nodesource_setup.sh

Node js इंस्टॉल करना

sudo apt-get install -y nodejs
  1. चलिए, कुछ ऐसे वैरिएबल सेट करते हैं जिनसे Vertex AI के पुष्टि करने के विकल्प का इस्तेमाल करके, इसकी पुष्टि करने में मदद मिलेगी. इससे बाद में कुछ टेस्टिंग की जा सकेगी.ध्यान दें: YOUR_PROJECT_ID को अपने असली project ID से बदलें
cat <<EOF >> ~/.bashrc 

export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
export GOOGLE_CLOUD_LOCATION="us-east1" 
export GOOGLE_GENAI_USE_VERTEXAI=true
EOF

bash को फिर से लोड करें

source ~/.bashrc
  1. अब पुष्टि करते हैं. वीएम में यहां दिया गया निर्देश चलाएं. इसके बाद, मांगे जाने पर y दबाएं.
gcloud auth application-default login
  1. इसके बाद, https:// से शुरू होने वाले यूआरएल को कॉपी करें. अपने लैब ब्राउज़र विंडो में एक नया टैब खोलें और यूआरएल चिपकाएं. प्रॉम्प्ट स्वीकार करें.
  2. जब आपको यह दिखे, तो 'कॉपी करें' को चुनें. इसके बाद, cli-vm सेशन पर वापस जाएं. Enter authorization code: के लिए, कॉपी किया गया कोड चिपकाएं और पुष्टि करने के लिए Enter दबाएं.

c29615cdf9324209.png

  1. अब Gemini CLI इंस्टॉल करते हैं. इसके लिए, यह निर्देश चलाएं
sudo npm install -g @google/gemini-cli

पूरा होने के बाद, इंटरफ़ेस लॉन्च करने के लिए gemini टाइप करें. इसके बाद, अपनी पसंद की थीम चुनें. साथ ही, Select Auth method में जाकर Vertex AI चुनें

7fb8ea7fbf48cad9.png

a9f9a93ae8694e2f.png

  1. पुष्टि हो जाने के बाद, Gemini Cli का इस्तेमाल किया जा सकता है

b13a934b6220c9af.png

मॉनिटर वीएम की मदद से, Gemini के ट्रैफ़िक रूट पर नज़र रखना

  1. वीएम इंस्टेंस पर जाएं. monitor-vm से शुरू होने वाली वीएम को चुनें. एसएसएच चुनें.
  2. monitor-vm में एसएसएच करने के बाद, आपके पास ऐक्सेस होना चाहिए
  3. Gemini API से कनेक्शन पाथ की जांच करने के लिए, dig कमांड का इस्तेमाल करें. हम us-east1-aiplatform.googleapis.com का इस्तेमाल करेंगे
dig us-east1-aiplatform.googleapis.com

आपको कुछ ऐसा दिखेगा (पता अलग होगा). ध्यान दें कि एपीआई एक सार्वजनिक एपीआई है, इसलिए पाथ सार्वजनिक आईपी पतों के ज़रिए होता है.

कॉपी न करें

; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> us-east1-aiplatform.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58905
;; flags: qr rd ra; QUERY: 1, ANSWER: 14, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;us-east1-aiplatform.googleapis.com. IN A

;; ANSWER SECTION:
us-east1-aiplatform.googleapis.com. 300 IN A    173.194.217.95
us-east1-aiplatform.googleapis.com. 300 IN A    172.217.204.95
us-east1-aiplatform.googleapis.com. 300 IN A    172.217.203.95
us-east1-aiplatform.googleapis.com. 300 IN A    142.250.98.95
us-east1-aiplatform.googleapis.com. 300 IN A    142.251.107.95
us-east1-aiplatform.googleapis.com. 300 IN A    74.125.196.95
us-east1-aiplatform.googleapis.com. 300 IN A    173.194.216.95
us-east1-aiplatform.googleapis.com. 300 IN A    108.177.11.95
us-east1-aiplatform.googleapis.com. 300 IN A    192.178.219.95
us-east1-aiplatform.googleapis.com. 300 IN A    173.194.210.95
us-east1-aiplatform.googleapis.com. 300 IN A    173.194.212.95
us-east1-aiplatform.googleapis.com. 300 IN A    173.194.215.95
us-east1-aiplatform.googleapis.com. 300 IN A    108.177.12.95
us-east1-aiplatform.googleapis.com. 300 IN A    74.125.26.95
  1. अब हम ping टेस्ट करके देखते हैं कि Gemini API से कनेक्ट किया जा सकता है या नहीं. इस कमांड से, us-east1-aiplatform.googleapis.com को चार पिंग भेजे जाएंगे. इससे हमें एपीआई के सार्वजनिक पते से जवाब मिलेगा.
ping -c 4 us-east1-aiplatform.googleapis.com
  1. हम इस वीएम की जांच बाद में करेंगे. एसएसएच सेशन बंद करें और आगे बढ़ें.

6. टास्क 4. Terraform की मदद से, googleapis के लिए पीएससी एंडपॉइंट बनाना

Vertex API एंडपॉइंट से प्राइवेट कनेक्टिविटी चालू करने के लिए, हम Google API के लिए Private Service Connect एंडपॉइंट बनाएंगे. इससे हमें एक निजी आईपी पते का इस्तेमाल करने की अनुमति मिलेगी. हम इस पते को, Google के उन एपीआई पर ट्रैफ़िक भेजने के लिए असाइन करते हैं जिनकी हमें ज़रूरत होती है. इस मामले में, Vertex.

  1. अगर Cloud Shell पहले से खुला नहीं है, तो उसे एडिटर व्यू में खोलें. हम ये चीज़ें बनाने जा रहे हैं:
  • पीएसएसी एंडपॉइंट 10.10.100.250 के लिए एक आईपी पता बनाएं (resource "google_compute_global_address" "default")
  • Google API के लिए पीएससी एंडपॉइंट बनाएं (resource "google_compute_global_forwarding_rule" "default")

terraform-build फ़ोल्डर में मौजूद psc.tf फ़ाइल खोलें. फ़ाइल में यह कोड जोड़ें.

Terraform psc.tf

resource "google_compute_global_address" "default" {
  name         = "gemini-ip"
  purpose      = "PRIVATE_SERVICE_CONNECT"
  network      = google_compute_network.default.id
  address_type = "INTERNAL"
  address      = "10.10.100.250"
}

resource "google_compute_global_forwarding_rule" "default" {  
  name                  = "pscgemini"
  target                = "all-apis"
  network               = google_compute_network.default.id
  ip_address            = google_compute_global_address.default.id
  load_balancing_scheme = ""
  }
  1. Cloud Shell टर्मिनल पर स्विच करें और पक्का करें कि आप terraform-build फ़ोल्डर में हों. इसके बाद, terraform init चलाएं. terraform plan इससे आपको पता चलेगा कि दो आइटम जोड़े जाएंगे.
    इसके बाद, terraform apply चलाएं और आईपी और पीएससी Google APIs एंडपॉइंट बनाने के लिए, yes टाइप करें.
  2. एंडपॉइंट मौजूद है या नहीं, इसकी पुष्टि करना
gcloud compute addresses list --filter="name=( 'gemini-ip' ...)"
gcloud compute forwarding-rules describe pscgemini --global

7. टास्क 5. Terraform की मदद से, googleapis के लिए मैन्युअल डीएनएस एंट्री बनाना

प्राइवेट डीएनएस का इस्तेमाल करके, पीएससी एंडपॉइंट पर ले जाने के लिए, मैन्युअल डीएनएस एंट्री बनाई जा सकती है. इससे उन सभी नेटवर्क पर असर पड़ेगा जिन्हें आपने इससे असाइन किया है.

  1. नेटवर्क सेवाओं पर जाएं और Cloud DNS चुनें.
  2. आपको ज़ोन में, Google API के लिए Private Service Connect का अपने-आप बनाया गया ज़ोन दिखेगा. इसका ज़ोन टाइप, सेवा डायरेक्ट्री होगा. इसका इस्तेमाल, पीएससी एंडपॉइंट से कनेक्ट करने के लिए किया जा सकता है. इसका फ़ॉर्मैट **SERVICE-ENDPOINT.p.googleapis.com होता है. उदाहरण: aiplatform-pscgemini.p.googleapis.com
  3. इस मामले में, हमें मैन्युअल तरीके से एक निजी डीएनएस एंट्री बनानी है. कॉन्फ़िगरेशन इस तरह होगा
  • "googleapis.com" के लिए, "googleapis-private" नाम का एक निजी डीएनएस ज़ोन बनाएं और इसे "python-net" नेटवर्क तक सीमित करें.
  • "googleapis.com" को आईपी पते "10.10.100.250" पर मैप करने के लिए, एक ए रिकॉर्ड जोड़ें.
  • "googleapis.com" के सभी सबडोमेन (जैसे, www.googleapis.com) को "googleapis.com" पर रीडायरेक्ट करने के लिए, CNAME रिकॉर्ड जोड़ें.
  1. अगर Cloud Shell पहले से खुला नहीं है, तो उसे एडिटर व्यू में खोलें. terraform-build फ़ोल्डर में मौजूद dns.tf फ़ाइल खोलें. फ़ाइल में यह कोड जोड़ें.

Terraform dns.tf

resource "google_dns_managed_zone" "private_zone" {
  name        = "googleapis-private"
  dns_name    = "googleapis.com."  
  visibility  = "private"
  project     = var.project_id     

  private_visibility_config {
    networks {
      network_url = google_compute_network.default.id  
    }
  }
}

resource "google_dns_record_set" "a_record" {
  name    = "googleapis.com."  
  type    = "A"
  ttl     = 300
  managed_zone = google_dns_managed_zone.private_zone.name
  project = var.project_id    

  rrdatas = ["10.10.100.250"]
}

resource "google_dns_record_set" "cname_record" {
 name    = "*.googleapis.com."
 type    = "CNAME"
 ttl     = 300
 managed_zone = google_dns_managed_zone.private_zone.name
 project = var.project_id    

 rrdatas = ["googleapis.com."]  
}
  1. Cloud Shell टर्मिनल पर स्विच करें और पक्का करें कि आप terraform-build फ़ोल्डर में हों. इसके बाद, terraform plan चलाएं. इससे आपको पता चलेगा कि कौनसी चीज़ें जोड़ी जाएंगी.
    इसके बाद, terraform apply चलाएं और निजी डीएनएस एंट्री बनाने के लिए yes टाइप करें.
  2. आपको A रिकॉर्ड और CNAME वाला सेटअप ऐसा दिखना चाहिए

a33a4d3d629c54dd.png

  1. इसके बाद, हम monitor-vm पर इन बदलावों के साथ कनेक्टिविटी की पुष्टि करते हैं

8. टास्क 7. आईपी पते के ज़रिए एंडपॉइंट कनेक्टिविटी की पुष्टि करना

Gemini से कनेक्ट करने के लिए, निजी एंडपॉइंट का इस्तेमाल करें.

  1. VM इंस्टेंस monitor-vm पर जाएं. एसएसएच चुनें और वीएम में एसएसएच करें
  2. ping कमांड का इस्तेमाल करके, us-east1-aiplatform.googleapis.com से कनेक्टिविटी का पाथ देखें. इससे, निजी डीएनएस में मौजूद आईपी पते को पिंग किया जाएगा. साथ ही, googleapis के लिए A रिकॉर्ड को भी पिंग किया जाएगा. यह आईपी, पीएससी एंडपॉइंट है. इसलिए, आपके पिंग पूरे नहीं हो पाएंगे.
ping -c 2 us-east1-aiplatform.googleapis.com
  1. aiplatform-pscvertexgemini.p.googleapis.com के साथ पीएससी Google API के लिए, अपने-आप बनाई गई डीएनएस एंट्री का इस्तेमाल करके, ping के साथ कनेक्टिविटी पाथ की जांच करें. यह पीएससी एंडपॉइंट के आईपी पते की ओर इशारा करता है. इसलिए, आपके पिंग पूरे नहीं हो पाएंगे.
ping -c 2 aiplatform-pscgemini.p.googleapis.com
  1. dig कमांड का इस्तेमाल करके, us-east1-aiplatform.googleapis.com से कनेक्टिविटी का पाथ देखें. यह PSC एंडपॉइंट (10.10.100.250) का आईपी पता होना चाहिए.
dig us-east1-aiplatform.googleapis.com

bcb26844349ee775.png

  1. यह प्रोसेस पूरी होने के बाद, monitor-vm SSH सेशन बंद किया जा सकता है.
  2. अब हम cli-vm पर टीसीपी डंप चला सकते हैं. हमें एक ही वीएम के लिए दो एसएसएच सेशन खोलने होंगे. एक सेशन में tcpdump कमांड का इस्तेमाल किया जाएगा. दूसरे सेशन में, हम Gemini CLI का इस्तेमाल करेंगे.
  3. cli-vm पर पहले सेशन में एसएसएच करें
  4. tcpdump में कनेक्टिविटी देखने के लिए, यह कमांड टाइप करें
sudo tcpdump -i any port 53 -n or host us-east1-aiplatform.googleapis.com
  1. अब cli-vm पर अगले सेशन में एसएसएच करें
  2. gemini टाइप करके, Gemini CLI को चालू करें
  3. Gemini API को कॉल करने के लिए, यह सवाल पूछें कि आसमान का रंग क्या है

d6189c2adef69eaf.png

  1. इसे चलाने और इसका नतीजा देखने के लिए, enter दबाएं.
  2. cli-vm पर पहले सेशन पर वापस जाएं. आपको tcpdump का नतीजा दिखेगा. आपको दिखेगा कि वीएम का आईपी पता, Gemini API से कनेक्ट करने के लिए पीएससी एंडपॉइंट के आईपी पते का इस्तेमाल कर रहा है

ce99170d9f9c7858.png

वीएम इंस्टेंस के सभी एसएसएच सेशन बंद करें

9. क्लीन अप

  1. Cloud Shell पर जाएं. पक्का करें कि आप terraform-build डायरेक्ट्री cd terraform-build में हों. इसके बाद, यह कमांड terraform destroy चलाएं और yes टाइप करें. इससे, आपके प्रोजेक्ट में Terraform की मदद से बनाए गए सभी संसाधन हटा दिए जाएंगे.

10. बधाई हो

बधाई हो! आपने Gemini CLI को सार्वजनिक एपीआई पते और Google API के लिए Private Service Connect Endpoint का इस्तेमाल करके, निजी तौर पर कनेक्ट कर लिया है. इस सुविधा की मदद से, प्राइवेट एपीआई कनेक्टिविटी को अपने ऑन-प्रेम/अन्य क्लाउड एनवायरमेंट में बढ़ाया जा सकता है. ये एनवायरमेंट, इंटरकनेक्ट, क्रॉस-क्लाउड इंटरकनेक्ट, और वीपीसी के ज़रिए कनेक्ट किए जाते हैं.

अगले चरण / ज़्यादा जानें

Vertex AI नेटवर्किंग के बारे में ज़्यादा जानें. साथ ही, Gemini CLI repo देखें

अगली लैब पर जाएं

Google Cloud के साथ अपनी क्वेस्ट जारी रखें. साथ ही, Google Cloud के इन अन्य लैब को आज़माएं: