이는 사용자가 기기 및 기호를 공유할 수 있는 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에서는 어플라이언스 스키마에 많은 변경 사항이 도입되었습니다. 가장 중요한 것은 다음과 같습니다:
Qemu 템플릿 속성에서 uefi_boot_mode
속성을 지원합니다.
다양한 이미지 버전에 사용할 수 있는 여러 설정 세트가 있을 수 있습니다. 다음과 같은 경우 기본 설정이 지정됩니다.
true
로 설정된 default
필드가 존재합니다.
한 세트만 존재합니다.
메모
GNS3에 생성할 템플릿(qemu, iou, dynamips 또는 docker)을 알려주려면 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 설정","template_type": "qemu","template_properties": {"플랫폼": "i386","어댑터": 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
필드입니다.
버전 섹션의 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
필드를 추가합니다.
Docker 템플릿 속성에 console_resolution
, extra_hosts
및 extra_volumes
추가하세요.
Qemu 템플릿 속성에 대한 console_type
에서 spice+agent
허용합니다.
전체 예시
{"appliance_id": "709c2a9b-5dc3-4362-b147-fb848a0df963","name": "내 어플라이언스","category": "라우터","description": "이것은 내 새 어플라이언스입니다","vendor_name": "시스코","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": "이것이 내 사용 방법입니다. 기기","symbol": "router.svg","default_username": "cisco","default_password": "admin","settings": [ {"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,"cpus": 1} } ],"이미지": [ {"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"}, {"파일 이름": "file2.iso","버전": "6.10.4","체크섬": "68232f77da8f78cdc9aa6f3266a4d4c0","파일 크기": 3949459594,"download_url": "https://software.cisco.com/download/home/286307342/type/286307754/release/6.10.4"}, {"파일 이름": "empty100G.qcow2","버전": "1.0","md5sum": "1e6409a4523ada212dea2ebc50e50a65","파일 크기": 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% 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