{"componentChunkName":"component---src-templates-blog-template-js","path":"/hi/blog/introducing-the-psono-terraform-provider","result":{"data":{"markdownRemark":{"html":"<h1>Psono Terraform Provider का परिचय</h1>\n<p>हमें यह घोषणा करते हुए खुशी हो रही है कि Psono Terraform Provider का बीटा रिलीज अब सार्वजनिक\n<a href=\"https://registry.terraform.io/providers/psono/psono/latest\">Terraform रजिस्ट्री</a> में उपलब्ध है।</p>\n<p>अब इंफ्रास्ट्रक्चर टीमें अपने Terraform वर्कफ़्लो के हिस्से के रूप में, पहले से बनाए गए Psono Environment Variables इंट्रीज़ के भीतर\nव्यक्तिगत कीज़ का प्रबंधन कर सकती हैं। यह provider मौजूदा मानों को संरक्षित कर सकता है, नए पासवर्ड जेनरेट कर सकता है, मैनेज्ड मानों को रोटेट कर सकता है,\nबाहरी स्रोत से प्राप्त मान लिख सकता है, और Terraform के ephemeral संसाधनों के माध्यम से secrets पढ़ सकता है।</p>\n<h2>Terraform state में secrets डाले बिना उन्हें संभालें</h2>\n<p>इन्फ्रास्ट्रक्चर ऐज़ कोड में सीक्रेट्स का प्रबंधन विशेष सावधानी की मांग करता है। sensitive फ्लैग किसी मान को सामान्य CLI आउटपुट से छुपा सकता है,\nलेकिन यह उसे Terraform की state से बाहर नहीं रखता। Psono provider, Terraform की write-only और ephemeral क्षमताओं का उपयोग करता है\nऔर इस समस्या से बचने के लिए Terraform 1.11 या नए वर्शन की आवश्यकता होती है।</p>\n<p>यह provider तीन सामान्य वर्कफ़्लो सपोर्ट करता है:</p>\n<ul>\n<li>Psono में कोई मान जेनरेट करें, लेकिन वह मैनेज्ड रिसोर्स के माध्यम से वापस न लौटाएं।</li>\n<li>write-only आर्ग्युमेंट के माध्यम से मान दें ताकि Terraform उसे अपने plan या state में सहेज न सके।</li>\n<li>किसी मौजूदा मान को ephemeral resource के जरिये पढ़ें और उसे केवल अन्य ephemeral या write-only कॉन्टेक्स्ट में पास करें।</li>\n</ul>\n<p>इससे यह संभव हो जाता है कि आप Terraform के भीतर सीक्रेट्स का जीवनचक्र संचालित करें, जबकि असली मान Psono में ही बने रहें।</p>\n<h2>प्रतिबंधित एक्सेस और स्थानीय एन्क्रिप्शन</h2>\n<p>यह provider एक प्रतिबंधित Psono API की का उपयोग करता है। आप केवल वे Environment Variables इंट्रीज़ असाइन करते हैं\nजिनकी Terraform को आवश्यकता है और सभी ऑपरेशनों के लिए read अनुमति प्रदान करते हैं। कीज़ बनाना, अपडेट/रोटेट या डिलीट करने के लिए अतिरिक्त रूप से write अधिकार चाहिए।\nProvider को unrestricted API की की आवश्यकता नहीं है और यह वॉल्ट इंट्रीज़, फोल्डर्स, या डाटा स्टोर्स नहीं बना सकता।</p>\n<p>एन्क्रिप्शन और डीक्रिप्शन provider के भीतर लोकली होते हैं। HTTPS सर्टिफिकेट सत्यापन को अक्षम नहीं किया जा सकता,\nऔर निजी सर्टिफिकेट अथॉरिटीज को PEM सीए बंडल के माध्यम से जोड़ा जा सकता है। प्रोडक्शन सिस्टम्स को हमेशा HTTPS Psono यूआरएल का ही उपयोग करना चाहिए।</p>\n<h2>आरंभ कैसे करें</h2>\n<p>Terraform 1.11 या नया संस्करण आवश्यक है। अपनी Terraform कॉन्फ़िगरेशन में provider जोड़ें:</p>\n<pre><code class=\"language-hcl\">terraform {\n  required_version = \">= 1.11.0\"\n\n  required_providers {\n    psono = {\n      source  = \"psono/psono\"\n      version = \"~> 1.0\"\n    }\n  }\n}\n\nprovider \"psono\" {}\n</code></pre>\n<p>Terraform फ़ाइलों में क्रेडेंशियल्स रखने के बजाय environment variables के माध्यम से credentials कॉन्फ़िगर करें:</p>\n<pre><code class=\"language-bash\">export PSONO_SERVER_URL='https://psono.example.com/server'\nexport PSONO_API_KEY_ID='REPLACE_WITH_API_KEY_ID'\nexport PSONO_API_SECRET_KEY='REPLACE_WITH_API_SECRET_KEY'\n</code></pre>\n<p>इसके बाद वर्किंग डायरेक्टरी इनिशियलाइज़ करें:</p>\n<pre><code class=\"language-bash\">terraform init\n</code></pre>\n<p>Terraform, signed provider release डाउनलोड करता है और उसकी checksum signature सत्यापित करता है।</p>\n<h2>मानों को जेनरेट और रोटेट करें</h2>\n<p>निम्नलिखित resource किसी मौजूदा Psono Environment Variables entry में <code>DB_PASSWORD</code> को मैनेज करता है:</p>\n<pre><code class=\"language-hcl\">resource \"psono_environment_variable\" \"database_password\" {\n  secret_id = var.psono_environment_variables_secret_id\n  name      = \"DB_PASSWORD\"\n\n  length      = 32\n  min_lower   = 4\n  min_upper   = 4\n  min_numeric = 4\n  min_special = 4\n\n  rotation_version = 1\n}\n</code></pre>\n<p>अगर key पहले से उपस्थित है, तो provider बिना उसका मान बदले उसे अपना लेता है। अगर वह मौजूद नहीं है,\nprovider Psono में एक नया मान जेनरेट और स्टोर करता है। यह generated value मैनेज्ड रिसोर्स द्वारा वापस नहीं दी जाती और न ही Terraform state में आती है।</p>\n<p>जब आपको Terraform से कोई नया रिप्लेसमेंट जनरेट कराना हो, तो <code>rotation_version</code> बढ़ाएं।\nयह उन मानों को भी बदल देता है जो प्रारंभ में अपनाए गए या इंपोर्ट किए गए थे, अतः रोटेशन करते समय बदलाव लागू करने से पहले समीक्षा जरुरी है।</p>\n<h2>बाहरी रूप से दिया गया मान लिखें</h2>\n<p>किसी अन्य provider से प्राप्त ephemeral मान को आप <code>value_wo</code> के जरिए Psono में लिख सकते हैं:</p>\n<pre><code class=\"language-hcl\">ephemeral \"random_password\" \"database\" {\n  length = 32\n}\n\nresource \"psono_environment_variable\" \"database_password\" {\n  secret_id        = var.psono_environment_variables_secret_id\n  name             = \"DB_PASSWORD\"\n  value_wo         = ephemeral.random_password.database.result\n  value_wo_version = 1\n}\n</code></pre>\n<p>यह मान Terraform ऑपरेशन के दौरान उपलब्ध रहता है, लेकिन न तो plan में और न ही state में सहेजा जाता है।\nजैसे ही आपको कोई नया मान लिखना हो, <code>value_wo_version</code> बढ़ाएं।</p>\n<h2>डिफ़ॉल्ट रूप से सुरक्षित डिलीशन</h2>\n<p>किसी मैनेज्ड रिसोर्स को नष्ट करने पर उसका Psono key डिफ़ॉल्ट रूप से बना रहता है।\nयह उनकी सुरक्षा करता है जिन्हें Terraform ने adopt किया था, मगर बनाया नहीं था। सिर्फ तभी <code>deletion_policy = \"Delete\"</code> सेट करें\nजब आप चाहें कि Terraform destroy या resource replacement के दौरान key को Psono से हटाए।</p>\n<h2>अब उपलब्ध</h2>\n<p>यह provider ओपन सोर्स है और अभी डाउनलोड के लिए उपलब्ध है:</p>\n<ul>\n<li><a href=\"https://registry.terraform.io/providers/psono/psono/latest\">Terraform रजिस्ट्री से provider इन्स्टॉल करें</a></li>\n<li><a href=\"https://doc.psono.com/user/developer/terraform-provider.html\">Psono Terraform Provider गाइड पढ़ें</a></li>\n<li><a href=\"https://gitlab.com/esaqa/psono/psono-terraform-provider\">GitLab पर source code देखें</a></li>\n</ul>\n<p>बीटा रिलीज़ ने जानबूझकर Environment Variables entries और restricted API कीज़ पर ध्यान केंद्रित किया है।\nइससे अनुमति सीमित रहती है, unrestricted vault एक्सेस से बचाव होता है,\nऔर Terraform से ऑपरेशनल secrets को सुरक्षित तरीके से प्रबंधित करने की एक ठोस आधारशिला मिलती है।</p>","frontmatter":{"date":"August 22, 2026","slug":"introducing-the-psono-terraform-provider","title":"Psono Terraform Provider का परिचय","description":"Terraform से सीधे Psono में generated, write-only, और ephemeral मानों का प्रबंधन करें, बिना secrets को Terraform state में संग्रहीत किए।","author":"Sascha Pfeiffer","featuredImage":null}}},"pageContext":{"slug":"introducing-the-psono-terraform-provider","lang":"hi","langPathPrefix":"/hi"}},"staticQueryHashes":["2149092236","3128451518","3192060438"]}