8

का उपयोग कर टेराफॉर्म स्टेट लॉकिंग हमारा टेराफॉर्म लेआउट ऐसा है कि हम कई aws (100+) खातों के लिए टेराफॉर्म चलाते हैं, और टेराफॉर्म स्टेट फ़ाइल को दूरस्थ रूप से केंद्रीय S3 बाल्टी में सहेजते हैं।डायनेमोडीबी

नई लॉकिंग सुविधा उपयोगी लगता है और इसे कार्यान्वित करना चाहता है लेकिन मुझे यकीन नहीं है कि अगर मैं एक ही खाते में एक केंद्रीय डायनेमोडीबी तालिका का उपयोग कर सकता हूं तो हमारे एस 3 बाल्टी के रूप में या क्या मुझे प्रत्येक में डायनेमोडीबी टेबल बनाने की आवश्यकता है एडब्ल्यूएस खातों का?

उत्तर

6

आप सभी खातों के लिए राज्य फ़ाइल के लॉकिंग को नियंत्रित करने के लिए एक एकल डायनेमोडीबी तालिका का उपयोग कर सकते हैं। यह तब भी काम करेगा जब आपके पास राज्य को स्टोर करने के लिए एकाधिक एस 3 बाल्टी थीं।

डायनेमोडीबी तालिका LockID which is set as a bucketName/path पर की जाती है। इसलिए जब तक आपके पास उन लोगों का अनूठा संयोजन हो, तो आप ठीक होंगे (आपको या आपके राज्य प्रबंधन के साथ बड़ी समस्याएं होनी चाहिए)।

जाहिर है आपको उपयोगकर्ताओं को एक खाते में चीजें बनाने की अनुमति देने के लिए डायनामो डीबी में आइटम प्रबंधित करने की अनुमति देने के लिए क्रॉस अकाउंट आईएएम नीतियां स्थापित करने की आवश्यकता होगी।

+0

धन्यवाद, मैं इसे जल्द ही कोशिश करूँगा और प्रतिक्रिया दूंगा। – user1619524

+0

इस पर कोई प्रतिक्रिया? – reedobrien

+0

हाँ, कोशिश की और यह मेरे लिए ठीक काम किया। मैंने टेबल को मैन्युअल रूप से सेट अप किया था, फिर टेराफॉर्म को .tf फ़ाइल के माध्यम से कनेक्ट किया था। नोट: मैंने जिरावत द्वारा एक वाक्यविन्यास उदाहरण के रूप में अन्य उपयोग का उपयोग किया (उपयोग उदाहरण के तहत)। इसके अलावा, मैं टेराफॉर्म 0.9.7 का उपयोग कर रहा हूं, इसलिए मुझे dynamodb_table के बजाय lock_table का उपयोग करना पड़ा जो बाद के संस्करणों के लिए उपयोग किया जाता है। – kjbradley

3

terraform DynamoDB लॉकिंग का उपयोग करने के लिए, terraform.tfstate लॉक करने के लिए terraform साथ नीचे

1. बनाएँ एक एडब्ल्यूएस DynamoDB चरणों का पालन करें।

provider "aws" { 
    region = "us-east-2" 
} 


resource "aws_dynamodb_table" "dynamodb-terraform-lock" { 
    name = "terraform-lock" 
    hash_key = "LockID" 
    read_capacity = 20 
    write_capacity = 20 

    attribute { 
     name = "LockID" 
     type = "S" 
    } 

    tags { 
    Name = "Terraform Lock Table" 
    } 
} 
एडब्ल्यूएस पर DynamoDB तालिका बनाने के लिए

2.Execute terraform

terraform लागू

प्रयोग उदाहरण

1.Use DynamoDB तालिका terraform.state निर्माण लॉक करने के लिए एडब्ल्यूएस पर एक EC2 उदाहरण

terraform { 
    backend "s3" { 
    bucket = "terraform-s3-tfstate" 
    region = "us-east-2" 
    key = "ec2-example/terraform.tfstate" 
    dynamodb_table = "terraform-lock" 
    encrypt = true 
    } 
} 

provider "aws" { 
    region = "us-east-2" 
} 

resource "aws_instance" "ec2-example" { 
    ami = "ami-a4c7edb2" 
    instance_type = "t2.micro"  
} 

रूप dynamodb_table मूल्य DynamoDB तालिका हम बनाया के नाम से मेल खाना चाहिए।

2.Initialize terraform S3 और DynamoDB बैकएंड

terraform init

3.Execute terraform EC2 सर्वर बनाने के लिए

terraform लागू

कोड देखने के लिए, Github DynamoDB Locking Example

पर जाएं
संबंधित मुद्दे