vSphereTools:vSphereでの作業を自動化するためのオープンツールの作成方法





Habréのブログでは、DevOpsアプローチの実装と、開発およびテストの自動化のために開発したツールについて多くのことを話します。 今日は、VMware vSphereとの対話の問題をどのように解決したかについてお話します。



ちょっとした歴史



vSphereは、ビルドサーバーとテストサーバーの両方のすべての仮想マシンを実行します。



数年前、当社の継続的インテグレーションシステムが登場する前にほとんどのアセンブリがTeamCityツールに転送されました。 当時、テストと展開の構成はありませんでしたが、開発の必要性はますます明らかになりました。



2014年半ばに、仮想マシンでの作業を自動化するための2つのソリューションを認識しました。vSphereを操作するためのネイティブVMware API (VIX APIライブラリ)とpysphereライブラリの使用です。 これらの各ツールには欠陥がありました。



VIX APIには、私たちにとって高すぎるエントリしきい値がありました。





pysphereライブラリは一般的にほとんど文書化されておらず、いくつかの問題がありました。





ただし、pysphereをVIX APIと比較すると、前者には独自の利点がありました。





したがって、このライブラリを使用し、それに基づいて独自のソリューションを作成することが決定されました。



VSphereToolsプロジェクト



プログラミングを開始する前に、一連の自動化ツールの要件を作成しました。





vSphereToolsとSphere自体の間の相互作用の概念モデルを以下に示します。







すべてが非常に単純です。イニシエーター(ユーザーまたはスクリプト)は、コマンドラインから受け取ったコマンドをvSphereToolsツールに送信し、vSphereToolsツールはデータをpysphereライブラリに転送します。 次に、リクエストはvSphereに送られ、そこで処理されて仮想マシンに送信され、必要なもの(「状態」、属性など)が提供されます。



vSphereToolsの環境要件は最小限でした。





サンプル付きの完全なドキュメントは、DevOpsHQオープンソースコミュニティで入手できます。 その結果、 vSphereToolsスクリプトは 、仮想マシンの起動と停止から、目的の仮想マシン内のローカルファイルのコピー、または特定のプログラムの実行まで、多くの機能を実装します。



現在、vSphereToolsメタバナーとスクリプトは、 MaxPatrol SIEMPT Application FirewallApplication Inspectorなどの主要なPositive Technologiesのほぼすべての製品の開発とテストおよび他の多くのプロジェクトで使用されています。



制限と可能な改善



他のツールと同様に、vSphereTools製品には独自の制限があります。





そのため、多くの改善を計画しています。 たとえば、vSphereToolsをPython for vSphere 6.0用のVMware vCloud Suite SDKに書き換えたいとします。 このツールのドキュメントは既に利用可能です。それにはpython-apiもあります-pyvmomiライブラリ。



PS vSphereToolsプロジェクトに関するストーリーは、モスクワの秋に行われたDevOpsミーティングの一部として発表されました。



ビデオ:







スライド:







リンクには、イベント中に提示された16のレポートのプレゼンテーションが表示されます。 このトピック発表の最後に、すべてのプレゼンテーションとビデオプレゼンテーションがテーブルに追加されます。



Timur Gilmullin による投稿



PPS私たちは、Positive Technologiesの支援により、Pythonコア開発者のAndrei Svetlov によるasyncio + aiohttpのコースがモスクワですぐに開催されることをお知らせします。



Andreyにとって最高の質問の著者にセミナーの無料チケットを1つ提供したいと考えています。彼はレッスン中に質問を選択して回答します。 質問はasyncio2016@ptsecurity.comに送信してください。



All Articles