1. खास जानकारी
PowerShell, कमांड-लाइन शेल और इससे जुड़ी स्क्रिप्टिंग भाषा है. इसे .NET फ़्रेमवर्क पर बनाया गया है. यह Windows में इस्तेमाल किया जाने वाला, टास्क ऑटोमेशन और कॉन्फ़िगरेशन मैनेजमेंट का डिफ़ॉल्ट टूल है. PowerShell cmdlet, PowerShell में इस्तेमाल की जाने वाली एक हल्की कमांड होती है.
Cloud Tools for PowerShell, Google Cloud संसाधनों को ऐक्सेस करने और उनमें बदलाव करने के लिए cmdlets का एक कलेक्शन है. जैसे, Google Compute Engine, Google Cloud Storage, Google Cloud SQL, और Google Cloud DNS. इसमें और भी cmdlets शामिल किए जाएंगे!
PowerShell से Google Cloud संसाधनों के साथ इंटरैक्ट करने का तरीका जानने के लिए, इस लैब को फ़ॉलो करें.
आपको क्या सीखने को मिलेगा
- Cloud Tools for PowerShell को इंस्टॉल करने का तरीका.
- Google Cloud SDK की मदद से पुष्टि करने का तरीका.
- PowerShell से Google Compute Engine को बनाने और मैनेज करने का तरीका.
- PowerShell से Google Cloud Storage में डेटा का बैकअप लेने का तरीका.
आपको किन चीज़ों की ज़रूरत होगी
इस ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?
Google Cloud Platform इस्तेमाल करने के अपने अनुभव को आप क्या रेटिंग देंगे?
2. सेटअप और ज़रूरी शर्तें
इस कोडलैब के लिए, PowerShell के साथ इंटरैक्ट करने के लिए आपको Google Cloud प्रोजेक्ट की ज़रूरत होगी. अगर आपके पास कोई मौजूदा प्रोजेक्ट है, तो उसका इस्तेमाल किया जा सकता है. इसके अलावा, यहां दिया गया तरीका अपनाकर नया प्रोजेक्ट बनाया जा सकता है.
अपने हिसाब से एनवायरमेंट सेट अप करना
अगर आपके पास पहले से कोई Google खाता (Gmail या GSuite) नहीं है, तो आपको एक खाता बनाना होगा. Google Cloud Console ( console.cloud.google.com) में साइन इन करें और एक नया प्रोजेक्ट बनाएं:


प्रोजेक्ट आईडी को याद रखें. यह Google Cloud Platform के सभी प्रोजेक्ट के लिए एक यूनीक नाम होता है. इस कोड लैब में इसे बाद में PROJECT_ID के तौर पर दिखाया जाएगा.
इसके बाद, आपको Google Cloud Console में बिलिंग चालू करनी होगी. ऐसा करने पर ही, Google Cloud Datastore और Cloud Storage जैसे Google Cloud Platform के संसाधनों का इस्तेमाल किया जा सकेगा.
Google Cloud Platform के नए उपयोगकर्ताओं को, मुफ़्त में आज़माने के लिए 300 डॉलर का क्रेडिट मिलता है. इस कोडलैब को पूरा करने में आपको कुछ डॉलर से ज़्यादा खर्च नहीं करने पड़ेंगे. हालांकि, अगर आपको ज़्यादा संसाधनों का इस्तेमाल करना है या उन्हें चालू रखना है, तो यह खर्च बढ़ सकता है. इस दस्तावेज़ के आखिर में "सफाई" सेक्शन देखें.
3. इंस्टॉल करना
अपने हिसाब से एनवायरमेंट इंस्टॉल करने की सुविधा
PowerShell cmdlets, Windows के लिए Cloud SDK का हिस्सा हैं. अगर आपने अब तक ऐसा नहीं किया है, तो Windows के लिए Google Cloud SDK टूल डाउनलोड और इंस्टॉल करें. इसके बारे में Windows के लिए क्विकस्टार्ट गाइड में बताया गया है. पक्का करें कि Cloud SDK इंस्टॉल करते समय, आपने PowerShell विकल्प चुना हो.

