2012-03-05 10 views
23

मैं एएमआई के आधार पर एक नया ईसी 2 उदाहरण बनाने के लिए बोटो का उपयोग कर रहा हूं।बोटो के साथ, मैं एक नए स्पॉन्टेड ईसी 2 इंस्टेंस का नाम कैसे बना सकता हूं?

ami.run विधि में कई पैरामीटर हैं, लेकिन "नाम" के लिए कोई नहीं - शायद इसे कुछ अलग कहा जाता है?

उत्तर

31
import boto 
c = boto.connect_ec2(ec2_key, ec2_secret) 
image = c.get_image(ec2_ami) 

reservation = image.run(key_name=ec2_keypair, 
         security_groups=ec2_secgroups, 
         instance_type=ec2_instancetype) 

instance = reservation.instances[0] 
c.create_tags([instance.id], {"Name": instance_name}) 
+18

नोट आप उदाहरण भी कर सकते हैं .add_tag ​​(' name ', instance_name) – garnaat

1

ईसी 2 में मशीन के वास्तव में नाम बदलने के लिए कोई एपीआई नहीं है। आप मूल रूप से दो विकल्प हैं।

  1. आप उपयोगकर्ता के डेटा में कंप्यूटर का वांछित नाम पास कर सकते हैं और जब सर्वर एक स्क्रिप्ट चलाता है जो कंप्यूटर का नाम बदल देगा।
  2. आप सर्वर ec2-create-tags <instance-id> --tag:Name=<computer name> नाम देने के लिए एक ईसी 2 टैग का उपयोग कर सकते हैं। इस समाधान के लिए डाउनसाइड यह है कि सर्वर वास्तव में इस नाम पर अपडेट नहीं होगा। यह टैग आपके लिए सख्ती से है या जब आप सर्वर में सर्वर की सूची पूछ रहे हैं।

आम तौर पर यदि आप उस बिंदु पर हैं जहां आप अपने सर्वर को शुरू करते समय स्वयं को कॉन्फ़िगर करना चाहते हैं तो मुझे पता चला है कि ईसी 2 में आपके कंप्यूटर का नाम बदलने से यह अधिक मूल्यवान होता है। यदि आपको ऐसा करने की ज़रूरत नहीं है तो मैं उनका उपयोग न करने का सुझाव देता हूं। टैग या एल्ब उदाहरणों का उपयोग करना बेहतर तरीका है।

+0

EC2 से बनाने-टैग 'आई-0d44bd39' --tag नाम = मू आवश्यक विकल्प 'कश्मीर, --private-कुंजी कुंजी' लापता (उपयोग के लिए -h) इसी प्रकार: ec2addtag ​​--tag नाम = moo का कहना है कि मुझे एक निजी कुंजी याद आ रही है? --tag: नाम = moo वाक्यविन्यास काम नहीं करता है। – Jeff

+0

वह आदेश कमांडलाइन उपकरणों के लिए है। बोटो के उपयोग के लिए 'create_tags (' i-0d44bd39 ', dict (name = moo)) ' – bwight

संबंधित मुद्दे