이는 사용자가 기기 및 기호를 공유할 수 있는 GNS3 레지스트리입니다.
새로운 어플라이언스에 대한 풀 요청을 환영합니다.
새 어플라이언스 파일에서 참조되는 이미지/디스크와 관련하여 당사는 잘 알려진 공급업체 웹사이트 또는 기타 신뢰할 수 있는 소스 웹사이트를 가리키는 링크를 허용합니다.
새로운 기여의 경우 어플라이언스 종류, 제출자, 특히 이미지 구축 스크립트가 제공되는 경우(Qemu 어플라이언스에는 패커 스크립트가 권장됨) 등 다양한 기준에 따라 링크를 허용합니다. 그런 다음 우리 측에서 구축하고 GNS3 Sourceforge 계정에 이미지를 확인하고 업로드합니다.
Docker 어플라이언스의 경우 Dockerfile을 제공하세요. 그런 다음 Docker 허브에 이미지를 빌드하고 푸시합니다.
새 기기를 만드는 방법에는 두 가지가 있습니다.
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/cpus qemu/hd?_disk_interface: sata 버전/이미지/bios_image |
5 | 2.1.0 | qemu/console_type: 향신료 |
6 | 2.2.0 | qemu/custom_adapters qemu/console_type: 향신료+에이전트 모두/console_type: 없음 |
7 | 2.2.36 | qemu/tpm |
8 | 2.2.43 | 아래를 참조하세요 |
스키마 버전 8에서는 어플라이언스 스키마에 많은 변경 사항이 도입되었습니다. 가장 중요한 것은 다음과 같습니다:
uefi_boot_mode
속성을 지원합니다.true
로 설정된 default
필드가 존재합니다.메모
GNS3에 생성할 템플릿(qemu, iou, dynamips 또는 docker)을 알려주려면 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
필드입니다.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
추가하세요.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