কীভাবে ইসি 2 ব্যবহারকারীর ডেটা স্ক্রিপ্ট আবার স্টার্টআপে চালানো যায়?


19

EC2 উদাহরণের প্রথম বুটে ক্লাউড-আরআইআই একটি ব্যবহারকারী ডেটা স্ক্রিপ্ট চালানোর পরে, একটি স্টেট ফাইল সম্ভবত লিখিত হয় যাতে ক্লাউড-ইনটি পরবর্তী রিবুটগুলিতে আবার স্ক্রিপ্টটি চালায় না। এমন কেস রয়েছে যেখানে আমি এই রাষ্ট্র ফাইলটি মুছতে চাই যাতে ব্যবহারকারীর ডেটা স্ক্রিপ্ট আবার চলতে পারে। এটা কোথায়?

উত্তর:


24

rm /var/lib/cloud/instances/*/sem/config_scripts_user

নিশ্চিত হয়ে কাজ করছেন:

  • CentOS 7.4
  • উবুন্টু 14.04
  • উবুন্টু 16.04

সম্পূর্ণতার স্বার্থে, যদি আপনার এমন পরিস্থিতি থাকে যেখানে আপনার এই এএমআইয়ের [পিতা-মাতার এএমআই ছিল ...] এবং তারা সকলেই cloud-initব্যবহারকারীর ডেটা চালায় তবে আপনি কেবল বর্তমান সেমোফোরটি মুছতে পারেন the

rm /var/lib/cloud/instance/sem/config_scripts_user


2
আপনি এটি দ্রুত খুঁজে পেয়েছেন।
c24w

9
@ c24w এই টাইমস্ট্যাম্পগুলি বিভ্রান্তিমূলক। এটি আমাকে কয়েক ঘন্টা গবেষণা এবং পরীক্ষার সময় নিয়েছিল, তাই আমি যখন এটি বের করে ফেললাম, পরবর্তী ব্যক্তির একটি সুনির্দিষ্ট উত্তর খুঁজতে সহায়তা করার জন্য আমি এই প্রশ্নটি তৈরি করেছিলাম।
মাইক

1
আমি জুড়ে এসেছ এই থেকে এবং বুঝতে পারছি না পোস্ট উইকি-টাইপ প্রশ্ন & এই রূপে জন্য উৎসাহিত করা হয়। আপনি এই ডকুমেন্টিং প্রশংসা!
c24w

1
আমি খুশি যে এটি সার্ভারফল্টে উত্সাহিত হয়েছিল। আমি দেখেছি এটা তাই অনেক বার downvoted
অকপট

1
@ ফ্ল্যাগ 5 curlবর্তমান ইনস্ট্যান্স আইডিটি পেতে মেটাডেটা পরিষেবাটির জন্য এটি অপ্রয়োজনীয় কারণ /var/lib/cloud/instanceইতিমধ্যে এর অধীনে বর্তমান দৃষ্টান্তের একটি সিমিলিংক /var/lib/cloud/instances। :-)
মাইক

2

আপনি আপনার স্ক্রিপ্টটি /etc/rc.local এ রাখতে পারেন, যা প্রতিটি পুনরায় বুটে স্ক্রিপ্ট চালাবে।


/etc/rc.localইসি 2 ব্যবহারকারীর ডেটা নিয়ে কিছু করার নেই।
মাইক

@ মাইককনিগলিয়ারো আমি প্রতিটি বুটে কিছু চালানোর জন্য ব্যবহারকারীর ডেটা ব্যবহার করতে চেয়েছিলাম, তাই আমি ব্যবহারকারীর ডেটা স্ক্রিপ্টটিকে /etc/rc.local এ যুক্ত করলাম।
ব্যবহারকারী 253751

0

আপনি স্টেট ফাইলটি অপসারণের পরিবর্তে প্রতিটি ব্যবহারকারীর ডেটা প্রতিটি বুটে আবার চালাতে কনফিগার করতে পারেন। cloud_final_modulesইউজারডাটা স্ক্রিপ্টটি পুনরায় চালাতে আপনাকে আপনার ইউজারডেটা স্ক্রিপ্টে ব্যবহার করতে হবে এবং এর জন্য আপনাকে ইউরডাটাতে একাধিক ফাইল রাখতে উডারডটা কাস্টমাইজ করতে হবে। ইউজারডাটা ফাইলের উদাহরণটি হ'ল:

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [scripts-user, always]

--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash
/bin/echo "Hello World" >> /tmp/userdata-test.txt
--//

এটি প্রতিটি বুট প্রক্রিয়ার শেষ ধাপে কার্যকর করার জন্য ব্যবহারডাটা স্ক্রিপ্ট তৈরি করবে। এখানে কেবল একটি একক লাইন bin/echo "Hello World" >> /tmp/userdata-test.txtকার্যকর করতে হবে, এটি আপনার শেল স্ক্রিপ্টের সাথে প্রতিস্থাপন করুন যা প্রতিবার কোনও মেশিন বুট করার পরে কার্যকর করা দরকার।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.