รันสคริปต์ทุบตีหลังจากบู๊ตอินสแตนซ์ EC2


19

ฉันมีสคริปต์บนอินสแตนซ์ EC2 ที่เริ่มอินสแตนซ์อื่นจากระยะไกล

เมื่ออินสแตนซ์นี้โหลดเต็มแล้ว (บูตเสร็จ) ฉันต้องการให้มันรันสคริปต์ทุบตีโดยอัตโนมัติสิ่งที่จะเป็นวิธีที่ดีที่สุดในการทำเช่นนี้?

ฉันต้องการทุกอย่างที่จะเริ่มต้นอย่างเต็มที่โดยทั่วไปแล้วสคริปต์ทุบตีจะเรียกใช้สคริปต์การแปลงภาพ (โดยใช้ ImageMagick และดำเนินการคำสั่ง "wget" สองสามครั้ง)

ปัจจุบันสคริปต์อยู่ที่นี่:

/home/root/beginProcess.sh

และฉันสามารถเริ่มด้วยตนเองโดยดำเนินการ

bash startsProcess.sh

RHEL-6.2 Starter-EBS-i386

นอกจากนี้ยังมีปริมาณ EBS ที่แนบมากับสิ่งนี้หากช่วยได้ขอบคุณ!

คำตอบ:


26

ผมขอแนะนำให้เพียงแค่ใช้ข้อมูลผู้ใช้ec2-run-instancesเลือกที่จะ มันช่วยให้คุณให้สคริปต์บางอย่างกับ VM ซึ่งจะทำงานในการบูตครั้งแรก หากคุณใช้อูบุนตูหรือเดเบียนคุณสามารถใช้ระบบคลาวด์ -dimได้ หากใช้ cloud-init คุณสามารถใช้[runcmd]ส่วนของไฟล์กำหนดค่าเพื่อระบุคำสั่งโดยพลการให้ทำงานหลังจากบูต

ขอบคุณผู้ใช้ SF Hammondสำหรับหน้าข้อมูลผู้ใช้ ตรวจสอบเว็บไซต์ของเขา- มันมีข้อมูลมากมายเกี่ยวกับ AWS

แก้ไข: หลังจากอ่านใหม่แล้วยังไม่ชัดเจนว่าคุณต้องการเรียกใช้คำสั่งในการบูตครั้งแรกหรือทุกครั้งที่บูต คำแนะนำข้างต้นนำไปใช้กับการบูตครั้งแรกเท่านั้น หากคุณต้องการเรียกใช้คำสั่งในทุกการบู๊ตคุณมีตัวเลือกอยู่สองสามตัว - คุณสามารถเรียกใช้คำสั่งผ่านคำสั่ง@rebootcron หรือคุณสามารถเพิ่มสคริปต์ลงไป/etc/rc.localซึ่งจะรันทุกครั้งที่ระบบบู๊ต


1
ขอบคุณมากสำหรับการตอบสนองเพื่อชี้แจงฉันต้องการให้มันทำงานทุกครั้งที่บูทระบบ/etc/rc.localทำงานได้อย่างยอดเยี่ยมไชโย
SSH

9

หากคุณใช้ AMI ที่cloud-initติดตั้งแพคเกจ (เช่น Amazon Linux หรือ Ubuntu) คุณสามารถส่งสคริปต์ bash (ซึ่งเริ่มต้นด้วย #!) เป็นไฟล์ข้อมูลผู้ใช้และจะทำงานโดยอัตโนมัติเมื่อสิ้นสุด กระบวนการบูต

ตัวอย่างเช่นมันอาจจะง่ายเหมือน:

ec2-run-instances                             \
  --user-data-file /home/root/beginProcess.sh \
  --key $USER                                 \
  ami-XXXXXXXX

ต่อไปนี้เป็นบทความที่ฉันแนะนำแนวคิดสคริปต์ข้อมูลผู้ใช้ซึ่งมีให้ใน EC2 AMIs ที่สำคัญเช่น Amazon Linux และ Ubuntu: http://alestic.com/2009/06/ec2-user-data-scripts

น่าเสียดายที่ดูเหมือนว่าคุณต้องการใช้ RHEL AMI ฉันเรียกใช้สำเนานั้นและไม่พบการอ้างอิงใด ๆ ถึง cloud-init หรือการเรียกใช้สคริปต์ข้อมูลผู้ใช้ในการบูตครั้งแรกและไม่ได้ทดสอบงานเดียวกัน

ฉันไม่ได้บอกว่าคุณควรเปลี่ยน distros Linux เพียงแค่นี้ แต่ Amazon Linux ใช้ RHEL เพื่อที่จะได้ผลสำหรับคุณ

นี่คือบทความที่ฉันเขียนซึ่งอาจช่วยให้คุณดีบักสคริปต์ข้อมูลผู้ใช้ของคุณหากไม่ได้ผลในครั้งแรก: http://alestic.com/2010/12/ec2-user-data-output


Offtopic แต่ขอบคุณที่สร้างสิ่งล้ำค่าเช่นนี้ด้วย ไชโยสามคน
danieljimenez
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.