如何在不配置虚拟机的情况下测试虚拟机配置脚本


10

目前,我处于一种状态,即测试要花我很多时间和金钱...

背景:我正在软层上部署VM,并使用部署后脚本(bash),该脚本将在VM准备好后安装所需的每个软件。问题是,我只能通过部署一个VM来测试此脚本,并且目前大约需要4小时才能完成脚本...因此,我进行的每一次更改都需要创建一个新的VM(需要花钱)并等待大约4小时后看脚本是否损坏...这变得混乱了,如果我保持这种方式,我将无法前进。

我需要一种新的方式来处理这种情况,并且能够更快地测试配置脚本,而不必每次都部署新的VM。

你们知道在这种情况下有什么工具可以帮助我吗?


4
是否可以通过在本地运行VM来在本地开发VM上测试您的配置(bash)脚本?
Rekovni

3
这是一个私有云闪耀的地方。购买并设置它的成本可能要低于当前的成本。运行数字。看看什么对您有意义。
小鸡

Answers:


10

我可以看到一些选择:

  • 使用Vagrant创建您的VM;它将创建VM(包括基本OS)和实际配置的过程分开。它还具有一些选项,仅在某些情况下可以运行某些设置步骤。
  • 使用Ansible,Puppet或类似的方式切换到预配模式,在此模式下,您不必每次都执行相同的工作,而只执行所需的工作。这意味着您可以开始工作,并且在第一个失败的部分停止。修复该部分,然后继续。
  • 使用Docker。这与Vagrant / Ansible方法略有不同,因为它创建了容器(就我所知,您实际上并不需要)。除了Ansible方法外,它的好处是,它为您提供了非常精细的逐步开发过程。即,如果某个步骤失败了,那么您仍然拥有所有导致此情况的图像,因此在开发过程中,只要有一点纪律,您的确会变得非常非常快。

所有这些工具的作用远远超出了您的需求,但是所有这些工具都为您提供了一种逐步完成工作的方式。就我而言,Vagrant,Ansible和Docker非常易于学习(只要您处于开发/测试模式,那么“有趣”的部分就会在您投入生产时开始)。Ansible非常简约,除了ssh连接外什么也不需要。您很快就会发现,Vagrant和Docker在您的基础架构中可能不可行。


6

http://www.vagrantup.com

您可以使用vagrant在本地笔记本电脑上部署VM。

您还可以检查是否可以将脚本拆分为较小的部分,因此无需花费四个小时即可对其进行测试。


5

如果无法在本地进行测试,那么最直接的方法是使用磁盘卷快照/备份以发挥自己的优势。这些仍将花费$$$,但从长远来看将节省您的时间。然后,您应该将bash脚本分为不同的工作段/脚本,可以分别对其进行测试。设置服务器后,运行脚本,然后拍摄快照。如果成功,请运行下一个脚本,拍摄快照,然后冲洗并重复。如果脚本失败,请修改脚本,还原到上一个成功的快照,然后重试。

注意:我不确定您是否可以在IBM Cloud / Softlayer中拍摄虚拟机磁盘的快照,但是看起来您可以非常轻松地创建VM映像。

备份虚拟机映像

您可以在实例中备份虚拟机映像。此功能创建虚拟机映像和云配置的副本,可在以后还原。此外,您可以管理这些备用映像。有关备份映像的详细信息如下:

备份映像是虚拟机映像和云配置的精确副本。不执行图像清除。

  • 备份映像无法部署为新实例。它只能用于还原关联的虚拟机映像和云配置。

  • 只有项目所有者(或管理员)有权还原备份虚拟机映像和备份虚拟机。

  • 如果您使用的是OpenStack云,则一次只能进行一次实例备份操作。如果另一个用户正在运行备份,并且您在同一实例上启动一个备份,则会收到一条错误消息,指出存在冲突的请求。要执行备份,必须等待另一个备份完成。

  • OpenStackPowerVM®和z /VM®实例不支持此操作。

  • 如果通过将IBM®Cloud Manager与OpenStack一起使用删除了实例,则关联的备份也将被删除。

https://www.ibm.com/support/knowledgecenter/zh-CN/SST55W_4.1.0/liacb/liacbsaverestorevsvmw.html

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.