4. पुष्टि करना
Cloud Tools for PowerShell, Cloud SDK में सेव किए गए क्रेडेंशियल और सेटिंग का इस्तेमाल करता है. इसलिए, cmdlets का इस्तेमाल शुरू करने के लिए, आपको पहले Cloud SDK का इस्तेमाल करके लॉगिन करना होगा.
अपने हिसाब से एनवायरमेंट ऑथेंटिकेशन करना
Google Cloud SDK शेल शुरू करें और यह कमांड चलाएं.
gcloud init
अपने Google उपयोगकर्ता खाते का इस्तेमाल करके लॉग इन करने का विकल्प स्वीकार करें.
To continue, you must log in. Would you like to log in (Y/n)? Y
जब आपसे कहा जाए, तब अपने ब्राउज़र में Google उपयोगकर्ता खाते में लॉग इन करें. इसके बाद, Google Cloud Platform के संसाधनों को ऐक्सेस करने की अनुमति देने के लिए, अनुमति दें पर क्लिक करें.
कमांड प्रॉम्प्ट पर, उन Cloud Platform प्रोजेक्ट की सूची में से कोई प्रोजेक्ट चुनें जिनके लिए आपके पास मालिक, एडिटर या दर्शक की अनुमतियां हैं.
Pick a cloud project to use:
[1] [my-project-1]
[2] [my-project-2]
...
Please enter your numeric choice:
5. PowerShell में Google Cloud cmdlets चलाना
पुष्टि हो जाने के बाद, PowerShell में Google Cloud cmdlets का इस्तेमाल किया जा सकता है. PowerShell कमांड-लाइन शेल ढूंढें और खोलें.

यह पक्का करने के लिए कि Google Cloud cmdlets सही तरीके से इंस्टॉल किए गए हैं, Get-GceInstance cmdlet चलाएं. इसमें आपके प्रोजेक्ट में मौजूद Compute Engine इंस्टेंस की सूची दिखनी चाहिए.

