วิธีทดสอบสคริปต์การเตรียม VM โดยไม่ต้องเตรียม


10

ขณะนี้ฉันอยู่ในสถานะที่การทดสอบค่าใช้จ่ายฉันเงินและเวลามาก ...

ความเป็นมา: ฉันกำลังปรับใช้ VMs ที่ softlayer และใช้สคริปต์หลังการปรับใช้ (ทุบตี) ที่จะติดตั้งซอฟต์แวร์ทุกอย่างที่ฉันต้องการหลังจากที่ VM พร้อมใช้งาน ปัญหาคือฉันสามารถทดสอบสคริปต์นี้ได้โดยการปรับใช้ VM หนึ่งตัวและในขณะนี้ใช้เวลาประมาณ 4 ชั่วโมงเพื่อให้สคริปต์เสร็จสิ้น ... ดังนั้นการเปลี่ยนแปลงทุกครั้งที่ฉันทำให้ฉันต้องสร้าง VM ใหม่ (ค่าใช้จ่าย) และรอรอบ 4 ชั่วโมงเพื่อดูว่าสคริปต์ใช้งานไม่ได้หรือไม่ ... นี่เป็นความโกลาหลและฉันจะไม่สามารถเดินหน้าต่อไปได้

ฉันต้องการวิธีใหม่ในการเข้าถึงสถานการณ์แบบนี้และสามารถทดสอบสคริปต์การจัดสรรได้เร็วขึ้นและไม่จำเป็นต้องปรับใช้ VM ใหม่ทุกครั้ง

พวกคุณรู้จักเครื่องมือช่วยฉันในสถานการณ์นี้หรือไม่?


4
เป็นไปไม่ได้ที่จะทดสอบสคริปต์การจัดเตรียม (bash) ของคุณบน VM dev ท้องถิ่นโดยเรียกใช้ในเครื่องใช่หรือไม่
Rekovni

3
นี่คือสถานที่ที่เมฆส่วนตัวจะส่องแสง การซื้อและตั้งค่าอาจทำให้คุณเสียค่าใช้จ่ายน้อยกว่าที่คุณทำอยู่ เรียกใช้ตัวเลข ดูว่าอะไรเหมาะสมสำหรับคุณ
ลูกไก่

คำตอบ:


10

ฉันเห็นตัวเลือกบางอย่าง:

  • ใช้ Vagrant เพื่อสร้าง VMs ของคุณ มันแยกกระบวนการสร้าง VM (รวมถึงระบบปฏิบัติการพื้นฐาน) และการจัดเตรียมจริง นอกจากนี้ยังมีตัวเลือกเพื่อเรียกใช้ขั้นตอนการจัดเตรียมบางอย่างในบางสถานการณ์เท่านั้น
  • ใช้ Ansible, Puppet หรืออะไรทำนองนั้นเพื่อเปลี่ยนเป็นโหมดการจัดสรรที่คุณไม่ได้ทำสิ่งเดียวกันทุกครั้ง แต่เฉพาะสิ่งที่จำเป็นเท่านั้น ซึ่งหมายความว่าคุณสามารถเริ่มงานได้และหยุดที่ส่วนแรกที่ล้มเหลว แก้ไขส่วนนั้นแล้วดำเนินการต่อ
  • ใช้นักเทียบท่า ซึ่งแตกต่างจากวิธี Vagrant / Ansible เล็กน้อยในการสร้างตู้คอนเทนเนอร์ (ซึ่งคุณไม่ต้องการจริงๆเท่าที่ฉันสามารถบอกได้) มันมีประโยชน์นอกเหนือจากวิธีการ Ansible ที่ให้กระบวนการพัฒนาทีละขั้นตอนที่ละเอียดยิ่งขึ้น นั่นคือถ้าขั้นตอนเดียวล้มเหลวคุณยังคงมีภาพทั้งหมดที่นำไปสู่สิ่งนั้นดังนั้นในระหว่างการพัฒนาด้วยวินัยเล็กน้อยคุณจะกลายเป็นคนที่เร็วมากอย่างแน่นอน

เครื่องมือทั้งหมดเหล่านี้ทำอะไรได้มากกว่าที่คุณต้องการ แต่เครื่องมือเหล่านี้ให้วิธีการทำงานของคุณแบบค่อยเป็นค่อยไป Vagrant, Ansible และ Docker นั้นค่อนข้างง่ายที่จะเรียนรู้เท่าที่ฉันกังวล (ตราบใดที่คุณอยู่ในโหมด Dev / Test ชิ้นส่วน "น่าสนใจ" จะเริ่มต้นเมื่อคุณไปผลิต) Ansible เรียบง่ายมากและไม่ต้องการอะไรนอกจากการเชื่อมต่อ ssh คุณอาจเห็น Vagrant และ Docker ในโครงสร้างพื้นฐานของคุณได้อย่างรวดเร็ว


