プロビジョニングなしでVMプロビジョニングスクリプトをテストする方法


10

現在、私はテストにお金と多くの時間がかかるという状態にあります...

背景:SoftlayerでVMを展開し、VMの準備ができた後に必要なすべてのソフトウェアをインストールする展開後スクリプト(bash)を使用しています。問題は、このスクリプトをテストできるのは、1つのVMをデプロイすることだけです。現在、スクリプトが完了するまでに約4時間かかります...そのため、変更を加えるたびに、新しいVMを作成し(費用がかかる)、待機する必要があります。スクリプトが壊れているかどうかを確認するための4時間...これは混乱しており、このままでは、先に進むことができなくなります。

このような状況にアプローチし、毎回新しいVMを展開する必要なく、より迅速にプロビジョニングスクリプトをテストできる新しい方法が必要です。

このシナリオで私を助けるためのツールを知っていますか?


4
ローカルで実行することにより、ローカル開発VMでプロビジョニング(bash)スクリプトをテストすることはできませんか?
Rekovni

3
ここはプライベートクラウドが輝く場所です。1つを購入して設定することで、現在行っている費用よりも安くなる可能性があります。数字を実行します。あなたにとって意味のあるものを見てください。
ヒヨコ

回答:


10

私はいくつかのオプションを見ることができます:

  • Vagrantを使用してVMを作成します。VM(ベースOSを含む)の作成プロセスと実際のプロビジョニングを分離します。また、特定の状況でのみ特定のプロビジョニング手順を実行するオプションもあります。
  • Ansible、Puppetなどを使用して、毎回同じことを行うのではなく、必要なものだけを実行するプロビジョニングモードに切り替えます。これは、ジョブを開始し、最初の失敗した部分で停止できることを意味します。その部分を修正してから続行してください。
  • Dockerを使用します。これは、Vagrant / Ansibleのアプローチとは少し異なり、コンテナを作成します(私が知る限り、実際には必要ありません)。これは、Ansibleのアプローチを超えて、非常に細かい段階的な開発プロセスを提供するという利点があります。つまり、1つのステップが失敗した場合でも、それに至るまでのすべてのイメージが残っているため、開発中に少しの規律で、非常に高速になります。

これらのツールはすべて、必要なものよりもはるかに多くの機能を備えていますが、これらのツールを使用すると、作業を段階的に行うことができます。Vagrant、Ansible、Dockerは、私が考える限り、非常に簡単に学ぶことができます(開発/テストモードにいる限り、「興味深い」部分は、本番環境に移行すると始まります)。Ansibleは非常に最小限であり、ssh接続以外は何も必要ありません。VagrantとDockerはインフラストラクチャで実現できない場合があります。すぐにわかります。


6

http://www.vagrantup.com

vagrantを使用して、ローカルラップトップにVMを展開できます。

スクリプトを小さな部分に分割できるかどうかを確認して、テストに4時間もかからないようにすることもできます。


5

ローカルでのテストが選択肢にない場合、最も簡単な方法は、ディスクボリュームのスナップショット/バックアップを利用することです。これらの費用はまだ$$$ですが、長期的には時間を節約できます。次に、bashスクリプトを、個別にテストできる異なる作業セグメント/スクリプトに分離する必要があります。サーバーがプロビジョニングされたら、スクリプトを実行し、スナップショットを作成します。成功した場合は、次のスクリプトを実行し、スナップショットを作成してから、すすぎ、繰り返します。スクリプトが失敗した場合は、スクリプトを変更し、最後に成功したスナップショットに戻してから、再試行してください。

注:IBM Cloud / Softlayerで仮想マシンディスクのスナップショットを作成できるかどうかはわかりませんが、VMイメージをかなり簡単に作成できるようです。

仮想マシンイメージのバックアップ

インスタンス内の仮想マシンイメージをバックアップできます。この機能は、後で復元できる仮想マシンイメージとクラウド構成のコピーを作成します。さらに、これらのバックアップイメージを管理できます。代替画像の詳細は次のとおりです。

バックアップイメージは、仮想マシンイメージとクラウド構成の正確なコピーです。画像のクリーンアップは実行されません。

  • バックアップイメージを新しいインスタンスとして展開することはできません。関連する仮想マシンイメージとクラウド構成を復元するためにのみ使用できます。

  • プロジェクトの所有者(または管理者)のみが、バックアップ仮想マシンイメージとバックアップ仮想マシンを復元するアクセス権を持っています。

  • OpenStackクラウドを使用している場合、同時に実行できるインスタンスバックアップ操作は1つだけです。別のユーザーがバックアップを実行していて、同じインスタンスでバックアップを開始すると、競合する要求があることを示すエラーが表示されます。バックアップを実行するには、他のバックアップが完了するまで待つ必要があります。

  • OpenStackPowerVM®および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.