6. Google Compute Engine इंस्टेंस बनाना और मैनेज करना
इस सेक्शन में, Google Cloud Tools for PowerShell में जाकर Google Compute Engine बनाया और मैनेज किया जाता है.
इंस्टेंस कॉन्फ़िगरेशन बनाना
कोई इंस्टेंस बनाने से पहले, आपको इंस्टेंस कॉन्फ़िगरेशन बनाना होगा. इसके लिए, कम से कम नाम, मशीन टाइप, और बूट डिस्क इमेज या पहले से मौजूद बूट डिस्क की ज़रूरत होती है. डिस्क इमेज बनाने के लिए Get-GceImage और कॉन्फ़िगरेशन बनाने के लिए New-GceInstanceConfig का इस्तेमाल करें.
$disk = Get-GceImage "windows-cloud" -Family "windows-2012-r2"
$config = New-GceInstanceConfig "my-vm-1" `
-MachineType "n1-standard-4" `
-DiskImage $disk
अब आपके पास एक कॉन्फ़िगरेशन है, जिसका इस्तेमाल करके इंस्टेंस बनाया जा सकता है.
कोई इंस्टेंस बनाना
नया Compute Engine इंस्टेंस बनाने के लिए, Add-GceInstance cmdlet का इस्तेमाल करें. प्रोजेक्ट और ज़ोन के बारे में जानकारी दी जा सकती है. हालांकि, अगर यह जानकारी नहीं दी जाती है, तो पैरामीटर की वैल्यू डिफ़ॉल्ट रूप से, Cloud SDK के मौजूदा चालू कॉन्फ़िगरेशन में मौजूद वैल्यू पर सेट हो जाती हैं. अगर आपने प्रोजेक्ट के बारे में जानकारी दी है, तो पक्का करें कि आपने PROJECT_ID की जगह अपना प्रोजेक्ट आईडी डाला हो.
$config | Add-GceInstance -Project PROJECT_ID -Zone europe-west1-b
किसी इंस्टेंस को मैनेज करना
प्रोजेक्ट के वर्चुअल मशीन इंस्टेंस वापस पाने के लिए, Get-GceInstance cmdlet का इस्तेमाल किया जा सकता है. ऐसा हो सकता है कि इंस्टेंस का नाम, सभी प्रोजेक्ट या ज़ोन में यूनीक न हो. इसलिए, खोज के नतीजों को सीमित करने के लिए, प्रोजेक्ट या ज़ोन पैरामीटर तय किया जा सकता है. डिफ़ॉल्ट रूप से, cmdlet, Cloud SDK के चालू कॉन्फ़िगरेशन में मौजूद वैल्यू का इस्तेमाल करता है.
$instance = Get-GceInstance "my-vm-1"
Set-GceInstance cmdlet का इस्तेमाल करके इंस्टेंस बनाने के बाद, इंस्टेंस टैग, डिस्क, ऐक्सेस कॉन्फ़िगरेशन, और अन्य मेटाडेटा सेट किया जा सकता है. कुछ मेटाडेटा जोड़ें और फिर उसे इस तरह हटाएं.
Set-GceInstance $instance -AddMetadata @{"newKey" = "newValue"}
Set-GceInstance $instance -RemoveMetadata "newKey"
Set-GceInstance $instance -RemoveTag "beta" -AddTag "alpha"
अब एक ऐसा टैग जोड़ें जिसका इस्तेमाल बाद में इंस्टेंस को हटाने के लिए किया जाएगा.
Set-GceInstance $instance -AddTag "to-be-removed"
अलग-अलग cmdlets का इस्तेमाल करके, किसी इंस्टेंस को शुरू, बंद या फिर से शुरू किया जा सकता है. किसी इंस्टेंस का रेफ़रंस देने के लिए, नाम या Get-GceInstance cmdlet से मिले स्ट्रॉन्गली-टाइप्ड ऑब्जेक्ट का इस्तेमाल किया जा सकता है. इनमें से कुछ निर्देशों का इस्तेमाल करके देखें.
Stop-GceInstance $instance
Start-GceInstance $instance
Restart-GceInstance "my-vm-1"
आखिर में, जब आपको इंस्टेंस की ज़रूरत न हो, तो उसे Compute Engine से हटा दें. इसके लिए, Remove-GceInstance cmdlet का इस्तेमाल करें और वह टैग डालें जो आपने पहले डाला था.
Get-GceInstance -Project $project |
Where { $_.Tags.Items -contains "to-be-removed" } |
Remove-GceInstance -WhatIf
7. Google Cloud Storage में डेटा का बैकअप लेना
इस कोडलैब के इस हिस्से में, Cloud Tools for PowerShell का इस्तेमाल करके, अपनी लोकल मशीन से Google Cloud Storage में डेटा का बैक अप लिया जाता है.
बकेट बनाना
Cloud Storage में फ़ाइलें अपलोड करने से पहले, आपको एक बकेट बनानी होगी. नया बकेट बनाने के लिए, New-GcsBucket cmdlet का इस्तेमाल करें.
$bucket = "my-gcs-bucket"
New-GcsBucket $bucket
बकेट में फ़ाइलें अपलोड करना
बकेट में फ़ाइल या पूरे फ़ोल्डर अपलोड करने के लिए, New-GcsObject का इस्तेमाल किया जा सकता है.
-File पैरामीटर का इस्तेमाल करके और फ़ाइल का पाथ तय करके, किसी लोकल फ़ाइल के कॉन्टेंट को Cloud Storage में अपलोड किया जा सकता है. इसके अलावा, PowerShell पाइपलाइन के ज़रिए ऑब्जेक्ट के कॉन्टेंट को स्ट्रिंग के तौर पर पास किया जा सकता है. इसके अलावा, -Value पैरामीटर का इस्तेमाल किया जा सकता है.
अपने कंप्यूटर पर मौजूद कोई फ़ाइल चुनें और उसे अपने बकेट में इस तरह अपलोड करें.
New-GcsObject -Bucket "my-gcs-bucket" -File "C:\path\to\some\file\hello.txt"
-UploadFolder पैरामीटर का इस्तेमाल करके, पूरी डायरेक्ट्री को लोकल डिस्क से Cloud Storage में अपलोड किया जा सकता है. इसके लिए, फ़ोल्डर का पाथ तय करें. अगर आपको फ़ोल्डर को सीधे Cloud Storage बकेट के रूट में अपलोड नहीं करना है, तो -ObjectNamePrefix का इस्तेमाल करके ऐसा प्रीफ़िक्स तय करें जो अपलोड किए गए हर ऑब्जेक्ट पर लागू होगा.
अपने कंप्यूटर पर कोई लोकल फ़ोल्डर चुनें और उसे अपने बकेट में इस तरह अपलोड करें.
New-GcsObject -Bucket "my-gcs-bucket" -Folder "C:\path\to\some\folder"
खोज का डेटा
cmdlet या सामान्य फ़ाइल खोजने वाले cmdlet के ज़रिए, डेटा खोजा जा सकता है. अपने बकेट के साथ यहां दी गई कमांड आज़माएं.
Get-GcsObject $bucket | Select Name, Size | Out-GridView
आपको नाम और साइज़ के साथ एक ग्रिड पॉप-अप दिखेगा.

