
:ソース: https://github.com/F-Secure/see :ドキュメント: https://see.readthedocs.io :ダウンロード: https://pypi.python.org/pypi/python-see
|travis badge| |docs badge|
.. |travis badge| image:: https://travis-ci.org/F-Secure/see.svg?branch=master :target: https://travis-ci.org/F-Secure/see :alt: Build Status .. |docs badge| image:: https://readthedocs.org/projects/see/badge/?version=latest :target: http://see.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status
Sandboxed Execution Environment(SEE)は、セキュアな環境でテスト自動化を構築するためのフレームワークです。
libvirtを介して提供されるサンドボックスはカスタマイズ可能であり、高い柔軟性を備えています。異なる種類のハイパーバイザー(Qemu、VirtualBox、LXC)を使用してテスト環境を実行できます。
テスト環境にはプラグインを追加でき、プラグイン間のインタラクションを同期するためのイベントメカニズムを提供します。ユーザーはJSON設定ファイルを通じてプラグインを有効化および設定できます。
SEEは、未知の、危険な、または不安定なソフトウェアに対して、その実行中のアクティビティを追跡しながらテストを自動化するためのものです。
SEEは、モジュラーなテストプラットフォームを構築したり、高い分離度で実行可能コードを管理するのに適しています。
SEEを使用すると、迅速なプロトタイピングから本番環境での実行まで、サンドボックス化されたテストを作成できます。
SEEはPython Package Index(PyPI)でPythonパッケージとして入手可能です。
SEEで制御する予定のハイパーバイザー、および選択したイメージプロバイダーが使用する可能性のある依存関係やサブシステムのインストールとセットアップは、ユーザーの責任で行ってください。
各ハイパーバイザーのセットアップと設定方法については、ドキュメントを参照してください。
SEEはlibvirtのAPI上に構築されているため、libvirtがサポートするすべてのハイパーバイザーをSEEで制御できます。
SEEはQEMU、VirtualBox、LXCの基本サポートを備えています。さらに多くのハイパーバイザーを追加したり、基本のものをカスタマイズするには、see/context 内のコードを参照してください。
SEEはプラグイン可能なプロバイダーシステムを使用して、任意のソースからディスクイメージを取得し、SEEで利用可能にします。
SEEは、LibVirt storage pools <https://libvirt.org/storage.html>_ および OpenStack Glance <https://docs.openstack.org/developer/glance/>_ のプロバイダーと、ダミープロバイダーの実装をバンドルしています。さらにプロバイダーを追加するには、see/image_providers 内のコードを参照してください。
SEEは、同期および非同期のテストフロー制御のための、イベント駆動型・プラグインベースのサンドボックスプロバイダーです。
::
+----------+
| |
+-------| SEE Hook |
| | |
| +----------+
+---------+-------+ +---------+ | +----------+
| | | | | | |
User -------> | SEE Environment |-------| Sandbox |-------+-------| SEE Hook |
| | | | | | |
+-----------------+ +---------+ | +----------+
| +----------+
| | |
+-------| SEE Hook |
| |
+----------+
SEE Environmentは、すべての必要なリソースをカプセル化し、ユーザーのためのハンドラーとして機能します。SandboxはHook(プラグインとして動作)によって制御され、Hookはイベントを通じて通信と調整を行います。
各HookはSandboxに直接アクセスでき、Sandboxは制御のためのシンプルなAPIと、より細かい制御のためのlibvirt APIを公開しています。
Libvirtプロジェクトページ。
PyCon Finland 2015 でのプレゼンテーション。