6

http://www.vagrantup.com

คุณสามารถใช้คนจรจัดในการปรับใช้ VM บนแล็ปท็อปท้องถิ่น

คุณสามารถตรวจสอบว่ามันเป็นไปได้ที่จะแบ่งสคริปต์เป็นส่วนย่อย ๆ หรือไม่ดังนั้นมันจะไม่ใช้เวลาสี่ชั่วโมงในการทดสอบ


5

หากการทดสอบในตัวเครื่องไม่ใช่ตัวเลือกวิธีการส่งต่อที่ตรงที่สุดคือการใช้สแน็ปช็อตวอลุ่มดิสก์ / สำรองข้อมูลเพื่อประโยชน์ของคุณ สิ่งเหล่านี้จะยังคงมีค่าใช้จ่าย $$$ แต่จะช่วยคุณประหยัดเวลาในระยะยาว จากนั้นคุณควรแยกสคริปต์ทุบตีของคุณออกเป็นส่วน / สคริปต์ที่ทำงานต่าง ๆ ซึ่งสามารถทดสอบแยกกันได้ เมื่อเซิร์ฟเวอร์ของคุณได้รับการจัดเตรียมแล้วให้เรียกใช้สคริปต์จากนั้นจึงทำการจับภาพ หากประสบความสำเร็จให้เรียกใช้สคริปต์ถัดไปถ่ายภาพจากนั้นล้างและทำซ้ำ หากสคริปต์ของคุณล้มเหลวให้แก้ไขสคริปต์เปลี่ยนกลับเป็นสแน็ปช็อตที่สำเร็จครั้งล่าสุดจากนั้นลองอีกครั้ง

หมายเหตุ: ฉันไม่แน่ใจว่าคุณสามารถถ่ายภาพสแนปชอตของดิสก์เครื่องเสมือนใน IBM Cloud / Softlayer แต่ดูเหมือนว่าคุณสามารถสร้างอิมเมจ VM ได้อย่างง่ายดาย

การสำรองอิมเมจเครื่องเสมือน

คุณสามารถสำรองอิมเมจเครื่องเสมือนในอินสแตนซ์ของคุณ ฟังก์ชันนี้สร้างสำเนาของอิมเมจเครื่องเสมือนและการกำหนดค่าคลาวด์ที่สามารถกู้คืนได้ในภายหลัง นอกจากนี้คุณสามารถจัดการภาพสำรองเหล่านี้ รายละเอียดเกี่ยวกับอิมเมจการสำรองข้อมูลมีดังนี้:

อิมเมจสำรองเป็นสำเนาที่แน่นอนของอิมเมจเครื่องเสมือนและการกำหนดค่าคลาวด์ ไม่มีการล้างรูปภาพ

  • ไม่สามารถปรับใช้อิมเมจสำรองเป็นอินสแตนซ์ใหม่ได้ สามารถใช้เพื่อคืนค่าอิมเมจเครื่องเสมือนที่เชื่อมโยงและการกำหนดค่าคลาวด์เท่านั้น

  • เฉพาะเจ้าของโครงการ (หรือผู้ดูแลระบบ) เท่านั้นที่สามารถเข้าถึงเพื่อเรียกคืนอิมเมจเครื่องเสมือนสำรองและเครื่องเสมือนสำรอง

  • หากคุณกำลังใช้งานระบบคลาวด์ OpenStack ระบบจะอนุญาตการสำรองข้อมูลอินสแตนซ์เดียวเท่านั้นในเวลาเดียวกัน หากผู้ใช้รายอื่นกำลังสำรองข้อมูลและคุณเริ่มต้นบนอินสแตนซ์เดียวกันคุณจะได้รับข้อผิดพลาดที่ระบุว่ามีคำขอที่ขัดแย้งกัน ในการสำรองข้อมูลคุณต้องรอจนกว่าการสำรองข้อมูลอื่นจะเสร็จสิ้น

  • อินสแตนซ์ OpenStack PowerVM และ z / VM ไม่สนับสนุนการกระทำนี้

  • หากอินสแตนซ์ถูกลบโดยใช้IBM® Cloud Manager ด้วย OpenStack การสำรองข้อมูลที่เกี่ยวข้องจะถูกลบด้วย

https://www.ibm.com/support/knowledgecenter/en/SST55W_4.1.0/liacb/liacbsaverestorevsvmw.html

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