डेटा ऐक्सेस करना
डेटा को पढ़ने के लिए, Read-GcsObject cmdlet का इस्तेमाल किया जा सकता है. उदाहरण के लिए, अपने डेस्कटॉप पर hello.txt नाम की फ़ाइल को पढ़ने के लिए, इस कमांड का इस्तेमाल किया जा सकता है.
Read-GcsObject $bucket "hello.txt" `
-OutFile "$Env:UserProfile\Desktop\hello.txt"
डेटा मिटाना
आखिर में, Remove-GcsObject cmdlet का इस्तेमाल करके डेटा मिटाया जा सकता है. बकेट में मौजूद सभी कॉन्टेंट को मिटाने के लिए, इस कमांड का इस्तेमाल करें.
Get-GcsObject $bucket | Remove-GcsObject
8. बधाई हो!
इस कोडलैब में, आपने PowerShell से Compute Engine इंस्टेंस और Cloud Storage बकेट को मैनेज करने का तरीका सीखा. हालांकि, इसके अलावा और भी बहुत कुछ किया जा सकता है! PowerShell का इस्तेमाल करके, Cloud SQL और Cloud CDN संसाधनों को भी मैनेज किया जा सकता है. ज़्यादा जानने के लिए, यहां दिए गए अगले चरणों की सूची देखें.
हमने क्या-क्या बताया
- Cloud Tools for PowerShell को इंस्टॉल करने का तरीका.
- Google Cloud SDK की मदद से पुष्टि करने का तरीका.
- PowerShell से Google Compute Engine को बनाने और मैनेज करने का तरीका.
- PowerShell से Google Cloud Storage में डेटा का बैकअप लेने का तरीका.
अगले चरण
- Cloud Tools for PowerShell के बारे में ज़्यादा जानें.
- Google Cloud Platform पर Windows के बारे में ज़्यादा जानें.
- Google Cloud Platform पर.NET के बारे में ज़्यादा जानें.
- Google Cloud Platform पर SQL Server के बारे में ज़्यादा जानें.
- Cloud Tools for Visual Studio के बारे में ज़्यादा जानें.