これは、ユーザーがアプライアンスとシンボルを共有できる GNS3 レジストリです。
新しいアプライアンスのプル リクエストを歓迎します。
新しいアプライアンス ファイルで参照されるイメージ/ディスクに関しては、有名なベンダーの Web サイトまたはその他の信頼できるソース Web サイトを指すリンクを受け入れます。
新しい投稿の場合、アプライアンスの種類、投稿者、特にイメージを構築するスクリプトが提供されている場合 (Qemu アプライアンスにはパッカー スクリプトが推奨されています) など、複数の基準に応じてリンクを受け入れます。次に、私たち側でビルドし、GNS3 Sourceforge アカウントでイメージを検証してアップロードします。
Docker アプライアンスの場合は、Dockerfile を提供してください。次に、イメージをビルドして Docker ハブにプッシュします。
新しいアプライアンスを作成するには 2 つの方法があります。
appliances
ディレクトリから JSON をコピーして貼り付けます。
new_appliance.py
を実行する
その後、Github でプルリクエストを送信してください。
schemas/appliance.json には、ファイルを制御するためのスキーマを含む JSON があり、各フィールドのドキュメントとして使用できます。
GNS3はスキーマのバージョンをチェックします。アプライアンスのスキーマがサポートされていない場合は、「このアプライアンスをインストールするにはGNS3を更新してください」というエラーが表示されます。
スキーマ | 分。 GNS3バージョン | 追加 |
---|---|---|
2 | 1.4.0 | |
3 | 1.5.0 | 港湾労働者 |
4 | 2.0.0 | 可用性 qemu/CPU qemu/hd?_disk_interface:sata バージョン/イメージ/bios_image |
5 | 2.1.0 | qemu/console_type: スパイス |
6 | 2.2.0 | qemu/custom_adapters qemu/console_type: スパイス+エージェント all/console_type: なし |
7 | 2.2.36 | qemu/tpm |
8 | 2.2.43 | 以下を参照してください |
スキーマ バージョン 8 では、アプライアンスのスキーマに多くの変更が導入されました。最も重要なものは次のとおりです。
Qemu テンプレート プロパティのuefi_boot_mode
プロパティのサポート。
異なるイメージ バージョンで使用する複数の設定セットを持つ可能性。デフォルト設定が指定されるのは、
true
に設定されたdefault
フィールドが存在します
1セットのみ存在します。
注意事項
どのテンプレート (qemu、iou、dynamips または docker) を作成するかを GNS3 に指示するには、 template_type
フィールドを追加する必要があります。現時点では、異なるテンプレート タイプの混合はサポートされていません。すべてのテンプレート固有のプロパティは、 template_properties
フィールドで定義されます。
例
"設定": [ {"default": true,"template_type": "qemu","template_properties": {"platform": "x86_64","adapter_type": "e1000","adapters": 1,"ram": 1024,"console_type ": "vnc"} }、 {"name": "i386 settings","template_type": "qemu","template_properties": {"platform": "i386","adapters": 8} }、 {"name": "ARM 設定","template_type": "qemu","template_properties": {"プラットフォーム": "arm","ram": 512} } ]、"バージョン": [ {"名前": "1.0","イメージ": {"hda_disk_image": "disk1.qcow2"} }、 {"名前": "2.0","設定": "i386 設定","イメージ": {"hda_disk_image": "disk2.qcow2"} }、 {"名前": "3.0","設定": "ARM 設定","イメージ": {"hda_disk_image": "disk3.qcow2"} }、 ]
デフォルト設定は他の設定セットによって継承されます。これは、 inherit_default_properties
false
に設定することでブロックできます。
コントローラー テンプレートのデフォルトは、テンプレート プロパティが定義されていない場合、またはデフォルト設定から継承されていない場合に使用されます。
md5sum
フィールドの名前がchecksum
に変更されました。以前の形式バージョンからの移行を容易にするために、 md5sum
フィールドは引き続き受け入れられます。
将来の開発のための新しいオプションのchecksum_type
フィールド。現時点では、デフォルトで唯一のチェックサム タイプは MD5 のままです。
アプライアンスおよびバージョン レベルの新しいオプションのdefault_username
およびdefault_password
フィールド。
一部のアプライアンスにダウンロード/解凍手順を与えるための、アプライアンスおよびバージョン レベルの新しいオプションのinstallation_instructions
フィールド。
新しいオプションのcompression_target
フィールドは、将来の開発でcompressionフィールドとともに使用されます。
バージョン セクションのidlepc
フィールドは、 dynamips
テンプレート タイプのtemplate_properties
に移動されました。
first_port_name
、 port_name_format
、 port_segment_size
、およびlinked_clone
フィールドは、qemu テンプレート タイプのtemplate_properties
に移動されます (これらのフィールドは Qemu テンプレートでのみ有効です)。
qemu のarch
フィールドは、コントローラー側のテンプレート プロパティに一致するようにplatform
という名前に変更されました。
kvm
フィールドは削除され、不要になりました。アプライアンスのインストールでは、利用可能なサーバーとその機能 (kvm を実行できるなど) を考慮すべきではありません。
category
、 usage
、およびsymbol
フィールドは、任意のtemplate_properties
で定義できます。デフォルトはアプライアンス レベルまたはバージョン レベルです (テンプレート プロパティがまだ定義されていない場合は、 template_properties
に挿入されます)。
インストールされているアプライアンスのバージョンは、テンプレートのversion
フィールドに挿入されます (コントローラー バージョン >= v3.0 のみ)
すべてのテンプレート プロパティにname
とdefault_name_format
フィールドを追加します。
console_resolution
、 extra_hosts
、およびextra_volumes
を Docker テンプレートのプロパティに追加します。
Qemu テンプレート プロパティのconsole_type
でspice+agent
許可します。
完全な例
{"appliance_id": "709c2a9b-5dc3-4362-b147-fb848a0df963","name": "私のアプライアンス","category": "router","description": "これは私の新しいアプライアンスです","vendor_name": "Cisco","vendor_url": "http://www.cisco.com/","documentation_url": "https://www.cisco.com/c/en/us/support/routing/xxx","product_name": "アプライアンス製品 xxx" ,"product_url": "https://www.cisco.com/c/en/us/products/xxx/index.html","registry_version":8,"status": "experimental","maintainer": "GNS3 チーム","maintainer_email": "[email protected]","installation_instructions": "これはこのアプライアンスのインストール方法です","usage": "これは私のアプライアンス","シンボル": "router.svg","default_username": "cisco","default_password": "管理者","設定": [ {"name": "デフォルトのテンプレート設定","default": true,"template_type": "qemu","template_properties": {"symbol": "multilayer_router.svg","first_port_name": "ethernet0","port_name_format": "ethernet{port1}","adapter_type": "e1000","adapters": 2,"ram": 4096, "cpus": 1,"hda_disk_interface": "scsi","プラットフォーム": "x86_64","console_type": "vnc","boot_priority": "cd","options": ""} }、 {"name": "バージョン 7.10.2 のカスタム設定","template_type": "qemu","inherit_default_properties": false,"template_properties": {"アダプター": 4、"RAM": 8192、"CPU": 1} } ]、"画像": [ {"ファイル名": "file.iso","バージョン": "7.10.2","チェックサム": "ef8712e655fcbc92dc1a1551ee2e4a80","チェックサムタイプ": "md5","ファイルサイズ": 1287245824,"ダウンロード_url": "https://software.cisco.com/download/home/286307342/type/286307754/release/7.10.2"}、 {"ファイル名": "file2.iso"、"バージョン": "6.10.4"、"チェックサム": "68232f77da8f78cdc9aa6f3266a4d4c0"、"ファイルサイズ": 3949459594、"ダウンロード URL": "https://software.cisco.com/download/home/286307342/type/286307754/release/6.10.4"}、 {"ファイル名": "empty100G.qcow2","バージョン": "1.0","md5sum": "1e6409a4523ada212dea2ebc50e50a65","ファイルサイズ": 198656,"ダウンロード URL": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/","direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu% 20ディスク/空の100G.qcow2/ダウンロード"} ]、"バージョン": [ {"name": "7.10.2","settings": "バージョン 7.10.2 のカスタム設定","images": {"hda_disk_image": "empty100G.qcow2","cdrom_image": "file.iso"} }、 {"name": "6.10.4","default_username": "admin123","default_password": "admin123","installation_instructions": "このバージョンをインストールする方法は次のとおりです","usage": "これは次の方法ですこのバージョンを使用してください","symbol": "ethernet_switch.svg","images": {"hda_disk_image": "empty100G.qcow2","cdrom_image": "file2.iso"} } ] }
symbols
ディレクトリで例を探してください。
このリポジトリには、GNS3 チームによって公開され、GNS3 のアプライアンスとして使用できる Docker コンテナのソースも含まれています。
すべてのツールには python3 が必要で、依存関係は pip を使用してインストールできます。
python3 -m pip install -r requirements.txt
python3 check.py
python3 check_urls.py
python3 new_appliance.py
これにより、すべてのアプライアンスの JSON がインデントされ、JSON スキーマと同じ順序でキーが並べ替えられます。
python3 prettify_appliances.py