一千萬個為什麽

搜索

如何在不調配的情況下測試VM配置腳本



目前我處於一種狀態,測試花費我很多時間和金錢。

背景:我正在軟層上部署虛擬機,並使用部署後腳本(bash)來安裝虛擬機就緒後所需的所有軟件。 問題是,我只能通過部署一個虛擬機來測試這個腳本,並且目前大約需要4個小時才能完成腳本......因此,我所做的每一個變化都需要創建一個新的虛擬機(花錢)並等待4個小時看腳本是否壞了...這變得混亂,如果我保持這種方式,我將無法前進。

我需要一種新方法來處理這種情況,並且能夠更快地測試配置腳本,而無需每次部署新的VM。

你們知道一些工具來幫助我解決這個問題嗎?

轉載註明原文: 如何在不調配的情況下測試VM配置腳本

一共有 3 個回答:

我可以看到一些選項:

  • 使用Vagrant創建虛擬機;它將創建虛擬機(包括基本操作系統)的過程與實際的配置分離開來。它也有一些選項可以在某些情況下運行某些配置步驟。
  • 使用Ansible,Puppet或類似的東西切換到配置模式,你不會每次都做同樣的事情,但只需要。這意味著你可以開始工作,並在第一個失敗的部分停下來。修復該部分,然後繼續。
  • 使用Docker。這與Vagrant/Ansible方法稍有不同,因為它會創建容器(據我所知,它實際上並不需要)。除了Ansible方法之外,它具有的好處是它可以為您提供非常細致的逐步開發流程。也就是說,如果一個步驟失敗了,你仍然擁有所有的圖像,所以在開發過程中,如果有一點紀律,你的確會變得非常非常快。

所有這些工具的功能遠遠超出您的需求,但所有這些工具都可以幫助您逐步完成工作。 Vagrant,Ansible和Docker相當容易學習,就我而言(只要您處於開發/測試模式,當您開始制作時就會開始“有趣”的部分)。 Ansible非常簡約,除了一個ssh連接外不需要任何東西。 Vagrant和Docker在您的基礎架構中可能不可行,您會很快看到。

http://www.vagrantup.com

您可以使用vagrant在本地筆記本電腦上部署虛擬機。

您還可以檢查是否可以將腳本分成較小的部分,以便測試它不需要四個小時。

如果本地測試不是一種選擇,那麽最直接的方法就是使用磁盤卷快照/備份來獲得優勢。這些仍然會花費$$$,但從長遠來看可以節省您的時間。然後,您應該將您的bash腳本分成不同的可以單獨測試的工作段/腳本。一旦你的服務器配置好了,運行一個腳本,然後拍一個快照。如果成功,請運行下一個腳本,拍攝快照,然後沖洗並重復。如果腳本失敗,請修改腳本,恢復上次成功的快照,然後重試。

註意:我不確定您是否可以在IBM Cloud/Softlayer中拍攝虛擬機磁盤的快照,但看起來您可以非常輕松地創建VM映像。

Backing up virtual machine images

You can back up a virtual machine image in your instance. This function creates a copy of the virtual machine image and cloud configuration that can be restored later. Additionally, you can manage these backup images. Details about the backup image are as follows:

The backup image is an exact copy of the virtual machine image and the cloud configuration. No image cleanup is performed.

  • The backup image cannot be deployed as a new instance. It can be used only to restore the associated virtual machine image and cloud configuration.

  • Only the project owner (or an administrator) has access to restore the backup virtual machine images and backup virtual machine.

  • If you are using an OpenStack cloud, only one instance backup operation is allowed at the same time. If another user is running a backup and you start one on the same instance, you receive an error that states there is a conflicting request. To perform a backup, you must wait until the other backup is finished.

  • OpenStack PowerVM® and z/VM® instances do not support this action.

  • If the instance is deleted by using IBM® Cloud Manager with OpenStack, the associated backups are also deleted.

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