これは、ユーザーがアプライアンスとシンボルを共有できる 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 では、アプライアンスのスキーマに多くの変更が導入されました。最も重要なものは次のとおりです。
uefi_boot_mode
プロパティのサポート。true
に設定されたdefault
フィールドが存在します注意事項
どのテンプレート (qemu、iou、dynamips または docker) を作成するかを GNS3 に指示するには、 template_type
フィールドを追加する必要があります。現時点では、異なるテンプレート タイプの混合はサポートされていません。すべてのテンプレート固有のプロパティは、 template_properties
フィールドで定義されます。
例
"settings" : [
{
"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 settings " ,
"template_type" : " qemu " ,
"template_properties" : {
"platform" : " arm " ,
"ram" : 512
}
}
],
"versions" : [
{
"name" : " 1.0 " ,
"images" : {
"hda_disk_image" : " disk1.qcow2 "
}
},
{
"name" : " 2.0 " ,
"settings" : " i386 settings " ,
"images" : {
"hda_disk_image" : " disk2.qcow2 "
}
},
{
"name" : " 3.0 " ,
"settings" : " ARM settings " ,
"images" : {
"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 テンプレートでのみ有効です)。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 テンプレートのプロパティに追加します。console_type
でspice+agent
許可します。完全な例
{
"appliance_id" : " 709c2a9b-5dc3-4362-b147-fb848a0df963 " ,
"name" : " My appliance " ,
"category" : " router " ,
"description" : " This is my new appliance " ,
"vendor_name" : " Cisco " ,
"vendor_url" : " http://www.cisco.com/ " ,
"documentation_url" : " https://www.cisco.com/c/en/us/support/routing/xxx " ,
"product_name" : " Appliance product xxx " ,
"product_url" : " https://www.cisco.com/c/en/us/products/xxx/index.html " ,
"registry_version" : 8 ,
"status" : " experimental " ,
"maintainer" : " GNS3 Team " ,
"maintainer_email" : " [email protected] " ,
"installation_instructions" : " This is how to install this appliance " ,
"usage" : " This is how to use my appliance " ,
"symbol" : " router.svg " ,
"default_username" : " cisco " ,
"default_password" : " admin " ,
"settings" : [
{
"name" : " Default template settings " ,
"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 " ,
"platform" : " x86_64 " ,
"console_type" : " vnc " ,
"boot_priority" : " cd " ,
"options" : " "
}
},
{
"name" : " Custom settings for version 7.10.2 " ,
"template_type" : " qemu " ,
"inherit_default_properties" : false ,
"template_properties" :
{
"adapters" : 4 ,
"ram" : 8192 ,
"cpus" : 1
}
}
],
"images" : [
{
"filename" : " file.iso " ,
"version" : " 7.10.2 " ,
"checksum" : " ef8712e655fcbc92dc1a1551ee2e4a80 " ,
"checksum_type" : " md5 " ,
"filesize" : 1287245824 ,
"download_url" : " https://software.cisco.com/download/home/286307342/type/286307754/release/7.10.2 "
},
{
"filename" : " file2.iso " ,
"version" : " 6.10.4 " ,
"checksum" : " 68232f77da8f78cdc9aa6f3266a4d4c0 " ,
"filesize" : 3949459594 ,
"download_url" : " https://software.cisco.com/download/home/286307342/type/286307754/release/6.10.4 "
},
{
"filename" : " empty100G.qcow2 " ,
"version" : " 1.0 " ,
"md5sum" : " 1e6409a4523ada212dea2ebc50e50a65 " ,
"filesize" : 198656 ,
"download_url" : " https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/ " ,
"direct_download_url" : " https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty100G.qcow2/download "
}
],
"versions" : [
{
"name" : " 7.10.2 " ,
"settings" : " Custom settings for version 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" : " This is how to install this version " ,
"usage" : " This is how to use this version " ,
"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