mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-08-29 05:20:14 +03:00
Compare commits
233 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a3e85b7041 | ||
|
|
80da7da515 | ||
|
|
d2f73cae28 | ||
|
|
da2942c139 | ||
|
|
5485eef3ad | ||
|
|
ccf4b3f9db | ||
|
|
b797981a65 | ||
|
|
a225622a6e | ||
|
|
3f19ede8d2 | ||
|
|
668169d1cc | ||
|
|
66b39f0616 | ||
|
|
7efef28d4f | ||
|
|
d9140d2f8c | ||
|
|
e2657febf0 | ||
|
|
d161f1997d | ||
|
|
37490f2c74 | ||
|
|
9b1d7d44bf | ||
|
|
9562c9d828 | ||
|
|
6c2a980afc | ||
|
|
00ac2c19bd | ||
|
|
6742d09a70 | ||
|
|
41e8777609 | ||
|
|
20868aa233 | ||
|
|
27c6535ad0 | ||
|
|
c75e1ba0be | ||
|
|
c1e845cb22 | ||
|
|
803cc17410 | ||
|
|
f088c55cfe | ||
|
|
8a8864c90b | ||
|
|
1986bce538 | ||
|
|
c528d2cd95 | ||
|
|
7529ee4168 | ||
|
|
61c7f4469d | ||
|
|
896b4fc56a | ||
|
|
a58fa8602b | ||
|
|
d8f8b6ec70 | ||
|
|
b256d5a5f6 | ||
|
|
ea09cc2724 | ||
|
|
e3e0a511b6 | ||
|
|
0ecaab4da0 | ||
|
|
40644f33e6 | ||
|
|
809d4cc609 | ||
|
|
89e4e836c9 | ||
|
|
69ddcf553f | ||
|
|
1e1ec5aae8 | ||
|
|
e30e6435ca | ||
|
|
77700f361c | ||
|
|
ad4aa1d49b | ||
|
|
8499ed3d65 | ||
|
|
db605120fa | ||
|
|
9106ac4522 | ||
|
|
713dbb7f45 | ||
|
|
c3d23d7cae | ||
|
|
a1edf74fcf | ||
|
|
59a95edd3d | ||
|
|
e34a7afe79 | ||
|
|
2dcbe0f1c2 | ||
|
|
b1c8ce8b58 | ||
|
|
b304511b5e | ||
|
|
163d4e0534 | ||
|
|
72f64ee60b | ||
|
|
cd03abb7ed | ||
|
|
6551bf56f8 | ||
|
|
de0d050689 | ||
|
|
d59709071a | ||
|
|
ae3ae46151 | ||
|
|
58fc6a8478 | ||
|
|
d9b8d0d1ff | ||
|
|
2b0b31b402 | ||
|
|
4a47151526 | ||
|
|
adeec10188 | ||
|
|
e747deae88 | ||
|
|
264fffbc6c | ||
|
|
a295d653b8 | ||
|
|
c6eec799fb | ||
|
|
8503840307 | ||
|
|
c4dbecc1ea | ||
|
|
3d71967983 | ||
|
|
161e016594 | ||
|
|
82f795c9ee | ||
|
|
2670c68467 | ||
|
|
6f7730c455 | ||
|
|
274cef6cf5 | ||
|
|
fbea9b655d | ||
|
|
6869f2d71d | ||
|
|
e871a1aed6 | ||
|
|
b222fba42c | ||
|
|
f9957b1d90 | ||
|
|
bc6374f7fc | ||
|
|
c739a16d70 | ||
|
|
7684ce60ce | ||
|
|
4701712a86 | ||
|
|
e5ff9e7f00 | ||
|
|
7adb0c5226 | ||
|
|
667833dda5 | ||
|
|
646ff00ade | ||
|
|
ffcfa4ccb1 | ||
|
|
5c63928636 | ||
|
|
0624c1b945 | ||
|
|
b658f7ff68 | ||
|
|
cd51afb01f | ||
|
|
14ffa2c2d6 | ||
|
|
09aaf43dd1 | ||
|
|
590eedeb46 | ||
|
|
d3710e8e9a | ||
|
|
0da1a6639a | ||
|
|
729eb43115 | ||
|
|
4d85e517b4 | ||
|
|
3b95859b79 | ||
|
|
47cc827c1f | ||
|
|
715b7032bc | ||
|
|
bc1729b255 | ||
|
|
3dd4184193 | ||
|
|
2b4a05eedd | ||
|
|
898a9ce208 | ||
|
|
dd87ccff4d | ||
|
|
78c7d36b1c | ||
|
|
44d4a426b5 | ||
|
|
3273f7e992 | ||
|
|
d2d19b43c2 | ||
|
|
fe2014854e | ||
|
|
ebe4fdc5b5 | ||
|
|
43d7e8a437 | ||
|
|
833b5a9ea8 | ||
|
|
05dda0117f | ||
|
|
6f0dfecc3d | ||
|
|
2414b7a968 | ||
|
|
7b20314edb | ||
|
|
193f470eaf | ||
|
|
4335fd7ce0 | ||
|
|
ef2cf277c1 | ||
|
|
66db267e27 | ||
|
|
27fbe37375 | ||
|
|
7b3fd4450e | ||
|
|
58d1e8f0c5 | ||
|
|
8ce690ce78 | ||
|
|
c676a5bf82 | ||
|
|
37f17209d3 | ||
|
|
f24134a8f5 | ||
|
|
1f2036defd | ||
|
|
f2aaf5ab38 | ||
|
|
32f48e555c | ||
|
|
942f021b58 | ||
|
|
4dc321454e | ||
|
|
3a24318694 | ||
|
|
bae6221991 | ||
|
|
c67ba6da0d | ||
|
|
4d23ca221f | ||
|
|
09eab9529a | ||
|
|
3bb23708fc | ||
|
|
672b3c052b | ||
|
|
bfe7b7a735 | ||
|
|
230866890e | ||
|
|
355cfb7571 | ||
|
|
8dddfe056e | ||
|
|
9c33827de3 | ||
|
|
a34fa53823 | ||
|
|
565a76ae27 | ||
|
|
dc9c3b1c5d | ||
|
|
a394fb71dc | ||
|
|
6cbf3baa1b | ||
|
|
10322135e3 | ||
|
|
12d1d04462 | ||
|
|
8b4c2f5e90 | ||
|
|
aaffc731ee | ||
|
|
5ce55aff02 | ||
|
|
aa1c0bb557 | ||
|
|
25bc2dce57 | ||
|
|
7e35d164dc | ||
|
|
8666ffaff3 | ||
|
|
020f6a123d | ||
|
|
c2c89b0ff3 | ||
|
|
ef3570dc95 | ||
|
|
add8c4e8a2 | ||
|
|
c05e6f4de4 | ||
|
|
e32576d5ed | ||
|
|
bd3657d8f3 | ||
|
|
4418d6bb2b | ||
|
|
dbcafdd314 | ||
|
|
4dd1803a70 | ||
|
|
99272fb7e0 | ||
|
|
a24d2e25ed | ||
|
|
a5a663bc99 | ||
|
|
2b7eb91694 | ||
|
|
684770a220 | ||
|
|
f6546bf1de | ||
|
|
355b97398b | ||
|
|
6242a0be80 | ||
|
|
18413c923c | ||
|
|
ffd628902c | ||
|
|
ca34053125 | ||
|
|
d06f93e772 | ||
|
|
0e89ff56a8 | ||
|
|
f00f21c4bd | ||
|
|
2e9127449c | ||
|
|
483719568f | ||
|
|
018598a300 | ||
|
|
e262a46cfd | ||
|
|
00bf1c028b | ||
|
|
21ebb934f4 | ||
|
|
2ecd2cfe3b | ||
|
|
ce4b3091dd | ||
|
|
f722816849 | ||
|
|
4cb38b23eb | ||
|
|
f3e46227d8 | ||
|
|
185cd01e19 | ||
|
|
369fcaa512 | ||
|
|
7b7d3d676f | ||
|
|
d1186b2acc | ||
|
|
bd58196817 | ||
|
|
ccc8974d92 | ||
|
|
0090ff3722 | ||
|
|
2c727c6bd2 | ||
|
|
13b0caef4f | ||
|
|
8ed1fa6ad5 | ||
|
|
a689a55937 | ||
|
|
1c0b0ae423 | ||
|
|
ad7813d04b | ||
|
|
685bf88005 | ||
|
|
a1090a3da8 | ||
|
|
c8e5b41f39 | ||
|
|
94b5d3e636 | ||
|
|
df56955bf0 | ||
|
|
423d3fd82b | ||
|
|
86fbae00e1 | ||
|
|
91e9fa1cbc | ||
|
|
6314dd3c35 | ||
|
|
e94b55e3bf | ||
|
|
6c521b5f7a | ||
|
|
1a6a729736 | ||
|
|
77c356c82c | ||
|
|
b4819b5500 | ||
|
|
11a9451098 |
57
.dockerignore
Normal file
57
.dockerignore
Normal file
@ -0,0 +1,57 @@
|
||||
# Version control
|
||||
.git
|
||||
.gitignore
|
||||
.gitattributes
|
||||
|
||||
# CI / GitHub / Docker
|
||||
.github
|
||||
.whitesource
|
||||
.dockerignore
|
||||
|
||||
# Editor / IDE
|
||||
.idea
|
||||
.vscode
|
||||
.settings
|
||||
.project
|
||||
.pydevproject
|
||||
.mr.developer.cfg
|
||||
|
||||
# Claude
|
||||
.claude
|
||||
|
||||
# Python build artifacts
|
||||
__pycache__
|
||||
*.py[cod]
|
||||
*.so
|
||||
*.egg
|
||||
*.egg-info
|
||||
build/
|
||||
dist/
|
||||
eggs/
|
||||
parts/
|
||||
var/
|
||||
sdist/
|
||||
develop-eggs/
|
||||
.installed.cfg
|
||||
lib/
|
||||
lib64/
|
||||
.ropeproject
|
||||
|
||||
# Test & coverage
|
||||
tests/
|
||||
pytest.ini
|
||||
.coveragerc
|
||||
.coverage
|
||||
.coverage*
|
||||
.tox
|
||||
.cache
|
||||
.pytest_cache
|
||||
nosetests.xml
|
||||
|
||||
# Virtualenv
|
||||
env/
|
||||
venv/
|
||||
.venv/
|
||||
|
||||
# Editor backup files
|
||||
*~
|
||||
40
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
40
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
name: Bug report
|
||||
description: Report a bug so we can fix it.
|
||||
title: "[Bug]: "
|
||||
labels: ["bug"]
|
||||
body:
|
||||
- type: textarea
|
||||
id: what-happened
|
||||
attributes:
|
||||
label: What happened?
|
||||
description: A clear description of the bug.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: reproduce
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
description: How can we reproduce this? Numbered steps if possible.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected
|
||||
attributes:
|
||||
label: Expected behavior
|
||||
description: What did you expect to happen instead?
|
||||
- type: input
|
||||
id: version
|
||||
attributes:
|
||||
label: Version / commit
|
||||
description: Which version or commit hash are you on?
|
||||
- type: textarea
|
||||
id: environment
|
||||
attributes:
|
||||
label: Environment
|
||||
description: OS, runtime version, anything else that might be relevant.
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Relevant logs
|
||||
description: Paste any relevant log output. This is automatically rendered as code.
|
||||
render: shell
|
||||
@ -10,7 +10,7 @@ jobs:
|
||||
name: Add issue to project
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/add-to-project@v1.0.1
|
||||
- uses: actions/add-to-project@v2
|
||||
with:
|
||||
project-url: https://github.com/orgs/GNS3/projects/3
|
||||
github-token: ${{ secrets.ADD_NEW_ISSUES_TO_PROJECT }}
|
||||
|
||||
6
.github/workflows/codeql-analysis.yml
vendored
6
.github/workflows/codeql-analysis.yml
vendored
@ -56,11 +56,11 @@ jobs:
|
||||
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v3
|
||||
uses: github/codeql-action/init@v4
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
build-mode: ${{ matrix.build-mode }}
|
||||
@ -88,6 +88,6 @@ jobs:
|
||||
exit 1
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v3
|
||||
uses: github/codeql-action/analyze@v4
|
||||
with:
|
||||
category: "/language:${{matrix.language}}"
|
||||
|
||||
68
.github/workflows/docker-build.yml
vendored
Normal file
68
.github/workflows/docker-build.yml
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
name: Build and Push Docker Image
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
tags:
|
||||
- v2.*
|
||||
- v3.*
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
DOCKERHUB_ORG: ${{ vars.DOCKERHUB_ORG || 'gns3' }}
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Check for stable release
|
||||
id: ver
|
||||
run: |
|
||||
TAG="${GITHUB_REF_NAME#v}"
|
||||
echo "tag=$TAG" >> $GITHUB_OUTPUT
|
||||
if echo "$TAG" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+$'; then
|
||||
echo "stable=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "stable=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Set lowercase image name vars
|
||||
if: steps.ver.outputs.stable == 'true'
|
||||
id: names
|
||||
run: |
|
||||
echo "owner=$(echo '${{ github.repository_owner }}' | tr '[:upper:]' '[:lower:]')" >> "$GITHUB_OUTPUT"
|
||||
echo "repo=$(echo '${{ github.event.repository.name }}' | tr '[:upper:]' '[:lower:]')" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
if: steps.ver.outputs.stable == 'true'
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
if: steps.ver.outputs.stable == 'true'
|
||||
uses: docker/login-action@v4
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Login to Docker Hub
|
||||
if: steps.ver.outputs.stable == 'true'
|
||||
uses: docker/login-action@v4
|
||||
with:
|
||||
registry: docker.io
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Build and push
|
||||
if: steps.ver.outputs.stable == 'true'
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
tags: |
|
||||
${{ env.DOCKERHUB_ORG }}/${{ github.event.repository.name }}:${{ steps.ver.outputs.tag }}
|
||||
${{ env.DOCKERHUB_ORG }}/${{ github.event.repository.name }}:latest
|
||||
ghcr.io/${{ steps.names.outputs.owner }}/${{ steps.names.outputs.repo }}:${{ steps.ver.outputs.tag }}
|
||||
ghcr.io/${{ steps.names.outputs.owner }}/${{ steps.names.outputs.repo }}:latest
|
||||
@ -12,11 +12,11 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: "gh-pages"
|
||||
- uses: actions/setup-python@v5
|
||||
- uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: 3.8
|
||||
- name: Merge changes from 3.0 branch
|
||||
|
||||
10
.github/workflows/testing.yml
vendored
10
.github/workflows/testing.yml
vendored
@ -18,16 +18,12 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
os: ["ubuntu-latest"]
|
||||
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
|
||||
#include:
|
||||
# only test with Python 3.10 on Windows
|
||||
# - os: windows-latest
|
||||
# python-version: "3.10"
|
||||
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v7
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install dependencies
|
||||
|
||||
100
CHANGELOG
100
CHANGELOG
@ -1,9 +1,107 @@
|
||||
# Change Log
|
||||
|
||||
## 2.2.61 30/07/2026
|
||||
|
||||
* Sync appliances
|
||||
* fix(import): unvalidated symlink creation in import_project
|
||||
* fix(qemu): fix addition of QEMU RNG device causes interface names to change
|
||||
* fix(qemu): remove trailing space from RNG object argument
|
||||
* fix: do not start nodes when deleting a project
|
||||
* fix: correct always-true state check in DockerVM.stop()
|
||||
|
||||
## 2.2.60 15/07/2026
|
||||
|
||||
* Sync appliances
|
||||
* Only set IOU images to be executable when importing images
|
||||
* fix(import): project import does not move images symlinks into place
|
||||
* Search for system UEFI that is compatible with Python < 3.12
|
||||
* Add OVMF firmware directory configuration
|
||||
* Automatically add a Random Number Generator (RNG) device when using uefi option is enabled
|
||||
* fix(docker): handle container name conflict automatically
|
||||
* fix: gns3-server crashes on startup if "Open this project in the background" is active but there is a problem with that project
|
||||
* Handle HTTPNotFound exception when retrieving compute status
|
||||
* Fix: Check compute connectivity before open() during project deletion
|
||||
* API endpoints to manage base configuration files for templates
|
||||
|
||||
## 2.2.59 08/05/2026
|
||||
|
||||
* Sync appliances
|
||||
* Fix snapshot restore does not work after export/import of project
|
||||
* Warn to use 64-bit IOU images. Fixes #2716 32-bit IOU image support has been removed from the GNS3 VM.
|
||||
* Fix telnet console silent-proxy hang on non-ConnectionError exit (#2344)
|
||||
|
||||
## 2.2.58.1 12/04/2026
|
||||
|
||||
* Sync appliances
|
||||
|
||||
## 2.2.58 10/04/2026
|
||||
|
||||
* Bundle web-ui v2.2.58
|
||||
* Sync appliances
|
||||
* Snapshot refactoring
|
||||
|
||||
## 2.2.57 23/03/2026
|
||||
|
||||
* feat(telnet_server): improve error handling and connection management
|
||||
* Deactivate 'use default IOU values' by default and update RAM/NVRAM values
|
||||
* Make sure the node shows as stopped when the wrap console cannot be stopped
|
||||
* tests(controller,port): short_name finishes successfully when port name is None
|
||||
* fix(controller,port): handle None port name to prevent TypeError in short_name method
|
||||
* fix: busybox static link detection on Alpine/musl
|
||||
* Take populated disks into consideration when calculating PCI device ID
|
||||
|
||||
## 2.2.56.1 28/01/2026
|
||||
|
||||
* Fix telnet keepalive options on macOS
|
||||
* Upgrade dependencies
|
||||
* Drop Python 3.8 support
|
||||
|
||||
## 2.2.56 21/01/2026
|
||||
|
||||
* Set default location of udhcpc in "/etc/network/udhcpc". Fixes #2582
|
||||
* Upgrade pywin32 to v311
|
||||
|
||||
## 2.2.55 19/11/2025
|
||||
|
||||
* Docker API version requirements and process to handle older daemons
|
||||
* Use docker_name property when creating a container
|
||||
* Set name of container in Docker
|
||||
* Support for Python 3.14
|
||||
* Enable ip cef in IOU L2 and IOU L3 base configs
|
||||
* Only build and push Docker image when releasing a new version
|
||||
* Fix pushing Docker image to Docker hub
|
||||
* Update security issues in README.md. Fixes #2535
|
||||
* Add missing 'nat' template type in schema. Fixes #2529
|
||||
* Resolve deprecation warnings of regex library
|
||||
|
||||
## 2.2.54 21/04/2025
|
||||
|
||||
* Bundle web-ui v2.2.54
|
||||
* Add new method to find the IP address of a VBox GNS3 VM + allow NAT Network
|
||||
* Add edk2-stable202502 UEFI firmwares and try to first use firmwares from the ovmf package if installed. Fixes #2494
|
||||
* Try to detect swtpm and AppArmor issue. Ref https://github.com/GNS3/gns3-gui/issues/3725
|
||||
* Fix Docker logs decoding. Ref #2522
|
||||
* Add delay after starting a Docker container and adding connections in uBridge. Ref #2522
|
||||
* Fix TypeError when reading Docker container logs. Ref #2522
|
||||
* Replace "Docker hub" by "Docker repository" because it is possible to use different repositories
|
||||
* Upgrade dependencies
|
||||
* Improvements for remote-install.sh
|
||||
|
||||
|
||||
## 2.2.53 21/01/2025
|
||||
|
||||
* Bundle web-ui v2.2.53
|
||||
* Add more information when patching .vbox file. Ref https://github.com/GNS3/gns3-gui/issues/3542
|
||||
* Increase timeout to run compute HTTP queries. Fixes #2461
|
||||
* Use 'allow_methods="*"' in aiohttp_cors.ResourceOptions(). Fixes #2459
|
||||
* Upgrade dependencies
|
||||
* Update remote-install.sh to support a custom repository and the deb822 source format
|
||||
* Fix: do not use the iourc file if IOU licence check is not enabled
|
||||
|
||||
|
||||
## 2.2.52 02/12/2024
|
||||
|
||||
* Bundle web-ui v2.2.52
|
||||
* Sync appliances
|
||||
* Remove restrictions based on file extension when listing images and fix ELF header checks
|
||||
* Fix use project name instead of ID for fast duplication when running local server. Fixes #2446
|
||||
* Overwrite user resources when the originals have changed.
|
||||
|
||||
23
Dockerfile
23
Dockerfile
@ -1,29 +1,32 @@
|
||||
# Dockerfile for GNS3 server development
|
||||
|
||||
FROM ubuntu:18.04
|
||||
FROM ubuntu:24.04
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Set the locale
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LANGUAGE en_US:en
|
||||
ENV LC_ALL en_US.UTF-8
|
||||
ENV LANG=en_US.UTF-8
|
||||
ENV LANGUAGE=en_US:en
|
||||
ENV LC_ALL=en_US.UTF-8
|
||||
|
||||
# this environment is externally managed
|
||||
ENV PIP_BREAK_SYSTEM_PACKAGES=1
|
||||
|
||||
RUN apt-get update && apt-get install -y software-properties-common
|
||||
RUN add-apt-repository ppa:gns3/ppa
|
||||
RUN apt-get update && apt-get install -y \
|
||||
locales \
|
||||
python3-pip \
|
||||
python3-dev \
|
||||
python3-dev \
|
||||
qemu-system-x86 \
|
||||
qemu-kvm \
|
||||
libvirt-bin \
|
||||
x11vnc
|
||||
libvirt-daemon-system libvirt-clients \
|
||||
x11vnc
|
||||
|
||||
RUN locale-gen en_US.UTF-8
|
||||
|
||||
# Install uninstall to install dependencies
|
||||
RUN apt-get install -y vpcs ubridge
|
||||
RUN apt-get install -y vpcs ubridge dynamips
|
||||
|
||||
ADD . /server
|
||||
WORKDIR /server
|
||||
@ -32,4 +35,4 @@ RUN pip3 install --no-cache-dir -r /server/requirements.txt
|
||||
|
||||
EXPOSE 3080
|
||||
|
||||
CMD python3 -m gns3server
|
||||
CMD [ "python3", "-m", "gns3server", "--port", "3080" ]
|
||||
|
||||
@ -112,6 +112,12 @@ For development, you can run the GNS3 server in a container
|
||||
bash scripts/docker_dev_server.sh
|
||||
```
|
||||
|
||||
#### use Docker Compose
|
||||
|
||||
``` {.bash}
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### Run as daemon (Unix only)
|
||||
|
||||
You will find init sample scripts for various systems inside the init
|
||||
@ -253,5 +259,4 @@ py.test --cov-report term-missing --cov=gns3server
|
||||
Security issues
|
||||
---------------
|
||||
|
||||
Please contact us using contact form available here:
|
||||
<http://docs.gns3.com/1ON9JBXSeR7Nt2-Qum2o3ZX0GU86BZwlmNSUgvmqNWGY/index.html>
|
||||
Please use GitHub's report a vulnerability feature. More information can be found in https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability
|
||||
|
||||
7
compose.yaml
Normal file
7
compose.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
services:
|
||||
gen3-server:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
ports:
|
||||
- "8001:3080"
|
||||
@ -103,6 +103,8 @@ enable_hardware_acceleration = True
|
||||
require_hardware_acceleration = False
|
||||
; Allow unsafe additional command line options
|
||||
allow_unsafe_options = False
|
||||
; Path to the OVMF firmware directory
|
||||
ovmf_firmware_dir = "/usr/share/OVMF"
|
||||
|
||||
[VMware]
|
||||
; First vmnet interface of the range that can be managed by the GNS3 server
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
-rrequirements.txt
|
||||
|
||||
pytest==8.3.3
|
||||
flake8==7.1.0
|
||||
pytest-timeout==2.3.1
|
||||
pytest-aiohttp==1.0.5
|
||||
pytest==8.4.2 # version 8.4.2 is the last one supporting Python 3.9
|
||||
flake8==7.3.0
|
||||
pytest-timeout==2.4.0
|
||||
pytest-aiohttp==1.1.0
|
||||
|
||||
17
docs/api/examples/controller_get_templateidbaseconfig.txt
Normal file
17
docs/api/examples/controller_get_templateidbaseconfig.txt
Normal file
@ -0,0 +1,17 @@
|
||||
curl -i -X 'http://localhost:3080/v2/templates/19021f99-e36f-394d-b4a1-8aaa902ab9cc/base-config/vpcs_base_config.txt'
|
||||
|
||||
GET /v2/templates/19021f99-e36f-394d-b4a1-8aaa902ab9cc/base-config/vpcs_base_config.txt HTTP/1.1
|
||||
|
||||
HTTP/1.1 200 OK
|
||||
Connection: close
|
||||
X-Route: /v2/templates/{template_id}/base-config/{filename}
|
||||
Server: Python/3.14 GNS3/2.2.60.dev1+713dbb7f
|
||||
Content-Type: application/json
|
||||
Content-Length: 144
|
||||
Date: Mon, 18 May 2026 18:34:10 GMT
|
||||
|
||||
{
|
||||
"content": "# test config\n\ndhcp\n",
|
||||
"filename": "vpcs_base_config.txt",
|
||||
"template_id": "19021f99-e36f-394d-b4a1-8aaa902ab9cc"
|
||||
}
|
||||
44
docs/api/examples/controller_get_templatesbaseconfigs.txt
Normal file
44
docs/api/examples/controller_get_templatesbaseconfigs.txt
Normal file
@ -0,0 +1,44 @@
|
||||
curl -i -X 'http://localhost:3080/v2/templates/base-configs'
|
||||
|
||||
GET /v2/templates/base-configs HTTP/1.1
|
||||
|
||||
HTTP/1.1 200 OK
|
||||
Connection: close
|
||||
X-Route: /v2/templates/base-configs
|
||||
Server: Python/3.14 GNS3/2.2.60.dev1+713dbb7f
|
||||
Content-Type: application/json
|
||||
Content-Length: 576
|
||||
Date: Mon, 18 May 2026 18:28:53 GMT
|
||||
|
||||
[
|
||||
{
|
||||
"filename": "config1.txt"
|
||||
},
|
||||
{
|
||||
"filename": "config2.txt"
|
||||
},
|
||||
{
|
||||
"filename": "ios_base_startup-config.txt"
|
||||
},
|
||||
{
|
||||
"filename": "ios_etherswitch_startup-config.txt"
|
||||
},
|
||||
{
|
||||
"filename": "iou_l2_base_startup-config.txt"
|
||||
},
|
||||
{
|
||||
"filename": "iou_l3_base_startup-config.txt"
|
||||
},
|
||||
{
|
||||
"filename": "test_config.txt"
|
||||
},
|
||||
{
|
||||
"filename": "update_test.txt"
|
||||
},
|
||||
{
|
||||
"filename": "vpcs_base_config.txt"
|
||||
},
|
||||
{
|
||||
"filename": "vpcs_base_config2.txt"
|
||||
}
|
||||
]
|
||||
17
docs/api/examples/controller_put_templateidbaseconfig.txt
Normal file
17
docs/api/examples/controller_put_templateidbaseconfig.txt
Normal file
@ -0,0 +1,17 @@
|
||||
curl -i -X 'http://localhost:3080/v2/templates/19021f99-e36f-394d-b4a1-8aaa902ab9cc/base-config/vpcs_base_config.txt'
|
||||
|
||||
PUT /v2/templates/19021f99-e36f-394d-b4a1-8aaa902ab9cc/base-config/vpcs_base_config.txt HTTP/1.1
|
||||
|
||||
HTTP/1.1 200 OK
|
||||
Connection: close
|
||||
X-Route: /v2/templates/{template_id}/base-config/{filename}
|
||||
Server: Python/3.14 GNS3/2.2.60.dev1+713dbb7f
|
||||
Content-Type: application/json
|
||||
Content-Length: 144
|
||||
Date: Mon, 18 May 2026 18:37:57 GMT
|
||||
|
||||
{
|
||||
"content": "# test config\n\ndhcp\n",
|
||||
"filename": "vpcs_base_config.txt",
|
||||
"template_id": "19021f99-e36f-394d-b4a1-8aaa902ab9cc"
|
||||
}
|
||||
38
docs/api/v2/controller/template/templatesbaseconfigs.rst
Normal file
38
docs/api/v2/controller/template/templatesbaseconfigs.rst
Normal file
@ -0,0 +1,38 @@
|
||||
GET /v2/templates/base-configs
|
||||
------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
.. contents::
|
||||
|
||||
GET /v2/templates/base-configs
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
List all available base configuration files
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **200**: List of base configuration files returned
|
||||
|
||||
Output
|
||||
*******
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>filename</td>
|
||||
<td>string</td>
|
||||
<td>Name of the base configuration file</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
Sample session
|
||||
***************
|
||||
|
||||
.. literalinclude:: ../../../examples/controller_get_templatesbaseconfigs.txt
|
||||
@ -0,0 +1,90 @@
|
||||
/v2/templates/{template_id}/base-config/{filename}
|
||||
------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
.. contents::
|
||||
|
||||
GET /v2/templates/**{template_id}**/base-configs/**{filename}**
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
List all available base configuration files
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **200**: List of base configuration files returned
|
||||
|
||||
Output
|
||||
*******
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>filename</td>
|
||||
<td>string</td>
|
||||
<td>Name of the base configuration file</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
Sample session
|
||||
***************
|
||||
|
||||
.. literalinclude:: ../../../examples/controller_get_templateidbaseconfig.txt
|
||||
|
||||
|
||||
PUT /v2/templates/**{template_id}**/base-config/**{filename}**
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Update base configuration file content
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **200**: File updated
|
||||
- **404**: File not found
|
||||
|
||||
Input
|
||||
*******
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Mandatory</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
|
||||
<tr><td>content</td><td>✔</td><td>string</td><td>New file content</td></tr>
|
||||
|
||||
</table>
|
||||
|
||||
Output
|
||||
*******
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Mandatory</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
|
||||
<tr><td>template_id</td><td>✔</td><td>string</td><td>Template UUID</td></tr>
|
||||
<tr><td>filename</td><td>✔</td><td>string</td><td>Base configuration filename</td></tr>
|
||||
<tr><td>content</td><td>✔</td><td>string</td><td>Updated file content</td></tr>
|
||||
|
||||
</table>
|
||||
|
||||
Sample session
|
||||
***************
|
||||
|
||||
.. literalinclude:: ../../../examples/controller_put_templateidbaseconfig.txt
|
||||
@ -25,6 +25,38 @@
|
||||
"options": "-cpu host -nographic"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "AlmaLinux-10-GenericCloud-10.0-20250528.0.x86_64.qcow2",
|
||||
"version": "10.0",
|
||||
"md5sum": "e5099e33f16014b6cc851482d865720d",
|
||||
"filesize": 460062720,
|
||||
"download_url": "https://vault.almalinux.org/10.0/cloud/x86_64/images/",
|
||||
"direct_download_url": "https://vault.almalinux.org/10.0/cloud/x86_64/images/AlmaLinux-10-GenericCloud-10.0-20250528.0.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "AlmaLinux-9-GenericCloud-9.6-20250522.x86_64.qcow2",
|
||||
"version": "9.6",
|
||||
"md5sum": "ae02074389961caf08bbe44439603061",
|
||||
"filesize": 530776064,
|
||||
"download_url": "https://vault.almalinux.org/9.6/cloud/x86_64/images/",
|
||||
"direct_download_url": "https://vault.almalinux.org/9.6/cloud/x86_64/images/AlmaLinux-9-GenericCloud-9.6-20250522.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "AlmaLinux-9-GenericCloud-9.5-20241120.x86_64.qcow2",
|
||||
"version": "9.5",
|
||||
"md5sum": "cb48bc1c609a1d3d62f48397acdd038e",
|
||||
"filesize": 490995712,
|
||||
"download_url": "https://vault.almalinux.org/9.5/cloud/x86_64/images/",
|
||||
"direct_download_url": "https://vault.almalinux.org/9.5/cloud/x86_64/images/AlmaLinux-9-GenericCloud-9.5-20241120.x86_64"
|
||||
},
|
||||
{
|
||||
"filename": "AlmaLinux-9-GenericCloud-9.4-20240805.x86_64.qcow2",
|
||||
"version": "9.4",
|
||||
"md5sum": "7c5040c044a989c524d40824cebb4a4d",
|
||||
"filesize": 591724544,
|
||||
"download_url": "https://vault.almalinux.org/9.4/cloud/x86_64/images/",
|
||||
"direct_download_url": "https://vault.almalinux.org/9.4/cloud/x86_64/images/AlmaLinux-9-GenericCloud-9.4-20240805.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "AlmaLinux-9-GenericCloud-9.2-20230513.x86_64.qcow2",
|
||||
"version": "9.2",
|
||||
@ -33,6 +65,14 @@
|
||||
"download_url": "https://vault.almalinux.org/9.2/cloud/x86_64/images/",
|
||||
"direct_download_url": "https://vault.almalinux.org/9.2/cloud/x86_64/images/AlmaLinux-9-GenericCloud-9.2-20230513.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "AlmaLinux-8-GenericCloud-8.9-20231128.x86_64.qcow2",
|
||||
"version": "8.9",
|
||||
"md5sum": "1afc48c798960f0c6ebb65428c0ea973",
|
||||
"filesize": 697434112,
|
||||
"download_url": "https://vault.almalinux.org/8.9/cloud/x86_64/images/",
|
||||
"direct_download_url": "https://vault.almalinux.org/8.9/cloud/x86_64/images/AlmaLinux-8-GenericCloud-8.9-20231128.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "AlmaLinux-8-GenericCloud-8.8-20230524.x86_64.qcow2",
|
||||
"version": "8.8",
|
||||
@ -59,6 +99,34 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "10.0",
|
||||
"images": {
|
||||
"hda_disk_image": "AlmaLinux-10-GenericCloud-10.0-20250528.0.x86_64.qcow2",
|
||||
"cdrom_image": "almalinux-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.6",
|
||||
"images": {
|
||||
"hda_disk_image": "AlmaLinux-9-GenericCloud-9.6-20250522.x86_64.qcow2",
|
||||
"cdrom_image": "almalinux-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.5",
|
||||
"images": {
|
||||
"hda_disk_image": "AlmaLinux-9-GenericCloud-9.5-20241120.x86_64.qcow2",
|
||||
"cdrom_image": "almalinux-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.4",
|
||||
"images": {
|
||||
"hda_disk_image": "AlmaLinux-9-GenericCloud-9.4-20240805.x86_64.qcow2",
|
||||
"cdrom_image": "almalinux-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.2",
|
||||
"images": {
|
||||
@ -66,6 +134,13 @@
|
||||
"cdrom_image": "almalinux-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "8.9",
|
||||
"images": {
|
||||
"hda_disk_image": "AlmaLinux-8-GenericCloud-8.9-20231128.x86_64.qcow2",
|
||||
"cdrom_image": "almalinux-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "8.8",
|
||||
"images": {
|
||||
|
||||
56
gns3server/appliances/alpine-cloud.gns3a
Normal file
56
gns3server/appliances/alpine-cloud.gns3a
Normal file
@ -0,0 +1,56 @@
|
||||
{
|
||||
"appliance_id": "edbaa01e-2032-4ee2-bb9f-dd5c4d84c270",
|
||||
"name": "Alpine Cloud Guest",
|
||||
"category": "guest",
|
||||
"description": "Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox.",
|
||||
"vendor_name": "Alpine Linux Development Team",
|
||||
"vendor_url": "http://alpinelinux.org",
|
||||
"vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Alpine Linux.png",
|
||||
"documentation_url": "http://wiki.alpinelinux.org",
|
||||
"product_name": "Alpine Linux",
|
||||
"product_url": "https://www.alpinelinux.org/cloud/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "\nUsername: alpine\nPassword: alpine",
|
||||
"port_name_format": "Ethernet{0}",
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 1,
|
||||
"ram": 1024,
|
||||
"hda_disk_interface": "virtio",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"boot_priority": "c",
|
||||
"kvm": "require",
|
||||
"options": "-nographic"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "generic_alpine-3.21.2-x86_64-bios-cloudinit-r0.qcow2",
|
||||
"version": "3.21.2",
|
||||
"md5sum": "b40825dff2867e0ffaffbc4c87674462",
|
||||
"filesize": 189726720,
|
||||
"download_url": "https://www.alpinelinux.org/cloud/",
|
||||
"direct_download_url": "https://dl-cdn.alpinelinux.org/alpine/v3.21/releases/cloud/generic_alpine-3.21.2-x86_64-bios-cloudinit-r0.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "alpine-cloud-init-data.iso",
|
||||
"version": "1.0",
|
||||
"md5sum": "b1b4b16cc3bf0250c0fa377c19c97683",
|
||||
"filesize": 374784,
|
||||
"download_url": "https://github.com/GNS3/gns3-registry/tree/master/cloud-init/alpine-cloud",
|
||||
"direct_download_url": "https://github.com/GNS3/gns3-registry/raw/master/cloud-init/alpine-cloud/alpine-cloud-init-data.iso"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "3.21.2",
|
||||
"images": {
|
||||
"hda_disk_image": "generic_alpine-3.21.2-x86_64-bios-cloudinit-r0.qcow2",
|
||||
"cdrom_image": "alpine-cloud-init-data.iso"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
21
gns3server/appliances/alpinet.gns3a
Normal file
21
gns3server/appliances/alpinet.gns3a
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"appliance_id": "a2209414-88a6-403b-a2e1-477a057ec954",
|
||||
"name": "AlpiNet",
|
||||
"category": "guest",
|
||||
"description": "AlpiNet is a lightweight Alpine-based networking toolbox for GNS3.\n\nCOMPREHENSIVE TOOLKIT:\n• Network: ip, ifconfig, ping, traceroute, mtr, arping, nmap, tcpdump\n• Performance: iperf, iperf3\n• HTTP/Web: curl, wget\n• TCP/UDP: netcat, socat, telnet\n• Advanced: ethtool, bridge-utils, vlan\n• Firewall: iptables, ip6tables, nftables\n• File Transfer: FTP (lftp), TFTP, SSH (scp/sftp), rsync\n• DNS: host, nslookup, dig\n• System: nano, tmux, screen, htop, bash\n• Text Tools: grep, sed, awk, jq, less\n• Compression: tar, gzip\n• Utilities: tree, file, openssl\n\nType 'alpinet-tools' in the container for the complete tool list.\n\nOptimized for network testing, troubleshooting, and education.",
|
||||
"vendor_name": "AlpiNet Project",
|
||||
"vendor_url": "https://www.alpinelinux.org/",
|
||||
"product_name": "AlpiNet",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "nazDridoy",
|
||||
"maintainer_email": "nazdridoy399@gmail.com",
|
||||
"usage": "The /root directory is persistent across restarts. Type 'alpinet-tools' to see all available utilities.",
|
||||
"symbol": "AlpiNet.svg",
|
||||
"docker": {
|
||||
"adapters": 1,
|
||||
"image": "gns3/alpinet:latest",
|
||||
"console_type": "telnet",
|
||||
"environment": "TERM=xterm"
|
||||
}
|
||||
}
|
||||
@ -2,14 +2,14 @@
|
||||
"appliance_id": "c90f3ff3-4ed2-4437-9afb-21232fa92015",
|
||||
"name": "Arista vEOS",
|
||||
"category": "multilayer_switch",
|
||||
"description": "Arista EOS\u00ae is the core of Arista cloud networking solutions for next-generation data centers and cloud networks. Cloud architectures built with Arista EOS scale to tens of thousands of compute and storage nodes with management and provisioning capabilities that work at scale. Through its programmability, EOS enables a set of software applications that deliver workflow automation, high availability, unprecedented network visibility and analytics and rapid integration with a wide range of third-party applications for virtualization, management, automation and orchestration services.\n\nArista Extensible Operating System (EOS) is a fully programmable and highly modular, Linux-based network operation system, using familiar industry standard CLI and runs a single binary software image across the Arista switching family. Architected for resiliency and programmability, EOS has a unique multi-process state sharing architecture that separates state information and packet forwarding from protocol processing and application logic.",
|
||||
"description": "Arista EOS is the core of Arista cloud networking solutions for next-generation data centers and cloud networks. Cloud architectures built with Arista EOS scale to tens of thousands of compute and storage nodes with management and provisioning capabilities that work at scale. Through its programmability, EOS enables a set of software applications that deliver workflow automation, high availability, unprecedented network visibility and analytics and rapid integration with a wide range of third-party applications for virtualization, management, automation and orchestration services.\n\nArista Extensible Operating System (EOS) is a fully programmable and highly modular, Linux-based network operation system, using familiar industry standard CLI and runs a single binary software image across the Arista switching family. Architected for resiliency and programmability, EOS has a unique multi-process state sharing architecture that separates state information and packet forwarding from protocol processing and application logic.",
|
||||
"vendor_name": "Arista",
|
||||
"vendor_url": "http://www.arista.com/",
|
||||
"documentation_url": "https://www.arista.com/assets/data/docs/Manuals/EOS-4.17.2F-Manual.pdf",
|
||||
"product_name": "vEOS",
|
||||
"product_url": "https://eos.arista.com/",
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "The login is admin, with no password by default",
|
||||
@ -29,87 +29,31 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "vEOS64-lab-4.32.0F.vmdk",
|
||||
"version": "4.32.0F",
|
||||
"md5sum": "851771260bb18ad3e90fa6956f0c6161",
|
||||
"filesize": 591724544,
|
||||
"filename": "vEOS64-lab-4.35.3F.qcow2",
|
||||
"version": "4.35.3F",
|
||||
"md5sum": "00d11e33dc4288f509441a4ab6319ca0",
|
||||
"filesize": 638910464,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS64-lab-4.31.3M.vmdk",
|
||||
"version": "4.31.3M",
|
||||
"md5sum": "7df107da137f4a4e752014d4f0e94cd3",
|
||||
"filesize": 577961984,
|
||||
"filename": "vEOS64-lab-4.33.2F.qcow2",
|
||||
"version": "4.33.2F",
|
||||
"md5sum": "fbe629a8342cd0b3b19566b9d7ef4f4f",
|
||||
"filesize": 610992128,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS64-lab-4.30.6M.vmdk",
|
||||
"version": "4.30.6M",
|
||||
"md5sum": "19721aace820b9ebf6d7ae6524803cf5",
|
||||
"filesize": 553123840,
|
||||
"filename": "vEOS64-lab-4.32.4.1M.qcow2",
|
||||
"version": "4.32.4.1M",
|
||||
"md5sum": "cd369b5ccfd87ccd83a34538681ba35f",
|
||||
"filesize": 605159424,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS64-lab-4.29.8M.vmdk",
|
||||
"version": "4.29.8M",
|
||||
"md5sum": "131888f74cd63a93894521d40eb4d0b6",
|
||||
"filesize": 548405248,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS64-lab-4.28.11M.vmdk",
|
||||
"version": "4.28.11M",
|
||||
"md5sum": "6cac0e7b04a74ee0dc358327a00accfd",
|
||||
"filesize": 513343488,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS64-lab-4.27.12M.vmdk",
|
||||
"version": "4.27.12M",
|
||||
"md5sum": "34c4f785c7fc054cda8754dd13c0d7c7",
|
||||
"filesize": 496697344,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.32.0F.vmdk",
|
||||
"version": "4.32.0F",
|
||||
"md5sum": "584b901a1249717504050e48f74fb8dd",
|
||||
"filesize": 591396864,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.31.3M.vmdk",
|
||||
"version": "4.31.3M",
|
||||
"md5sum": "a2e130697cdf8547006eebebde6eefca",
|
||||
"filesize": 590086144,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.30.6M.vmdk",
|
||||
"version": "4.30.6M",
|
||||
"md5sum": "a4467648bcfa7b19640af8a4ad3153c6",
|
||||
"filesize": 565968896,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.29.8M.vmdk",
|
||||
"version": "4.29.8M",
|
||||
"md5sum": "1952f6114a4376212c525db9ec8efd5f",
|
||||
"filesize": 558039040,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.28.11M.vmdk",
|
||||
"version": "4.28.11M",
|
||||
"md5sum": "5502df24dfc231c45afb33d6018c16d0",
|
||||
"filesize": 521338880,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.27.12M.vmdk",
|
||||
"version": "4.27.12M",
|
||||
"md5sum": "e08a97e7c1977993f947fedeb4c6ddd5",
|
||||
"filesize": 504299520,
|
||||
"filename": "vEOS64-lab-4.31.6M.qcow2",
|
||||
"version": "4.31.6M",
|
||||
"md5sum": "02fbd929de9416e1096cd2454507d6ce",
|
||||
"filesize": 590479360,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
@ -118,459 +62,35 @@
|
||||
"md5sum": "8d7e754efebca1930a93a2587ff7606c",
|
||||
"filesize": 6291456,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.26.2F.vmdk",
|
||||
"version": "4.26.2F",
|
||||
"md5sum": "de8ce9750fddb63bd3f71bccfcd7651e",
|
||||
"filesize": 475332608,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.25.3M.vmdk",
|
||||
"version": "4.25.3M",
|
||||
"md5sum": "2f196969036b4d283e86f15118d59c26",
|
||||
"filesize": 451543040,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.24.3M.vmdk",
|
||||
"version": "4.24.3M",
|
||||
"md5sum": "0a28e44c7ce4a8965f24a4a463a89b7d",
|
||||
"filesize": 455213056,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.24.2.1F.vmdk",
|
||||
"version": "4.24.2.1F",
|
||||
"md5sum": "6bab8b59ce5230e243e56f4127448fc8",
|
||||
"filesize": 455213056,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.23.4.2M.vmdk",
|
||||
"version": "4.23.4.2M",
|
||||
"md5sum": "d21cbef4e39f1e783b13a926cb54a242",
|
||||
"filesize": 454295552,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.23.0.1F.vmdk",
|
||||
"version": "4.23.0.1F",
|
||||
"md5sum": "08d52154aa11a834aef9f42bbf29f977",
|
||||
"filesize": 439484416,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.22.2.1F.vmdk",
|
||||
"version": "4.22.2.1F",
|
||||
"md5sum": "2a425bf8efe569a2bdf0e328f240cd16",
|
||||
"filesize": 426377216,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.22.0F.vmdk",
|
||||
"version": "4.22.0F",
|
||||
"md5sum": "cfcc75c2b8176cfd819afcfd6799b74c",
|
||||
"filesize": 414121984,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.21.1.1F.vmdk",
|
||||
"version": "4.21.1F",
|
||||
"md5sum": "02bfb7e53781fd44ff02357f201586d9",
|
||||
"filesize": 358809600,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.20.10M-combined.vmdk",
|
||||
"version": "4.20.10M-combined",
|
||||
"md5sum": "d1f2d650f93dbf24e04fdd2c9d62bd62",
|
||||
"filesize": 334626816,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.20.1F.vmdk",
|
||||
"version": "4.20.1F",
|
||||
"md5sum": "aadb6f3dbff28317f68cb4c4502d0db8",
|
||||
"filesize": 662044672,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.19.10M-combined.vmdk",
|
||||
"version": "4.19.10M-combined",
|
||||
"md5sum": "103daa45c33be4584cbe6adc60de46a3",
|
||||
"filesize": 324141056,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.19.10M.vmdk",
|
||||
"version": "4.19.10M",
|
||||
"md5sum": "665ed14389411ae5f16ba0a2ff84240a",
|
||||
"filesize": 637337600,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.18.10M-combined.vmdk",
|
||||
"version": "4.18.10M-combined",
|
||||
"md5sum": "e33e0ef5b8cecc84c5bb57569b36b9c6",
|
||||
"filesize": 317652992,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.18.10M.vmdk",
|
||||
"version": "4.18.10M",
|
||||
"md5sum": "1d87e9ace37fe3706dbf3e49c8d4d231",
|
||||
"filesize": 624427008,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.18.5M.vmdk",
|
||||
"version": "4.18.5M",
|
||||
"md5sum": "b1ee6268dbaf2b2276fd7a5286c7ce2b",
|
||||
"filesize": 623116288,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.18.1F.vmdk",
|
||||
"version": "4.18.1F",
|
||||
"md5sum": "9648c63185f3b793b47528a858ca4364",
|
||||
"filesize": 620625920,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.17.8M.vmdk",
|
||||
"version": "4.17.8M",
|
||||
"md5sum": "afc79a06f930ea2cc0ae3e03cbfd3f23",
|
||||
"filesize": 608829440,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.17.2F.vmdk",
|
||||
"version": "4.17.2F",
|
||||
"md5sum": "3b4845edfa77cf9aaeb9c0a005d3e277",
|
||||
"filesize": 609615872,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.16.13M.vmdk",
|
||||
"version": "4.16.13M",
|
||||
"md5sum": "4d0facf90140fc3aab031f0f8f88a32f",
|
||||
"filesize": 521404416,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.16.6M.vmdk",
|
||||
"version": "4.16.6M",
|
||||
"md5sum": "b3f7b7cee17f2e66bb38b453a4939fef",
|
||||
"filesize": 519962624,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.15.10M.vmdk",
|
||||
"version": "4.15.10M",
|
||||
"md5sum": "98e08281a9c48ddf6f3c5d62a124a20f",
|
||||
"filesize": 517079040,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.15.5M.vmdk",
|
||||
"version": "4.15.5M",
|
||||
"md5sum": "cd74bb69c7ee905ac3d33c4d109f3ab7",
|
||||
"filesize": 516030464,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.14.14M.vmdk",
|
||||
"version": "4.14.14M",
|
||||
"md5sum": "d81ba0522f4d7838d96f7985e41cdc47",
|
||||
"filesize": 422641664,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.13.16M.vmdk",
|
||||
"version": "4.13.16M",
|
||||
"md5sum": "5763b2c043830c341c8b1009f4ea9a49",
|
||||
"filesize": 404684800,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "vEOS-lab-4.13.8M.vmdk",
|
||||
"version": "4.13.8M",
|
||||
"md5sum": "a47145b9e6e7a24171c0850f8755535e",
|
||||
"filesize": 409010176,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "Aboot-veos-serial-8.0.0.iso",
|
||||
"version": "8.0.0",
|
||||
"md5sum": "488ad1c435d18c69bb8d69c7806457c9",
|
||||
"filesize": 5242880,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "4.32.0F",
|
||||
"name": "4.35.3F",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS64-lab-4.32.0F.vmdk"
|
||||
"hdb_disk_image": "vEOS64-lab-4.35.3F.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.31.3M",
|
||||
"name": "4.33.2F",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS64-lab-4.31.3M.vmdk"
|
||||
"hdb_disk_image": "vEOS64-lab-4.33.2F.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.30.6M",
|
||||
"name": "4.32.4.1M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS64-lab-4.30.6M.vmdk"
|
||||
"hdb_disk_image": "vEOS64-lab-4.32.4.1M.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.29.8M",
|
||||
"name": "4.31.6M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS64-lab-4.29.8M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.28.11M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS64-lab-4.28.11M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.27.12M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS64-lab-4.27.12M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.32.0F",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.32.0F.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.31.3M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.31.3M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.30.6M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.30.6M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.29.8M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.29.8M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.28.11M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.28.11M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.27.12M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.27.12M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.26.2F",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.26.2F.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.25.3M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.25.3M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.24.3M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.24.3M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.24.2.1F",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.24.2.1F.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.23.4.2M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.23.4.2M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.23.0.1F",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.23.0.1F.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.22.2.1F",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.22.2.1F.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.22.0F",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.22.0F.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.21.1F",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.21.1.1F.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.20.10M-combined",
|
||||
"images": {
|
||||
"hda_disk_image": "vEOS-lab-4.20.10M-combined.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.20.1F",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.20.1F.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.19.10M-combined",
|
||||
"images": {
|
||||
"hda_disk_image": "vEOS-lab-4.19.10M-combined.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.19.10M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.19.10M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.18.10M-combined",
|
||||
"images": {
|
||||
"hda_disk_image": "vEOS-lab-4.18.10M-combined.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.18.10M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.18.10M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.18.5M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.18.5M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.18.1F",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.18.1F.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.17.8M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.17.8M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.17.2F",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.17.2F.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.16.13M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.16.13M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.16.6M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.16.6M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.15.10M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.15.10M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.15.5M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.15.5M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.14.14M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.14.14M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.13.16M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.13.16M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.13.8M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
|
||||
"hdb_disk_image": "vEOS-lab-4.13.8M.vmdk"
|
||||
"hdb_disk_image": "vEOS64-lab-4.31.6M.qcow2"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
59
gns3server/appliances/armbian.gns3a
Normal file
59
gns3server/appliances/armbian.gns3a
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"appliance_id": "b3b90fde-143a-4129-8031-ccbba73c5e02",
|
||||
"name": "armbian",
|
||||
"category": "guest",
|
||||
"description": "A highly optimized base operating system specialized for single board computers (SBCs) and its extensive build framework.",
|
||||
"vendor_name": "The Armbian team",
|
||||
"vendor_url": "https://armbian.com/",
|
||||
"documentation_url": "https://docs.armbian.com/",
|
||||
"product_name": "Armbian UEFI x86",
|
||||
"product_url": "https://armbian.com/boards/uefi-x86",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "By first login you create root password and new sudo user.\n\nBoot disk from UEFI shell, type: FS0:EFI\\BOOT\\BOOTX64 and press <Enter>",
|
||||
"port_name_format": "Ethernet{0}",
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 2,
|
||||
"ram": 256,
|
||||
"hda_disk_interface": "virtio",
|
||||
"arch": "x86_64",
|
||||
"console_type": "spice+agent",
|
||||
"uefi": false,
|
||||
"boot_priority": "c",
|
||||
"kvm": "require",
|
||||
"options": "-nographic"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "OVMF-edk2-stable202305.fd",
|
||||
"version": "stable202305",
|
||||
"md5sum": "6c4cf1519fec4a4b95525d9ae562963a",
|
||||
"filesize": 4194304,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
|
||||
"direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/OVMF-edk2-stable202305.fd.zip/download",
|
||||
"compression": "zip"
|
||||
},
|
||||
{
|
||||
"filename": "Armbian_26.5.1_Uefi-x86_trixie_cloud_6.18.32_minimal.img.qcow2",
|
||||
"version": "Armbian 26.5.1 Minimal (CLI)",
|
||||
"md5sum": "7f4c915668718d6135406de5a6c4fc30",
|
||||
"filesize": 877920512,
|
||||
"download_url": "https://armbian.com/boards/uefi-x86",
|
||||
"direct_download_url": "https://armbian.atomonetworks.com/dl/uefi-x86/archive/Armbian_26.5.1_Uefi-x86_trixie_cloud_6.18.32_minimal.img.qcow2.xz",
|
||||
"compression": "xz"
|
||||
}
|
||||
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "Armbian 26.5.1 Minimal (CLI)",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "Armbian_26.5.1_Uefi-x86_trixie_cloud_6.18.32_minimal.img.qcow2"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -32,6 +32,27 @@
|
||||
"process_priority": "normal"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "arubaoscx-disk-image-genericx86-p4-20241115202521.vmdk",
|
||||
"version": "10.15.0005",
|
||||
"md5sum": "69b3675391c04c1a6e0fd0bf8d8bc2d9",
|
||||
"filesize": 420049408,
|
||||
"download_url": "https://networkingsupport.hpe.com"
|
||||
},
|
||||
{
|
||||
"filename": "arubaoscx-disk-image-genericx86-p4-20240731173624.vmdk",
|
||||
"version": "10.14.1000",
|
||||
"md5sum": "01d6932fbc9c46180a4f41aee9e98301",
|
||||
"filesize": 412140544,
|
||||
"download_url": "https://networkingsupport.hpe.com"
|
||||
},
|
||||
{
|
||||
"filename": "arubaoscx-disk-image-genericx86-p4-20240528190307.vmdk",
|
||||
"version": "10.14.0001",
|
||||
"md5sum": "83902dbaa74c37cdda3f066f79431933",
|
||||
"filesize": 401023488,
|
||||
"download_url": "https://networkingsupport.hpe.com"
|
||||
},
|
||||
{
|
||||
"filename": "arubaoscx-disk-image-genericx86-p4-20240129204649.vmdk",
|
||||
"version": "10.13.1000",
|
||||
@ -139,6 +160,24 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "10.15.0005",
|
||||
"images": {
|
||||
"hda_disk_image": "arubaoscx-disk-image-genericx86-p4-20241115202521.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "10.14.1000",
|
||||
"images": {
|
||||
"hda_disk_image": "arubaoscx-disk-image-genericx86-p4-20240731173624.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "10.14.0001",
|
||||
"images": {
|
||||
"hda_disk_image": "arubaoscx-disk-image-genericx86-p4-20240528190307.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "10.13.1000",
|
||||
"images": {
|
||||
|
||||
42
gns3server/appliances/asterfusion-vAsterNOS-VPP.gns3a
Normal file
42
gns3server/appliances/asterfusion-vAsterNOS-VPP.gns3a
Normal file
@ -0,0 +1,42 @@
|
||||
{
|
||||
"appliance_id": "4aa78f74-c769-43e0-9ef1-5dd2cf1909c6",
|
||||
"name": "Asterfusion AsterNOS-VPP",
|
||||
"category": "router",
|
||||
"description": "AsterNOS-VPP leverages SONiC’s robust routing features and management capability with VPP’s high-performance data forwarding. It supports L3 routing, NAT, PPPoE, and VPN services. Minimum requirements: 4 vCPUs and 8GB RAM.",
|
||||
"vendor_name": "Asterfusion",
|
||||
"vendor_url": "https://cloudswit.ch/product/sonic-enterprise-distribution/#vAsterNOS",
|
||||
"documentation_url": "https://docs.asternos.com/routing",
|
||||
"product_name": "AsterNOS-VPP",
|
||||
"registry_version": 6,
|
||||
"status": "stable",
|
||||
"maintainer": "Asterfusion Product Team",
|
||||
"maintainer_email": "bd@cloudswit.ch",
|
||||
"availability": "with-registration",
|
||||
"images": [
|
||||
{
|
||||
"filename": "AsterNOS-VPP_V6.1-R0101P02_x86.img",
|
||||
"version": "6.1",
|
||||
"md5sum": "55834c3e8849ab226144d79ef76acf81",
|
||||
"filesize": 1318201015,
|
||||
"download_url": "https://asternos.dev/api/file/b2c9fd83-a9d3-46f3-9676-6b49dd481d6c",
|
||||
"compression": "gzip"
|
||||
}
|
||||
],
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 4,
|
||||
"ram": 8192,
|
||||
"cpus": 4,
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "require"
|
||||
},
|
||||
"versions": [
|
||||
{
|
||||
"name": "6.1",
|
||||
"images": {
|
||||
"hda_disk_image": "AsterNOS-VPP_V6.1-R0101P02_x86.img"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
50
gns3server/appliances/asterfusion-vAsterNOS-campus.gns3a
Normal file
50
gns3server/appliances/asterfusion-vAsterNOS-campus.gns3a
Normal file
@ -0,0 +1,50 @@
|
||||
{
|
||||
"appliance_id": "9e934470-d898-4289-a5ed-50af094e629e",
|
||||
"name": "Asterfusion vAsterNOS campus",
|
||||
"category": "multilayer_switch",
|
||||
"description": "AsterNOS is the core technology of Asterfusion’s one-stop SONiC turnkey solution designed for cloud, enterprise, and AI-driven scenarios. AsterNOS v5.2 Campus is specifically designed for traditional campus networks, offering comprehensive L2/L3 capabilities suitable for various campus scenarios such as schools, office buildings, and hospitals. This version supports a fully cloud-integrated Layer 3 network architecture, providing rich routing and switching functionalities to ensure high-performance operation and ease of maintenance. It can also be deployed in the GNS3 simulation environment to experience a complete All-Layer 3 Cloud-Campus network. This version is ideal for enterprises and campus networks requiring high-performance multi-service transport, supporting cross-domain connectivity and providing nanosecond-level time synchronization. It is well-suited for applications with stringent time accuracy requirements, such as financial trading, industrial automation, and smart manufacturing. NOTICE: This appliance file is a virtualized version of AsterNOS and is intended to be used only to experience the basic functionality and industry standard CLI (Klish), not for official software testing. For more information about AsterNOS commercial version, please feel free to contact us via Email: bd@cloudswit.ch",
|
||||
"vendor_name": "Asterfusion",
|
||||
"vendor_url": "https://cloudswit.ch/",
|
||||
"vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/asterfusion.png",
|
||||
"documentation_url": "https://help.cloudswit.ch/portal/en/kb/articles/vasternos",
|
||||
"product_name": "vAsterNOS",
|
||||
"product_url": "https://cloudswit.ch/",
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"maintainer": "Asterfusion",
|
||||
"maintainer_email": "bd@cloudswit.ch",
|
||||
"usage": "The login is admin and the password is asteros",
|
||||
"symbol": "asterfusion-vAsterNOS.svg",
|
||||
"first_port_name": "eth0",
|
||||
"port_name_format": "Ethernet{0}",
|
||||
"qemu": {
|
||||
"adapter_type": "e1000",
|
||||
"adapters": 10,
|
||||
"ram": 4096,
|
||||
"cpus": 4,
|
||||
"hda_disk_interface": "virtio",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"boot_priority": "d",
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "vAsterNOS-V5.2R012P01.img",
|
||||
"version": "5.2-12-1",
|
||||
"md5sum": "d18c0cfd786607ccc6dc1069a8f40465",
|
||||
"filesize": 2823290880,
|
||||
"download_url": "https://drive.cloudswitch.io/external/d29f6d0a6c8322fea42b3c08e95113d026b8ec6aafbe29193c338333077f3da7"
|
||||
}
|
||||
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "5.2-12-1",
|
||||
"images": {
|
||||
"hda_disk_image": "vAsterNOS-V5.2R012P01.img"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -6,14 +6,14 @@
|
||||
"vendor_name": "Asterfusion",
|
||||
"vendor_url": "https://cloudswit.ch/",
|
||||
"vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/asterfusion.png",
|
||||
"documentation_url": "https://help.cloudswit.ch/portal/en/kb/articles/vasternos",
|
||||
"documentation_url": "https://asternos.com/community/space/vasternos/post/vasternos-for-data-center-network",
|
||||
"product_name": "vAsterNOS",
|
||||
"product_url": "https://cloudswit.ch/product/sonic-enterprise-distribution",
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"maintainer": "Asterfusion",
|
||||
"maintainer_email": "bd@cloudswit.ch",
|
||||
"usage": "The login is admin, passwd asteros",
|
||||
"usage": "The login is admin and the password is asteros",
|
||||
"symbol": "asterfusion-vAsterNOS.svg",
|
||||
"first_port_name": "eth0",
|
||||
"port_name_format": "Ethernet{0}",
|
||||
@ -30,18 +30,18 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "vAsterNOS-V3.1.img",
|
||||
"filename": "AsterNOS_V3.1_R0408P01-VS.img.gz",
|
||||
"version": "V3.1",
|
||||
"md5sum": "c323c9c3f60e1a93eca2acdc5034b85c",
|
||||
"filesize": 2724659200,
|
||||
"download_url": "https://drive.cloudswitch.io/external/8ae2e3932ad8bb2ec30dd25be415d288ff3e4a949c557c6bd48ac6e6265bcfc1"
|
||||
"md5sum": "5c182306af67be2c79a5642551412e48",
|
||||
"filesize": 1425945924,
|
||||
"download_url": "http://pub.asternos.com/AsterNOS_V3.1_R0408P01-VS.img.gz"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "V3.1",
|
||||
"images": {
|
||||
"hda_disk_image": "vAsterNOS-V3.1.img"
|
||||
"hda_disk_image": "AsterNOS_V3.1_R0408P01-VS.img.gz"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@ -1,41 +1,56 @@
|
||||
{
|
||||
"appliance_id": "088df570-f637-46f5-8a68-85acde538e5e",
|
||||
"appliance_id": "8fecbf89-5cd1-4aea-b735-5f36cf0efbb7",
|
||||
"name": "BIRD",
|
||||
"category": "router",
|
||||
"description": "The BIRD project aims to develop a fully functional dynamic IP routing daemon primarily targeted on (but not limited to) Linux, FreeBSD and other UNIX-like systems and distributed under the GNU General Public License.",
|
||||
"vendor_name": "CZ.NIC Labs",
|
||||
"vendor_url": "http://bird.network.cz/",
|
||||
"documentation_url": "http://bird.network.cz/?get_doc&f=bird.html",
|
||||
"vendor_url": "https://bird.network.cz",
|
||||
"documentation_url": "https://bird.network.cz/?get_doc&f=bird.html&v=20",
|
||||
"product_name": "BIRD internet routing daemon",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "\n*** BIRD v1 is end-of-life ***\nPlease use the BIRD2 appliance.\n\nConfigure interfaces in /opt/bootlocal.sh, BIRD configuration is done in /usr/local/etc/bird",
|
||||
"maintainer": "Bernhard Ehlers",
|
||||
"maintainer_email": "dev-ehlers@mailbox.org",
|
||||
"usage": "Username:\tgns3\nPassword:\tgns3\nTo become root, use \"sudo -s\".\n\nNetwork configuration:\nsudo nano /etc/network/interfaces\nsudo systemctl restart networking\n\nBIRD:\nRestart: sudo systemctl restart bird\nReconfigure: birdc configure",
|
||||
"port_name_format": "eth{0}",
|
||||
"qemu": {
|
||||
"adapter_type": "e1000",
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 4,
|
||||
"ram": 128,
|
||||
"hda_disk_interface": "ide",
|
||||
"ram": 512,
|
||||
"hda_disk_interface": "scsi",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "bird-tinycore64-1.5.0.img",
|
||||
"version": "1.5.0",
|
||||
"md5sum": "08d50ba2b1b262e2e03e4babf90abf69",
|
||||
"filesize": 22413312,
|
||||
"filename": "bird2-debian-2.14.qcow2",
|
||||
"version": "2.14",
|
||||
"md5sum": "029cf1756201ee79497c169502b08b88",
|
||||
"filesize": 303717376,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
|
||||
"direct_download_url": "http://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/bird-tinycore64-1.5.0.img"
|
||||
"direct_download_url": "https://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/bird2-debian-2.14.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "bird2-debian-2.0.12.qcow2",
|
||||
"version": "2.0.12",
|
||||
"md5sum": "435218a2e90cba921cc7fde1d64a9419",
|
||||
"filesize": 287965184,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
|
||||
"direct_download_url": "https://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/bird2-debian-2.0.12.qcow2"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "1.5.0",
|
||||
"name": "2.14",
|
||||
"images": {
|
||||
"hda_disk_image": "bird-tinycore64-1.5.0.img"
|
||||
"hda_disk_image": "bird2-debian-2.14.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "2.0.12",
|
||||
"images": {
|
||||
"hda_disk_image": "bird2-debian-2.0.12.qcow2"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@ -1,57 +0,0 @@
|
||||
{
|
||||
"appliance_id": "8fecbf89-5cd1-4aea-b735-5f36cf0efbb7",
|
||||
"name": "BIRD2",
|
||||
"category": "router",
|
||||
"description": "The BIRD project aims to develop a fully functional dynamic IP routing daemon primarily targeted on (but not limited to) Linux, FreeBSD and other UNIX-like systems and distributed under the GNU General Public License.",
|
||||
"vendor_name": "CZ.NIC Labs",
|
||||
"vendor_url": "https://bird.network.cz",
|
||||
"documentation_url": "https://bird.network.cz/?get_doc&f=bird.html&v=20",
|
||||
"product_name": "BIRD internet routing daemon",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "Bernhard Ehlers",
|
||||
"maintainer_email": "dev-ehlers@mailbox.org",
|
||||
"usage": "Username:\tgns3\nPassword:\tgns3\nTo become root, use \"sudo -s\".\n\nNetwork configuration:\nsudo nano /etc/network/interfaces\nsudo systemctl restart networking\n\nBIRD:\nRestart: sudo systemctl restart bird\nReconfigure: birdc configure",
|
||||
"port_name_format": "eth{0}",
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 4,
|
||||
"ram": 512,
|
||||
"hda_disk_interface": "scsi",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "bird2-debian-2.14.qcow2",
|
||||
"version": "2.14",
|
||||
"md5sum": "029cf1756201ee79497c169502b08b88",
|
||||
"filesize": 303717376,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
|
||||
"direct_download_url": "https://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/bird2-debian-2.14.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "bird2-debian-2.0.12.qcow2",
|
||||
"version": "2.0.12",
|
||||
"md5sum": "435218a2e90cba921cc7fde1d64a9419",
|
||||
"filesize": 287965184,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
|
||||
"direct_download_url": "https://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/bird2-debian-2.0.12.qcow2"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "2.14",
|
||||
"images": {
|
||||
"hda_disk_image": "bird2-debian-2.14.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "2.0.12",
|
||||
"images": {
|
||||
"hda_disk_image": "bird2-debian-2.0.12.qcow2"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -27,44 +27,28 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "CentOS-Stream-GenericCloud-9-20230704.1.x86_64.qcow2",
|
||||
"version": "Stream-9 (20230704.1)",
|
||||
"md5sum": "e04511e019325a97837edd9eafe02b48",
|
||||
"filesize": 1087868416,
|
||||
"filename": "CentOS-Stream-GenericCloud-10-20260504.0.x86_64.qcow2",
|
||||
"version": "Stream-10 (20260504.0)",
|
||||
"md5sum": "932b0bcc7e5c7404f91432979dc95314",
|
||||
"filesize": 2173501440,
|
||||
"download_url": "https://cloud.centos.org/centos/10-stream/x86_64/images",
|
||||
"direct_download_url": "https://cloud.centos.org/centos/10-stream/x86_64/images/CentOS-Stream-GenericCloud-10-20260504.0.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "CentOS-Stream-GenericCloud-9-20260504.0.x86_64.qcow2",
|
||||
"version": "Stream-9 (20260504.0)",
|
||||
"md5sum": "ebfbbd23ba7b85bbaf83c6c0626c2b70",
|
||||
"filesize": 1877251072,
|
||||
"download_url": "https://cloud.centos.org/centos/9-stream/x86_64/images",
|
||||
"direct_download_url": "https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-20230704.1.x86_64.qcow2"
|
||||
"direct_download_url": "https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-20260504.0.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "CentOS-Stream-GenericCloud-8-20230710.0.x86_64.qcow2",
|
||||
"version": "Stream-8 (20230710.0)",
|
||||
"md5sum": "83e02ce98c29753c86fb7be7d802aa75",
|
||||
"filesize": 1676164096,
|
||||
"filename": "CentOS-Stream-GenericCloud-8-20240603.0.x86_64.qcow2",
|
||||
"version": "Stream-8 (20240603.0)",
|
||||
"md5sum": "77f3c9650785b8e977209796e09ee33e",
|
||||
"filesize": 2003698688,
|
||||
"download_url": "https://cloud.centos.org/centos/8-stream/x86_64/images",
|
||||
"direct_download_url": "https://cloud.centos.org/centos/8-stream/x86_64/images/CentOS-Stream-GenericCloud-8-20230710.0.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "CentOS-8-GenericCloud-8.4.2105-20210603.0.x86_64.qcow2",
|
||||
"version": "8.4 (2105)",
|
||||
"md5sum": "032eed270415526546eac07628905a62",
|
||||
"filesize": 1309652992,
|
||||
"download_url": "https://cloud.centos.org/centos/8/x86_64/images",
|
||||
"direct_download_url": "https://cloud.centos.org/centos/8/x86_64/images/CentOS-8-GenericCloud-8.4.2105-20210603.0.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "CentOS-7-x86_64-GenericCloud-2111.qcow2",
|
||||
"version": "7 (2111)",
|
||||
"md5sum": "730b8662695831670721c8245be61dac",
|
||||
"filesize": 897384448,
|
||||
"download_url": "https://cloud.centos.org/centos/7/images",
|
||||
"direct_download_url": "https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-2111.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "CentOS-7-x86_64-GenericCloud-1809.qcow2",
|
||||
"version": "7 (1809)",
|
||||
"md5sum": "da79108d1324b27bd1759362b82fbe40",
|
||||
"filesize": 914948096,
|
||||
"download_url": "https://cloud.centos.org/centos/7/images",
|
||||
"direct_download_url": "https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1809.qcow2"
|
||||
"direct_download_url": "https://cloud.centos.org/centos/8-stream/x86_64/images/CentOS-Stream-GenericCloud-8-20240603.0.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "centos-cloud-init-data.iso",
|
||||
@ -77,37 +61,23 @@
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "Stream-9 (20230704.1)",
|
||||
"name": "Stream-10 (20260504.0)",
|
||||
"images": {
|
||||
"hda_disk_image": "CentOS-Stream-GenericCloud-9-20230704.1.x86_64.qcow2",
|
||||
"hda_disk_image": "CentOS-Stream-GenericCloud-10-20260504.0.x86_64.qcow2",
|
||||
"cdrom_image": "centos-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Stream-8 (20230710.0)",
|
||||
"name": "Stream-9 (20260504.0)",
|
||||
"images": {
|
||||
"hda_disk_image": "CentOS-Stream-GenericCloud-8-20230710.0.x86_64.qcow2",
|
||||
"hda_disk_image": "CentOS-Stream-GenericCloud-9-20260504.0.x86_64.qcow2",
|
||||
"cdrom_image": "centos-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "8.4 (2105)",
|
||||
"name": "Stream-8 (20240603.0)",
|
||||
"images": {
|
||||
"hda_disk_image": "CentOS-8-GenericCloud-8.4.2105-20210603.0.x86_64.qcow2",
|
||||
"cdrom_image": "centos-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7 (2111)",
|
||||
"images": {
|
||||
"hda_disk_image": "CentOS-7-x86_64-GenericCloud-2111.qcow2",
|
||||
"cdrom_image": "centos-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7 (1809)",
|
||||
"images": {
|
||||
"hda_disk_image": "CentOS-7-x86_64-GenericCloud-1809.qcow2",
|
||||
"hda_disk_image": "CentOS-Stream-GenericCloud-8-20240603.0.x86_64.qcow2",
|
||||
"cdrom_image": "centos-cloud-init-data.iso"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
{
|
||||
"appliance_id": "cc2b1802-3520-4963-8ff7-c19b1f6418c5",
|
||||
"tags": ["device_type:cisco_ios_telnet"],
|
||||
"name": "Cisco 1700",
|
||||
"category": "router",
|
||||
"description": "Cisco 1700 Router",
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
{
|
||||
"appliance_id": "ed474fea-cd3b-4e2e-be84-a855a133060a",
|
||||
"tags": ["device_type:cisco_ios_telnet"],
|
||||
"name": "Cisco 2600",
|
||||
"category": "router",
|
||||
"description": "Cisco 2600 Router",
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
{
|
||||
"appliance_id": "ed0f079e-a506-4cb4-b46c-714a80bbe2d3",
|
||||
"tags": ["device_type:cisco_ios_telnet"],
|
||||
"name": "Cisco 2691",
|
||||
"category": "router",
|
||||
"description": "Cisco 2691 Router",
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
{
|
||||
"appliance_id": "7ada6336-7280-4306-9f32-6b1e242ae989",
|
||||
"tags": ["device_type:cisco_ios_telnet"],
|
||||
"name": "Cisco 3620",
|
||||
"category": "router",
|
||||
"description": "Cisco 3620 Router",
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
{
|
||||
"appliance_id": "ef119e49-19fe-4239-9c6b-16ea12f6ec01",
|
||||
"tags": ["device_type:cisco_ios_telnet"],
|
||||
"name": "Cisco 3640",
|
||||
"category": "router",
|
||||
"description": "Cisco 3640 Router",
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
{
|
||||
"appliance_id": "ac460a9c-9274-4ccf-a056-af50b699925f",
|
||||
"tags": ["device_type:cisco_ios_telnet"],
|
||||
"name": "Cisco 3660",
|
||||
"category": "router",
|
||||
"description": "Cisco 3660 Router",
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
{
|
||||
"appliance_id": "5b9c5293-a5a7-47a3-9df4-6cf658f2f378",
|
||||
"tags": ["device_type:cisco_ios_telnet"],
|
||||
"name": "Cisco 3725",
|
||||
"category": "router",
|
||||
"description": "Cisco 3725 Router",
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
{
|
||||
"appliance_id": "18737edb-e43f-4fb0-8a0f-88982cff58b1",
|
||||
"tags": ["device_type:cisco_ios_telnet"],
|
||||
"name": "Cisco 3745",
|
||||
"category": "router",
|
||||
"description": "Cisco 3745 Multiservice Access Router",
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
{
|
||||
"appliance_id": "38aa3135-f169-4131-9b64-73605787b5ef",
|
||||
"tags": ["device_type:cisco_ios_telnet"],
|
||||
"name": "Cisco 7200",
|
||||
"category": "router",
|
||||
"description": "Cisco 7200 Router",
|
||||
@ -50,6 +51,12 @@
|
||||
"version": "124-25G",
|
||||
"md5sum": "9c7cc9b3f3b3571411a7f62faaa2c036",
|
||||
"filesize": 71528984
|
||||
},
|
||||
{
|
||||
"filename": "c7200-itpk9-mz.124-15.SW.image",
|
||||
"version": "124-15.SW",
|
||||
"md5sum": "3334a0facdbd26164e83d3c201fff5b5",
|
||||
"filesize": 46423952
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
@ -87,6 +94,13 @@
|
||||
"images": {
|
||||
"image": "c7200-a3jk9s-mz.124-25g.image"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "124-15.SW",
|
||||
"idlepc": "0x60b2bc68",
|
||||
"images": {
|
||||
"image": "c7200-itpk9-mz.124-15.SW.image"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
43
gns3server/appliances/cisco-alpine-trex.gns3a
Normal file
43
gns3server/appliances/cisco-alpine-trex.gns3a
Normal file
@ -0,0 +1,43 @@
|
||||
{
|
||||
"appliance_id": "924a2ef5-7b91-45ae-a1e4-7220338b76b0",
|
||||
"name": "Cisco Alpine Linux TRex",
|
||||
"category": "guest",
|
||||
"description": "Alpine Linux VM image configured to run Cisco's Trex traffic generator in stateless mode",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "https://trex-tgn.cisco.com/",
|
||||
"product_name": "Alpine Linux Virt",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "By default, a \"cisco\" account with password \"cisco\" is created.",
|
||||
"port_name_format": "eth{0}",
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 3,
|
||||
"ram": 512,
|
||||
"hda_disk_interface": "virtio",
|
||||
"arch": "x86_64",
|
||||
"console_type": "vnc",
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "alpine-trex-3-21-3.qcow2",
|
||||
"version": "2.87",
|
||||
"md5sum": "54cf267bbc2ab7a1c71dc53bced6e128",
|
||||
"filesize": 465174528,
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "2.87",
|
||||
"images": {
|
||||
"hda_disk_image": "alpine-trex-3-21-3.qcow2"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -5,9 +5,9 @@
|
||||
"description": "The Adaptive Security Virtual Appliance is a virtualized network security solution based on the market-leading Cisco ASA 5500-X Series firewalls. It supports both traditional and next-generation software-defined network (SDN) and Cisco Application Centric Infrastructure (ACI) environments to provide policy enforcement and threat inspection across heterogeneous multisite environments.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "http://www.cisco.com/c/en/us/support/security/virtual-adaptive-security-appliance-firewall/products-installation-guides-list.html",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/asav/",
|
||||
"product_name": "ASAv",
|
||||
"product_url": "http://www.cisco.com/c/en/us/products/security/virtual-adaptive-security-appliance-firewall/index.html",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
@ -26,26 +26,33 @@
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "asav9-23-1.qcow2",
|
||||
"version": "9.23.1 CML",
|
||||
"md5sum": "30454794b46fe07d1cd6a3ee72b511e1",
|
||||
"filesize": 400687104,
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "asav9-22-1-1.qcow2",
|
||||
"version": "9.22.1.1 CML",
|
||||
"md5sum": "250a924cdc2370208eaac9d1dc8dc9e3",
|
||||
"filesize": 379518976,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/cisco-modeling-labs-personal/cisco-modeling-labs-personal/CML-PERSONAL.html"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "asav9-18-2.qcow2",
|
||||
"version": "9.18.2 CML",
|
||||
"md5sum": "6f10fe106edfad9163625770a47a6b73",
|
||||
"filesize": 340262912,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/cisco-modeling-labs-personal/cisco-modeling-labs-personal/CML-PERSONAL.html"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "asav9-16-2.qcow2",
|
||||
"version": "9.16.2 CML",
|
||||
"md5sum": "1f8db97063a7f738fddc81ac880a906c",
|
||||
"filesize": 262078976,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/cisco-modeling-labs-personal/cisco-modeling-labs-personal/CML-PERSONAL.html"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "asav9-16-2.qcow2",
|
||||
@ -133,6 +140,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "9.23.1 CML",
|
||||
"images": {
|
||||
"hda_disk_image": "asav9-23-1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.22.1.1 CML",
|
||||
"images": {
|
||||
|
||||
@ -5,9 +5,9 @@
|
||||
"description": "The Cisco Catalyst 8000V Edge Software is a virtual, form-factor router deployed on a virtual machine (VM) running on an x86 server hardware.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "https://www.cisco.com/c/en/us/td/docs/routers/C8000V/Configuration/c8000v-installation-configuration-guide.html",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/cat-8000v/",
|
||||
"product_name": "c8000v",
|
||||
"product_url": "https://www.cisco.com/c/en/us/support/routers/catalyst-8000v-edge-software/series.html",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
@ -24,6 +24,13 @@
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "c8000v-universalk9_8G_serial.17.15.01a.qcow2",
|
||||
"version": "17.15.01a 8G",
|
||||
"md5sum": "41efa0aedd67f1f57cde1263c79d9ff6",
|
||||
"filesize": 1846280192,
|
||||
"download_url": "https://software.cisco.com/download/home/286327102/type/282046477/release/IOSXE-17.15.1a"
|
||||
},
|
||||
{
|
||||
"filename": "c8000v-universalk9_8G_serial.17.09.04a.qcow2",
|
||||
"version": "17.09.04a 8G",
|
||||
@ -68,6 +75,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "17.15.01a 8G",
|
||||
"images": {
|
||||
"hda_disk_image": "c8000v-universalk9_8G_serial.17.15.01a.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "17.09.04a 8G",
|
||||
"images": {
|
||||
|
||||
@ -5,9 +5,9 @@
|
||||
"description": "Cisco IOS-XE 9000v. This appliance requires 16GB of memory to run! Recommend 2 or more vCPUs for faster boot performance",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/2-5/#!cml-release-notes",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/cat-9000v/",
|
||||
"product_name": "Cisco CAT IOS-XE 9000v",
|
||||
"product_url": "http://virl.cisco.com/",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"maintainer": "GNS3 Team",
|
||||
@ -31,14 +31,14 @@
|
||||
"version": "17.12(1)",
|
||||
"md5sum": "e587e92186f42bdf69d7fa27f34425f7",
|
||||
"filesize": 2739404800,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "cat9kv-prd-17.10.01prd7.qcow2",
|
||||
"version": "17.10(1)",
|
||||
"md5sum": "ffdbace33d31deae33e2a920a96b79ef",
|
||||
"filesize": 2155806720,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
|
||||
@ -5,9 +5,9 @@
|
||||
"description": "The Cisco Cloud Services Router 1000V (CSR 1000V) is a router and network services platform in virtual form factor that is intended for deployment in cloud and virtual data centers. It is optimized to serve as a single-tenant or multitenant WAN gateway. Using proven, industry-leading Cisco IOS\u00ae XE Software networking and security features, the CSR 1000V enables enterprises to transparently extend their WANs into external provider-hosted clouds and cloud providers to offer their tenants enterprise-class networking services.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "http://www.cisco.com/c/en/us/support/routers/cloud-services-router-1000v-series/products-installation-and-configuration-guides-list.html",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/csr-1000v/",
|
||||
"product_name": "CSR1000v",
|
||||
"product_url": "http://www.cisco.com/c/en/us/support/routers/cloud-services-router-1000v-series/tsd-products-support-series-home.html",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
@ -17,7 +17,7 @@
|
||||
"qemu": {
|
||||
"adapter_type": "vmxnet3",
|
||||
"adapters": 4,
|
||||
"ram": 3072,
|
||||
"ram": 4096,
|
||||
"hda_disk_interface": "ide",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
@ -134,21 +134,21 @@
|
||||
"version": "16.5.1b",
|
||||
"md5sum": "ac11d33041b8ff6dc3553e324d02cccb",
|
||||
"filesize": 1209543680,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "csr1000v-universalk9.03.17.00.S.156-1.S-ext.qcow2",
|
||||
"version": "3.17",
|
||||
"md5sum": "06cbfcd11f3557391db64fe2a6015a6e",
|
||||
"filesize": 1346305024,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "csr1000v-universalk9.16.3.1-build2.qcow2",
|
||||
"version": "16.3.1-build2",
|
||||
"md5sum": "a770e96de928265515304c9c9d6b46b9",
|
||||
"filesize": 1280835584,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "csr1000v-universalk9.16.03.01.qcow2",
|
||||
@ -162,21 +162,21 @@
|
||||
"version": "16.3.2",
|
||||
"md5sum": "2e5803d23cd52cba5d55fa8306be5f13",
|
||||
"filesize": 1167720448,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "csr1000v-universalk9.16.4.1.qcow2",
|
||||
"version": "16.4.1",
|
||||
"md5sum": "3428e0dcf5132a1b11ab7696d8c61b2e",
|
||||
"filesize": 1261961216,
|
||||
"download_url": "https://virl.mediuscorp.com/my-account/"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "csr1000v-universalk9.16.6.1.qcow2",
|
||||
"version": "16.6.1-VIRL",
|
||||
"md5sum": "996eb6dbf54781f6393bd689571a818c",
|
||||
"filesize": 1316301824,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
|
||||
@ -1,12 +1,14 @@
|
||||
{
|
||||
"appliance_id": "3bf492b6-5717-4257-9bfd-b34617c6f133",
|
||||
"tags": ["device_type:cisco_ios_telnet"],
|
||||
"name": "Cisco IOSv",
|
||||
"category": "router",
|
||||
"description": "Cisco Virtual IOS allows user to run IOS on a standard computer.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/iosv/",
|
||||
"product_name": "IOSv",
|
||||
"product_url": "http://virl.cisco.com/",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
@ -25,85 +27,113 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "IOSv_startup_config.img",
|
||||
"version": "1",
|
||||
"md5sum": "bc605651c4688276f81fd59dcf5cc786",
|
||||
"filesize": 1048576,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files",
|
||||
"direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/IOSv_startup_config.img/download"
|
||||
"filename": "vios-adventerprisek9-m.spa.159-3.m10.qcow2",
|
||||
"version": "15.9(3)M10",
|
||||
"md5sum": "960ff630ce3fc030f6155a8e77d64105",
|
||||
"filesize": 57323520,
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "vios-adventerprisek9-m.spa.159-3.m9.qcow2",
|
||||
"version": "15.9(3)M9",
|
||||
"md5sum": "01b707a2e33185d6d33e0255ced45d23",
|
||||
"filesize": 57323008,
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "vios-adventerprisek9-m.spa.159-3.m8.qcow2",
|
||||
"version": "15.9(3)M8",
|
||||
"md5sum": "8d93a185c2fa778178a933f20b02150a",
|
||||
"filesize": 57319424,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "vios-adventerprisek9-m.spa.159-3.m6.qcow2",
|
||||
"version": "15.9(3)M6",
|
||||
"md5sum": "49a6977977263b2774bebc56e4e678ff",
|
||||
"filesize": 57309696,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "vios-adventerprisek9-m.spa.159-3.m4.qcow2",
|
||||
"version": "15.9(3)M4",
|
||||
"md5sum": "355b13ab821e64e2939fd7008d6304d7",
|
||||
"filesize": 57297920,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "vios-adventerprisek9-m.spa.159-3.m3.qcow2",
|
||||
"version": "15.9(3)M3",
|
||||
"md5sum": "12893843af18e4c62f13d07266755653",
|
||||
"filesize": 57296384,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "vios-adventerprisek9-m.spa.159-3.m2.qcow2",
|
||||
"version": "15.9(3)M2",
|
||||
"md5sum": "a19e998bc3086825c751d125af722329",
|
||||
"filesize": 57308672,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "vios-adventerprisek9-m.spa.158-3.m2.qcow2",
|
||||
"version": "15.8(3)M2",
|
||||
"md5sum": "40e3d25b5b0cb13d639fcd2cf18e9965",
|
||||
"filesize": 57129984,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "vios-adventerprisek9-m.vmdk.SPA.157-3.M3",
|
||||
"version": "15.7(3)M3",
|
||||
"md5sum": "37c148ffa14a82f418a6e9c2b049fafe",
|
||||
"filesize": 134021120,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "vios-adventerprisek9-m.vmdk.SPA.156-2.T",
|
||||
"version": "15.6(2)T",
|
||||
"md5sum": "83707e3cc93646da58ee6563a68002b5",
|
||||
"filesize": 128450560,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "vios-adventerprisek9-m.vmdk.SPA.156-1.T",
|
||||
"version": "15.6(1)T",
|
||||
"md5sum": "e7cb1bbd0c59280dd946feefa68fa270",
|
||||
"filesize": 128122880,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "vios-adventerprisek9-m.vmdk.SPA.155-3.M",
|
||||
"version": "15.5(3)M",
|
||||
"md5sum": "79f613ac3b179d5a64520730925130b2",
|
||||
"filesize": 127926272,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "IOSv_startup_config.img",
|
||||
"version": "1",
|
||||
"md5sum": "bc605651c4688276f81fd59dcf5cc786",
|
||||
"filesize": 1048576,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files",
|
||||
"direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/IOSv_startup_config.img/download"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "15.9(3)M10",
|
||||
"images": {
|
||||
"hda_disk_image": "vios-adventerprisek9-m.spa.159-3.m10.qcow2",
|
||||
"hdb_disk_image": "IOSv_startup_config.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "15.9(3)M9",
|
||||
"images": {
|
||||
"hda_disk_image": "vios-adventerprisek9-m.spa.159-3.m9.qcow2",
|
||||
"hdb_disk_image": "IOSv_startup_config.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "15.9(3)M8",
|
||||
"images": {
|
||||
|
||||
@ -1,12 +1,14 @@
|
||||
{
|
||||
"appliance_id": "4368f802-ddec-4863-adbd-a36a6d83cd4c",
|
||||
"tags": ["device_type:cisco_ios_telnet"],
|
||||
"name": "Cisco IOSvL2",
|
||||
"category": "multilayer_switch",
|
||||
"description": "Cisco Virtual IOS L2 allows user to run a IOS switching image on a standard computer.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/iosvl2/",
|
||||
"product_name": "IOSvL2",
|
||||
"product_url": "http://virl.cisco.com/",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
@ -29,35 +31,35 @@
|
||||
"version": "15.2(20200924:215240)",
|
||||
"md5sum": "99ecab32de12410c533e6abd4e9710aa",
|
||||
"filesize": 90409984,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "vios_l2-adventerprisek9-m.ssa.high_iron_20190423.qcow2",
|
||||
"version": "15.2(6.0.81)E",
|
||||
"md5sum": "71cacb678f98a106f99e889b97b34686",
|
||||
"filesize": 44950016,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "vios_l2-adventerprisek9-m.SSA.high_iron_20180619.qcow2",
|
||||
"version": "15.2.1",
|
||||
"md5sum": "14b981002e40b660f2d7400401e04c14",
|
||||
"filesize": 44938752,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "vios_l2-adventerprisek9-m.03.2017.qcow2",
|
||||
"version": "15.2(20170321:233949)",
|
||||
"md5sum": "8f14b50083a14688dec2fc791706bb3e",
|
||||
"filesize": 41157632,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "vios_l2-adventerprisek9-m.vmdk.SSA.152-4.0.55.E",
|
||||
"version": "15.2(4.0.55)E",
|
||||
"md5sum": "1a3a21f5697cae64bb930895b986d71e",
|
||||
"filesize": 96862208,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
|
||||
@ -5,9 +5,9 @@
|
||||
"description": "IOS XRv supports the control plane features introduced in Cisco IOS XR.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "http://www.cisco.com/c/en/us/td/docs/ios_xr_sw/ios_xrv/release/notes/xrv-rn.html",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/ios-xrv/",
|
||||
"product_name": "IOS XRv",
|
||||
"product_url": "http://virl.cisco.com/",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
@ -30,14 +30,14 @@
|
||||
"version": "6.1.3",
|
||||
"md5sum": "1693b5d22a398587dd0fed2877d8dfac",
|
||||
"filesize": 428588544,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "iosxrv-k9-demo-6.0.1.qcow2",
|
||||
"version": "6.0.1",
|
||||
"md5sum": "0831ecf43628eccb752ebb275de9a62a",
|
||||
"filesize": 908132352,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
|
||||
@ -5,9 +5,9 @@
|
||||
"description": "IOS XRv 9000 (aka Sunstone) is the 1st VM released running the 64-bit IOS XR operating system as used on the NCS-6xxx platform. This appliance requires 4 vCPUs and 16GB of memory to run!",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "http://www.cisco.com/c/en/us/td/docs/ios_xr_sw/ios_xrv/release/notes/xrv-rn.html",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/ios-xrv-9000/",
|
||||
"product_name": "IOS XRv 9000",
|
||||
"product_url": "http://virl.cisco.com/",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"maintainer": "GNS3 Team",
|
||||
@ -19,99 +19,56 @@
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 7,
|
||||
"ram": 16384,
|
||||
"cpus": 4,
|
||||
"hda_disk_interface": "ide",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "require",
|
||||
"options": "-smp 4 -cpu host"
|
||||
"options": "-cpu host"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-25.1.1.qcow2",
|
||||
"version": "25.1.1",
|
||||
"md5sum": "554d795d495badf90b6c75a2a342b409",
|
||||
"filesize": 2002911232,
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-24.3.1.qcow2",
|
||||
"version": "24.3.1",
|
||||
"md5sum": "bd047c457e29952f265583f299bab845",
|
||||
"filesize": 1704658432,
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-7.7.1.qcow2",
|
||||
"version": "7.7.1",
|
||||
"md5sum": "682fff40d2ff373d8da3342906553b54",
|
||||
"filesize": 1643905024,
|
||||
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/7.1.1"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-7.1.1.qcow2",
|
||||
"version": "7.1.1",
|
||||
"md5sum": "dcf241e3f8df0151fec2c7bfac9d96ac",
|
||||
"filesize": 1443758080,
|
||||
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/7.1.1"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-7.0.1.qcow2",
|
||||
"version": "7.0.1",
|
||||
"md5sum": "ca2817767fa546e303c3c536e211d33e",
|
||||
"filesize": 1446445056,
|
||||
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/7.0.1"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-6.6.2.qcow2",
|
||||
"version": "6.6.2",
|
||||
"md5sum": "fd630be3c449e625073286a3a66021ae",
|
||||
"filesize": 1452998656,
|
||||
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.6.2"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-6.5.3.qcow2",
|
||||
"version": "6.5.3",
|
||||
"md5sum": "71f018e3ea895b663129090fb4f0ff40",
|
||||
"filesize": 1205075968,
|
||||
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.5.3"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-6.5.2.qcow2",
|
||||
"version": "6.5.2",
|
||||
"md5sum": "506d9e23dda7365c99dd82b613859697",
|
||||
"filesize": 1205010432,
|
||||
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.5.1"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-6.5.1.qcow2",
|
||||
"version": "6.5.1",
|
||||
"md5sum": "730868e7cd46de9aa2e950899c7f9498",
|
||||
"filesize": 1208811520,
|
||||
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.5.1"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-6.4.2.qcow2",
|
||||
"version": "6.4.2",
|
||||
"md5sum": "6958763192c7bb59a1b8049d377de1b4",
|
||||
"filesize": 1311703040,
|
||||
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.4.2"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-6.4.1.qcow2",
|
||||
"version": "6.4.1",
|
||||
"md5sum": "9c56b684e307706005a503e289cb9317",
|
||||
"filesize": 1304887296,
|
||||
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/6.4.1"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-6.2.25.qcow2",
|
||||
"version": "6.2.25",
|
||||
"md5sum": "3f54e62b6f7cedfb2607233e5e465766",
|
||||
"filesize": 1190723584,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x.qcow2-6.0.1",
|
||||
"version": "6.0.1",
|
||||
"md5sum": "e20d046807075046c35b6ce7d6766a7f",
|
||||
"filesize": 2109210624,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x.qcow2-6.0.0",
|
||||
"version": "6.0.0",
|
||||
"md5sum": "64c538c34252aaeb4ed1ddb93d6803fd",
|
||||
"filesize": 2572943360,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "25.1.1",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-25.1.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "24.3.1",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-24.3.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.7.1",
|
||||
"images": {
|
||||
@ -123,66 +80,6 @@
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-7.1.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.1",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-7.0.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.6.2",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-6.6.2.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.5.3",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-6.5.3.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.5.2",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-6.5.2.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.5.1",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-6.5.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.4.2",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-6.4.2.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.4.1",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-6.4.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.2.25",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-6.2.25.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.0.1",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x.qcow2-6.0.1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.0.0",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x.qcow2-6.0.0"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -1,11 +1,14 @@
|
||||
{
|
||||
"appliance_id": "9593db48-558a-4914-bb78-a20605f39c65",
|
||||
"tags": ["device_type:cisco_ios_telnet"],
|
||||
"name": "Cisco IOU L2",
|
||||
"category": "multilayer_switch",
|
||||
"description": "Cisco IOS on UNIX Layer 2 image.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/iol-l2/",
|
||||
"product_name": "Cisco IOU L2",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"maintainer": "GNS3 Team",
|
||||
@ -13,11 +16,17 @@
|
||||
"iou": {
|
||||
"ethernet_adapters": 4,
|
||||
"serial_adapters": 0,
|
||||
"nvram": 512,
|
||||
"ram": 512,
|
||||
"nvram": 256,
|
||||
"ram": 1024,
|
||||
"startup_config": "iou_l2_base_startup-config.txt"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "x86_64_crb_linux_l2-adventerprisek9-ms.17.16.1a.iol",
|
||||
"version": "17.16.1a",
|
||||
"md5sum": "d55879318e51c5401fb9314d45c67728",
|
||||
"filesize": 244265240
|
||||
},
|
||||
{
|
||||
"filename": "x86_64_crb_linux_l2-adventerprisek9-ms.iol",
|
||||
"version": "17.15.1",
|
||||
@ -25,31 +34,19 @@
|
||||
"filesize": 243251976
|
||||
},
|
||||
{
|
||||
"filename": "x86_64_crb_linux_l2-adventerprisek9-ms.bin",
|
||||
"filename": "x86_64_crb_linux_l2-adventerprisek9-ms",
|
||||
"version": "17.12.1",
|
||||
"md5sum": "2b5055e4cef8fd257416d74a94adb626",
|
||||
"filesize": 240355720
|
||||
},
|
||||
{
|
||||
"filename": "i86bi-linux-l2-ipbasek9-15.1g.bin",
|
||||
"version": "15.1g",
|
||||
"md5sum": "0b8b9e14ca99b68c654e44c4296857ba",
|
||||
"filesize": 62137336
|
||||
},
|
||||
{
|
||||
"filename": "i86bi-linux-l2-adventerprisek9-15.1a.bin",
|
||||
"version": "15.1a",
|
||||
"md5sum": "9549a20a7391fb849da32caa77a0d254",
|
||||
"filesize": 72726092
|
||||
},
|
||||
{
|
||||
"filename": "i86bi-linux-l2-adventerprisek9-15.2d.bin",
|
||||
"version": "15.2d",
|
||||
"md5sum": "f16db44433beb3e8c828db5ddad1de8a",
|
||||
"filesize": 105036380
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "17.16.1a",
|
||||
"images": {
|
||||
"image": "x86_64_crb_linux_l2-adventerprisek9-ms.17.16.1a.iol"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "17.15.1",
|
||||
"images": {
|
||||
@ -59,25 +56,7 @@
|
||||
{
|
||||
"name": "17.12.1",
|
||||
"images": {
|
||||
"image": "x86_64_crb_linux_l2-adventerprisek9-ms.bin"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "15.1g",
|
||||
"images": {
|
||||
"image": "i86bi-linux-l2-ipbasek9-15.1g.bin"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "15.1a",
|
||||
"images": {
|
||||
"image": "i86bi-linux-l2-adventerprisek9-15.1a.bin"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "15.2d",
|
||||
"images": {
|
||||
"image": "i86bi-linux-l2-adventerprisek9-15.2d.bin"
|
||||
"image": "x86_64_crb_linux_l2-adventerprisek9-ms"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@ -1,11 +1,14 @@
|
||||
{
|
||||
"appliance_id": "87bf6f58-1e5a-4ee2-afe7-715dabffcf18",
|
||||
"tags": ["device_type:cisco_ios_telnet"],
|
||||
"name": "Cisco IOU L3",
|
||||
"category": "router",
|
||||
"description": "Cisco IOS on UNIX Layer 3 image.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/iol/",
|
||||
"product_name": "Cisco IOU L3",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"maintainer": "GNS3 Team",
|
||||
@ -13,11 +16,17 @@
|
||||
"iou": {
|
||||
"ethernet_adapters": 2,
|
||||
"serial_adapters": 2,
|
||||
"nvram": 512,
|
||||
"ram": 512,
|
||||
"nvram": 256,
|
||||
"ram": 1024,
|
||||
"startup_config": "iou_l3_base_startup-config.txt"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "x86_64_crb_linux-adventerprisek9-ms.17.16.1a.iol",
|
||||
"version": "17.16.1a",
|
||||
"md5sum": "39bdf959c3b99a3c81d66451f1cf0404",
|
||||
"filesize": 293062920
|
||||
},
|
||||
{
|
||||
"filename": "x86_64_crb_linux-adventerprisek9-ms.iol",
|
||||
"version": "17.15.1",
|
||||
@ -25,31 +34,19 @@
|
||||
"filesize": 292001512
|
||||
},
|
||||
{
|
||||
"filename": "x86_64_crb_linux-adventerprisek9-ms.bin",
|
||||
"filename": "x86_64_crb_linux-adventerprisek9-ms",
|
||||
"version": "17.12.1",
|
||||
"md5sum": "4a2fce8de21d1831fbceffd155e41ae7",
|
||||
"filesize": 288947184
|
||||
},
|
||||
{
|
||||
"filename": "i86bi_LinuxL3-AdvEnterpriseK9-M2_157_3_May_2018.bin",
|
||||
"version": "15.7(3)M2",
|
||||
"md5sum": "d6874260c3daeeb96d10fc844ae0b93b",
|
||||
"filesize": 184759244
|
||||
},
|
||||
{
|
||||
"filename": "i86bi-linux-l3-adventerprisek9-ms.155-2.T.bin",
|
||||
"version": "155-2T",
|
||||
"md5sum": "45e99761a95cbd3ee3924ecf0f3d89e5",
|
||||
"filesize": 172982492
|
||||
},
|
||||
{
|
||||
"filename": "i86bi-linux-l3-adventerprisek9-15.4.1T.bin",
|
||||
"version": "15.4.1T",
|
||||
"md5sum": "2eabae17778316c49cbc80e8e81262f9",
|
||||
"filesize": 152677848
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "17.16.1a",
|
||||
"images": {
|
||||
"image": "x86_64_crb_linux-adventerprisek9-ms.17.16.1a.iol"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "17.15.1",
|
||||
"images": {
|
||||
@ -59,25 +56,7 @@
|
||||
{
|
||||
"name": "17.12.1",
|
||||
"images": {
|
||||
"image": "x86_64_crb_linux-adventerprisek9-ms.bin"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "15.7(3)M2",
|
||||
"images": {
|
||||
"image": "i86bi_LinuxL3-AdvEnterpriseK9-M2_157_3_May_2018.bin"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "155-2T",
|
||||
"images": {
|
||||
"image": "i86bi-linux-l3-adventerprisek9-ms.155-2.T.bin"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "15.4.1T",
|
||||
"images": {
|
||||
"image": "i86bi-linux-l3-adventerprisek9-15.4.1T.bin"
|
||||
"image": "x86_64_crb_linux-adventerprisek9-ms"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@ -5,8 +5,9 @@
|
||||
"description": "NXOSv is a reference platform for an implementation of the Cisco Nexus operating system, based on the Nexus 7000-series platforms, running as a full virtual machine on a hypervisor. This includes NXAPI and MPLS LDP support.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/nx-os/",
|
||||
"product_name": "NX-OSv",
|
||||
"product_url": "http://virl.cisco.com/",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
@ -29,14 +30,14 @@
|
||||
"version": "7.3.0",
|
||||
"md5sum": "b4cd6edf15ab4c6bce53c3f6c1e3a742",
|
||||
"filesize": 214368256,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
},
|
||||
{
|
||||
"filename": "titanium-d1.7.2.0.D1.1.vmdk",
|
||||
"version": "7.2.0",
|
||||
"md5sum": "0ee38c7d717840cb4ca822f4870671d0",
|
||||
"filesize": 361103360,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
"download_url": "https://u.cisco.com/my-learning/my-account"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
|
||||
69
gns3server/appliances/cisco-nxosv9k-lite.gns3a
Normal file
69
gns3server/appliances/cisco-nxosv9k-lite.gns3a
Normal file
@ -0,0 +1,69 @@
|
||||
{
|
||||
"appliance_id": "4c7fd5da-be86-4168-8484-7071dc9c71fb",
|
||||
"name": "Cisco NX-OSv 9000 Lite",
|
||||
"category": "multilayer_switch",
|
||||
"description": "The NX-OSv 9000 is a virtual platform that is designed to simulate the control plane aspects of a network element running Cisco Nexus 9000 software. The NX-OSv 9000 shares the same software image running on Cisco Nexus 9000 hardware platform although no specific hardware emulation is implemented. When the software runs as a virtual machine, line card (LC) ASIC provisioning or any interaction from the control plane to hardware ASIC is handled by the NX-OSv 9000 software data plane.\nThe NX-OSv 9000 for the Cisco Nexus 9000 Series provides a useful tool to enable the devops model and rapidly test changes to the infrastructure or to infrastructure automation tools. This enables network simulations in large scale for customers to validate configuration changes on a simulated network prior to applying them on a production network. Some users have also expressed interest in using the simulation system for feature test ,verification, and automation tooling development and test simualtion prior to deployment. NX-OSv 9000 can be used as a programmability vehicle to validate software defined networks (SDNs) and Network Function Virtualization (NFV) based solutions.\nThe lite version has a reduced memory footprint, resulting in a much smaller image size than the earlier images for Cisco Nexus 9300v and 9500v.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/nx-os-9000/",
|
||||
"product_name": "NX-OSv 9000",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"availability": "service-contract",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"first_port_name": "mgmt0",
|
||||
"port_name_format": "Ethernet1/{port1}",
|
||||
"qemu": {
|
||||
"adapter_type": "e1000",
|
||||
"adapters": 10,
|
||||
"ram": 6144,
|
||||
"cpus": 2,
|
||||
"hda_disk_interface": "sata",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "nexus9500v64-lite.10.5.5.M.qcow2",
|
||||
"version": "9500v lite 10.5.5.M",
|
||||
"md5sum": "a9aafd88f36a7f44a5a2ef3322cd9bde",
|
||||
"filesize": 2617638912,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.5(5)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9300v64-lite.10.5.5.M.qcow2",
|
||||
"version": "9300v lite 10.5.5.M",
|
||||
"md5sum": "78610953005faab9505252baf4c86b78",
|
||||
"filesize": 2617573376,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.5(5)"
|
||||
},
|
||||
{
|
||||
"filename": "OVMF-edk2-stable202305.fd",
|
||||
"version": "stable202305",
|
||||
"md5sum": "6c4cf1519fec4a4b95525d9ae562963a",
|
||||
"filesize": 4194304,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
|
||||
"direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/OVMF-edk2-stable202305.fd.zip/download",
|
||||
"compression": "zip"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "9500v lite 10.5.5.M",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9500v64-lite.10.5.5.M.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9300v lite 10.5.5.M",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9300v64-lite.10.5.5.M.qcow2"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -5,8 +5,9 @@
|
||||
"description": "The NX-OSv 9000 is a virtual platform that is designed to simulate the control plane aspects of a network element running Cisco Nexus 9000 software. The NX-OSv 9000 shares the same software image running on Cisco Nexus 9000 hardware platform although no specific hardware emulation is implemented. When the software runs as a virtual machine, line card (LC) ASIC provisioning or any interaction from the control plane to hardware ASIC is handled by the NX-OSv 9000 software data plane.\nThe NX-OSv 9000 for the Cisco Nexus 9000 Series provides a useful tool to enable the devops model and rapidly test changes to the infrastructure or to infrastructure automation tools. This enables network simulations in large scale for customers to validate configuration changes on a simulated network prior to applying them on a production network. Some users have also expressed interest in using the simulation system for feature test ,verification, and automation tooling development and test simualtion prior to deployment. NX-OSv 9000 can be used as a programmability vehicle to validate software defined networks (SDNs) and Network Function Virtualization (NFV) based solutions.",
|
||||
"vendor_name": "Cisco",
|
||||
"vendor_url": "http://www.cisco.com/",
|
||||
"documentation_url": "http://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus9000/sw/7-x/nx-osv/configuration/guide/b_NX-OSv_9000/b_NX-OSv_chapter_01.html",
|
||||
"documentation_url": "https://developer.cisco.com/docs/modeling-labs/nx-os-9000/",
|
||||
"product_name": "NX-OSv 9000",
|
||||
"product_url": "https://developer.cisco.com/modeling-labs/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"availability": "service-contract",
|
||||
@ -26,12 +27,47 @@
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "nexus9500v64.10.5.5.M.qcow2",
|
||||
"version": "9500v 10.5.5.M",
|
||||
"md5sum": "c1d34bb3331d958d3219a56b6885150e",
|
||||
"filesize": 2919170048,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.5(5)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9300v64.10.5.5.M.qcow2",
|
||||
"version": "9300v 10.5.5.M",
|
||||
"md5sum": "f1cc2342b920320654d232b68551ccfd",
|
||||
"filesize": 2919104512,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.5(5)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v64.10.5.1.F.qcow2",
|
||||
"version": "9500v 10.5.1.F",
|
||||
"md5sum": "2fa6fb4dd4c5e49d53896d60fa746e59",
|
||||
"filesize": 2388459520,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.5(1)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9300v64.10.5.1.F.qcow2",
|
||||
"version": "9300v 10.5.1.F",
|
||||
"md5sum": "2bbc767debbc7c1144eabe176ae67503",
|
||||
"filesize": 2388393984,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.5(1)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v64.10.3.1.F.qcow2",
|
||||
"version": "9500v 10.3.1.F",
|
||||
"md5sum": "41e3c1c0c003b13f1bf774f0d1873e87",
|
||||
"filesize": 2097510400,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.3(1)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9300v64.10.3.1.F.qcow2",
|
||||
"version": "9300v 10.3.1.F",
|
||||
"md5sum": "a6ffd2501a5791c11cee319943b912da",
|
||||
"filesize": 2097086464,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.1(1)"
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.3(1)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v64.10.1.1.qcow2",
|
||||
@ -47,181 +83,6 @@
|
||||
"filesize": 1990983680,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.1(1)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v.9.3.13.qcow2",
|
||||
"version": "9500v 9.3.13",
|
||||
"md5sum": "bacf0f664ee34625c85a9f278b2466a2",
|
||||
"filesize": 2248409088,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(13)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9300v.9.3.13.qcow2",
|
||||
"version": "9300v 9.3.13",
|
||||
"md5sum": "d8ce30cb762df02d77ec27786a2435ad",
|
||||
"filesize": 2248343552,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(13)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v.9.3.12.qcow2",
|
||||
"version": "9500v 9.3.12",
|
||||
"md5sum": "452e5cb2a7a25feaa3ba0624a82ff9ca",
|
||||
"filesize": 1997996032,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(12)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9300v.9.3.12.qcow2",
|
||||
"version": "9300v 9.3.12",
|
||||
"md5sum": "7b6b5dad1001e11d6ebb54662616e9f2",
|
||||
"filesize": 1997930496,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(12)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v.9.3.9.qcow2",
|
||||
"version": "9500v 9.3.9",
|
||||
"md5sum": "30c25039927f89aebe73ea20d15abd6d",
|
||||
"filesize": 1980760064,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(9)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9300v.9.3.9.qcow2",
|
||||
"version": "9300v 9.3.9",
|
||||
"md5sum": "e807005cb7d2d2957b4af0e59f368b36",
|
||||
"filesize": 1980563456,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(9)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9300v.9.3.8.qcow2",
|
||||
"version": "9300v 9.3.8",
|
||||
"md5sum": "f8bd834f8395c134dc98d895c98441af",
|
||||
"filesize": 1976434688,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(8)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v.9.3.7.qcow2",
|
||||
"version": "9500v 9.3.7",
|
||||
"md5sum": "65f669e0dd379a05a8cdbb9d7592a064",
|
||||
"filesize": 1986068480,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(7)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v.9.3.3.qcow2",
|
||||
"version": "9500v 9.3.3",
|
||||
"md5sum": "7230c944041fdaa0e1b18cecccbc9a32",
|
||||
"filesize": 1714159616,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(3)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9300v.9.3.3.qcow2",
|
||||
"version": "9300v 9.3.3",
|
||||
"md5sum": "8e9a7c4815907ef47d850623f77042e2",
|
||||
"filesize": 1714225152,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(3)"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv.9.3.1.qcow2",
|
||||
"version": "9.3.1",
|
||||
"md5sum": "148fd38cb1ff78df2883f844e172fad9",
|
||||
"filesize": 1435041792,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(1)?i=!pp"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.9.2.3.qcow2",
|
||||
"version": "9.2.3",
|
||||
"md5sum": "74bd9a5b4970e868685f753e48979194",
|
||||
"filesize": 1357643776,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.2%25283%2529"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.9.2.2.qcow2",
|
||||
"version": "9.2.2",
|
||||
"md5sum": "2119702c488552fc4d1b4210a04d4f64",
|
||||
"filesize": 1344077824,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.2%25281%2529"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.9.2.1.qcow2",
|
||||
"version": "9.2.1",
|
||||
"md5sum": "1d7fa4654602d7ffbf62544edfe71986",
|
||||
"filesize": 1330315264,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.2%25281%2529"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I7.9.qcow2",
|
||||
"version": "7.0.3.I7.9",
|
||||
"md5sum": "50678c719f6b822c43dd096dbdf359e8",
|
||||
"filesize": 1003618304,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/7.0(3)I7(9)?i=!pp"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I7.7.qcow2",
|
||||
"version": "7.0.3.I7.7",
|
||||
"md5sum": "5daab34b672f9534c9aee59a6c8903b3",
|
||||
"filesize": 996212736,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/7.0%25283%2529I7%25287%2529"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I7.6.qcow2",
|
||||
"version": "7.0.3.I7.6",
|
||||
"md5sum": "a122ee954b4c11761abd99291b70544e",
|
||||
"filesize": 1031995392,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/7.0%25283%2529I7%25286%2529"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I7.5.qcow2",
|
||||
"version": "7.0.3.I7.5",
|
||||
"md5sum": "68a4008e189c8a35ccb8ee58db9608bb",
|
||||
"filesize": 1027670016,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/7.0%25283%2529I7%25285%2529"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I7.4.qcow2",
|
||||
"version": "7.0.3.I7.4",
|
||||
"md5sum": "1e980c95ca47045ae45ded6e07fabfb8",
|
||||
"filesize": 985792512,
|
||||
"download_url": "https://software.cisco.com/download/"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I7.3.qcow2",
|
||||
"version": "7.0.3.I7.3",
|
||||
"md5sum": "9d7a20367bf681a239f14097bbce470a",
|
||||
"filesize": 983629824,
|
||||
"download_url": "https://software.cisco.com/download/"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I7.2.qcow2",
|
||||
"version": "7.0.3.I7.2",
|
||||
"md5sum": "17295efb13e83b24a439148449bfd5ab",
|
||||
"filesize": 906231808,
|
||||
"download_url": "https://software.cisco.com/download/"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I7.1.qcow2",
|
||||
"version": "7.0.3.I7.1",
|
||||
"md5sum": "3c122f27d0c3684c63657207eadf4d06",
|
||||
"filesize": 903151616,
|
||||
"download_url": "https://software.cisco.com/download/"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I6.1.qcow2",
|
||||
"version": "7.0.3.I6.1",
|
||||
"md5sum": "18bb991b814a508d1190575f99deed99",
|
||||
"filesize": 780402688,
|
||||
"download_url": "https://software.cisco.com/download/"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I5.2.qcow2",
|
||||
"version": "7.0.3.I5.2",
|
||||
"md5sum": "c06aaa02f758a64fd8fee9406756f1da",
|
||||
"filesize": 777715712,
|
||||
"download_url": "https://software.cisco.com/download/"
|
||||
},
|
||||
{
|
||||
"filename": "nxosv-final.7.0.3.I5.1.qcow2",
|
||||
"version": "7.0.3.I5.1",
|
||||
"md5sum": "201ea658fa4c57452ee4b2aa4f5262a7",
|
||||
"filesize": 784990208,
|
||||
"download_url": "https://software.cisco.com/download/"
|
||||
},
|
||||
{
|
||||
"filename": "OVMF-edk2-stable202305.fd",
|
||||
"version": "stable202305",
|
||||
@ -233,6 +94,41 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "9500v 10.5.5.M",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9500v64.10.5.5.M.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9300v 10.5.5.M",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9300v64.10.5.5.M.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9500v 10.5.1.F",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9500v64.10.5.1.F.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9300v 10.5.1.F",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9300v64.10.5.1.F.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9500v 10.3.1.F",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9500v64.10.3.1.F.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9300v 10.3.1.F",
|
||||
"images": {
|
||||
@ -253,181 +149,6 @@
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9300v.10.1.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9500v 9.3.13",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9500v.9.3.13.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9300v 9.3.13",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9300v.9.3.13.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9500v 9.3.12",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9500v.9.3.12.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9300v 9.3.12",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9300v.9.3.12.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9500v 9.3.9",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9500v.9.3.9.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9300v 9.3.9",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9300v.9.3.9.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9300v 9.3.8",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9300v.9.3.8.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9500v 9.3.7",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9500v.9.3.7.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9500v 9.3.3",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9500v.9.3.3.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9300v 9.3.3",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9300v.9.3.3.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.3.1",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv.9.3.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.2.3",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.9.2.3.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.2.2",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.9.2.2.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.2.1",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.9.2.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I7.9",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I7.9.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I7.7",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I7.7.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I7.6",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I7.6.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I7.5",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I7.5.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I7.4",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I7.4.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I7.3",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I7.3.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I7.2",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I7.2.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I7.1",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I7.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I6.1",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I6.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I5.2",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I5.2.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.3.I5.1",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nxosv-final.7.0.3.I5.1.qcow2"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
"vendor_url": "https://www.extremenetworks.com",
|
||||
"documentation_url": "https://www.extremenetworks.com/support/documentation",
|
||||
"product_name": "EXOS VM",
|
||||
"registry_version": 4,
|
||||
"registry_version": 5,
|
||||
"status": "stable",
|
||||
"maintainer": "Extreme Networks",
|
||||
"maintainer_email": "GitHubscripting@extremenetworks.com",
|
||||
@ -18,18 +18,32 @@
|
||||
"qemu": {
|
||||
"adapter_type": "rtl8139",
|
||||
"adapters": 13,
|
||||
"ram": 512,
|
||||
"ram": 1024,
|
||||
"hda_disk_interface": "ide",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"boot_priority": "dc",
|
||||
"kvm": "allow",
|
||||
"options": "-cpu core2duo"
|
||||
"options": "-nographic -cpu host -enable-kvm"
|
||||
},
|
||||
|
||||
"images": [
|
||||
|
||||
{
|
||||
{
|
||||
"filename": "EXOS-VM_33.6.1.14.qcow2",
|
||||
"version": "33.6.1.14",
|
||||
"md5sum": "01ea4bea3f321f91910565bb223a2540",
|
||||
"filesize": 278647296,
|
||||
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_33.6.1.14.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "EXOS-VM_32.7.2.19.qcow2",
|
||||
"version": "32.7.2.19",
|
||||
"md5sum": "eba580a2e18d2a9cc972c9ece8917ea8",
|
||||
"filesize": 236847104,
|
||||
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_32.7.2.19.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "EXOS-VM_v32.6.3.126.qcow2",
|
||||
"version": "32.6.3.126",
|
||||
"md5sum": "5856b6c427bd605fe1c7adb6ee6b2659",
|
||||
@ -41,6 +55,18 @@
|
||||
|
||||
"versions": [
|
||||
|
||||
{
|
||||
"name": "33.6.1.14",
|
||||
"images": {
|
||||
"hda_disk_image": "EXOS-VM_33.6.1.14.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "32.7.2.19",
|
||||
"images": {
|
||||
"hda_disk_image": "EXOS-VM_32.7.2.19.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "32.6.3.126",
|
||||
"images": {
|
||||
|
||||
@ -28,6 +28,13 @@
|
||||
"options": "-nographic"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "FEGNS3.9.3.0.0.qcow2",
|
||||
"version": "v9.3.0.0",
|
||||
"md5sum": "2abfa8d64219aa75522238f87b782726",
|
||||
"filesize": 490209280,
|
||||
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_VOSS/FEGNS3.9.3.0.0.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "VOSSGNS3.8.10.1.0.qcow2",
|
||||
"version": "v8.10.1.0",
|
||||
@ -93,6 +100,13 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "v9.3.0.0",
|
||||
"images":
|
||||
{
|
||||
"hda_disk_image": "FEGNS3.9.3.0.0.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "v8.10.1.0",
|
||||
"images":
|
||||
|
||||
@ -27,20 +27,36 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "Fedora-Cloud-Base-39-1.5.x86_64.qcow2",
|
||||
"version": "39-1.5",
|
||||
"md5sum": "800a10df2d369891ed65900bcacacd47",
|
||||
"filesize": 544604160,
|
||||
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/39/Cloud/x86_64/images",
|
||||
"direct_download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/39/Cloud/x86_64/images/Fedora-Cloud-Base-39-1.5.x86_64.qcow2"
|
||||
"filename": "Fedora-Cloud-Base-Generic-44-1.7.x86_64.qcow2",
|
||||
"version": "44-1.7",
|
||||
"md5sum": "49784011eb752291bfead24d3be8163f",
|
||||
"filesize": 583729152,
|
||||
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/44/Cloud/x86_64/images",
|
||||
"direct_download_url": "https://fedora.mirrorservice.org/fedora/linux/releases/44/Cloud/x86_64/images/Fedora-Cloud-Base-Generic-44-1.7.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "Fedora-Cloud-Base-38-1.6.x86_64.qcow2",
|
||||
"version": "38-1.6",
|
||||
"md5sum": "53ddfe7b28666d5ddc55e93ff06abad2",
|
||||
"filesize": 497287168,
|
||||
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/38/Cloud/x86_64/images",
|
||||
"direct_download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/38/Cloud/x86_64/images/Fedora-Cloud-Base-38-1.6.x86_64.qcow2"
|
||||
"filename": "Fedora-Cloud-Base-Generic-43-1.6.x86_64.qcow2",
|
||||
"version": "43-1.6",
|
||||
"md5sum": "f2f671db53fae58b79bb2e2259fa3622",
|
||||
"filesize": 583335936,
|
||||
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/43/Cloud/x86_64/images",
|
||||
"direct_download_url": "https://fedora.mirrorservice.org/fedora/linux/releases/43/Cloud/x86_64/images/Fedora-Cloud-Base-Generic-43-1.6.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "Fedora-Cloud-Base-Generic-42-1.1.x86_64.qcow2",
|
||||
"version": "42-1.1",
|
||||
"md5sum": "2d660d2adc20b1fe793df5cb66f1d868",
|
||||
"filesize": 532217856,
|
||||
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/42/Cloud/x86_64/images",
|
||||
"direct_download_url": "https://fedora.mirrorservice.org/fedora/linux/releases/42/Cloud/x86_64/images/Fedora-Cloud-Base-Generic-42-1.1.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "Fedora-Cloud-Base-Generic-41-1.4.x86_64.qcow2",
|
||||
"version": "41-1.4",
|
||||
"md5sum": "8efc9edc04f38775de72ce067166b2a1",
|
||||
"filesize": 491716608,
|
||||
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images",
|
||||
"direct_download_url": "https://fedora.mirrorservice.org/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic-41-1.4.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "fedora-cloud-init-data.iso",
|
||||
@ -53,16 +69,30 @@
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "39-1.5",
|
||||
"name": "44-1.7",
|
||||
"images": {
|
||||
"hda_disk_image": "Fedora-Cloud-Base-39-1.5.x86_64.qcow2",
|
||||
"hda_disk_image": "Fedora-Cloud-Base-Generic-44-1.7.x86_64.qcow2",
|
||||
"cdrom_image": "fedora-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "38-1.6",
|
||||
"name": "43-1.6",
|
||||
"images": {
|
||||
"hda_disk_image": "Fedora-Cloud-Base-38-1.6.x86_64.qcow2",
|
||||
"hda_disk_image": "Fedora-Cloud-Base-Generic-43-1.6.x86_64.qcow2",
|
||||
"cdrom_image": "fedora-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "42-1.1",
|
||||
"images": {
|
||||
"hda_disk_image": "Fedora-Cloud-Base-Generic-42-1.1.x86_64.qcow2",
|
||||
"cdrom_image": "fedora-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "41-1.4",
|
||||
"images": {
|
||||
"hda_disk_image": "Fedora-Cloud-Base-Generic-41-1.4.x86_64.qcow2",
|
||||
"cdrom_image": "fedora-cloud-init-data.iso"
|
||||
}
|
||||
}
|
||||
|
||||
@ -29,6 +29,27 @@
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v7.4.6.M-build2588-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.6",
|
||||
"md5sum": "fba982436ff430465df6f6f283a2bd71",
|
||||
"filesize": 511053824,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v7.4.5.M-build2553-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.5",
|
||||
"md5sum": "78464ee460fce69c360901ca9ccfe4a0",
|
||||
"filesize": 510988288,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v7.4.4.F-build2550-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.4",
|
||||
"md5sum": "7bec1725b1e39dd66f4daae07492f1b4",
|
||||
"filesize": 511217664,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v7.4.3-build2487-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.3",
|
||||
@ -277,6 +298,27 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "7.4.6",
|
||||
"images": {
|
||||
"hda_disk_image": "FAZ_VM64_KVM-v7.4.6.M-build2588-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.5",
|
||||
"images": {
|
||||
"hda_disk_image": "FAZ_VM64_KVM-v7.4.5.M-build2553-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.4",
|
||||
"images": {
|
||||
"hda_disk_image": "FAZ_VM64_KVM-v7.4.4.F-build2550-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.3",
|
||||
"images": {
|
||||
|
||||
@ -28,6 +28,27 @@
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v7.4.7.M-build2731-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.7",
|
||||
"md5sum": "2ce4039789e84b3fe85565e0c4110718",
|
||||
"filesize": 103677952,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v7.4.6.M-build2726-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.6",
|
||||
"md5sum": "b787c1c5ab365f267d7e4e88b1cdc10b",
|
||||
"filesize": 103677952,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v7.4.5.M-build2702-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.5",
|
||||
"md5sum": "8465e74c4ef1751619ebb989838d457c",
|
||||
"filesize": 102367232,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v7.4.4.F-build2662-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.4",
|
||||
@ -388,6 +409,27 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "7.4.7",
|
||||
"images": {
|
||||
"hda_disk_image": "FGT_VM64_KVM-v7.4.7.M-build2731-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.6",
|
||||
"images": {
|
||||
"hda_disk_image": "FGT_VM64_KVM-v7.4.6.M-build2726-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.5",
|
||||
"images": {
|
||||
"hda_disk_image": "FGT_VM64_KVM-v7.4.5.M-build2702-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.4",
|
||||
"images": {
|
||||
|
||||
@ -30,489 +30,55 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.4.3-build2487-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.23",
|
||||
"md5sum": "b01d9f86aa27c538407d518df1326863",
|
||||
"filesize": 346107904,
|
||||
"filename": "FMG_VM64_KVM-v7.4.6.M-build2588-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.6",
|
||||
"md5sum": "7cb219e1070d393f61cf750d818b23b1",
|
||||
"filesize": 349122560,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.4.2-build2397-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.2",
|
||||
"md5sum": "36371fbf06210ded57c00b2ff290f2c5",
|
||||
"filesize": 322514944,
|
||||
"filename": "FMG_VM64_KVM-v7.4.5.M-build2553-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.5",
|
||||
"md5sum": "fa59ddce0cb933741f16866472026723",
|
||||
"filesize": 349769728,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.4.1-build2308-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.1",
|
||||
"md5sum": "e542cc8f2d8f46e9c32b783bf31bef39",
|
||||
"filesize": 309387264,
|
||||
"filename": "FMG_VM64_KVM-v7.4.4.F-build2550-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.4",
|
||||
"md5sum": "770727bb30555e6938308bbf95f19555",
|
||||
"filesize": 349847552,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.2.5-build1574-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.2.5",
|
||||
"md5sum": "754326845096afd909ec45d98f8d5a83",
|
||||
"filesize": 278401024,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.2.4-build1460-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.2.4",
|
||||
"md5sum": "98fa9830d9ecb5911a703d03b80026b6",
|
||||
"filesize": 261992448,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.2.2-build1334-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.2.2",
|
||||
"md5sum": "2ff1298257321cd485d2cad91d6ce510",
|
||||
"filesize": 246083584,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.2.1-build1215-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.2.1",
|
||||
"md5sum": "1a3eeff1204fa8f4243773f7521e12b5",
|
||||
"filesize": 242814976,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.0.12-build0623-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.0.12",
|
||||
"md5sum": "5b6f6a2b8bc00e56337aa7023a9025cf",
|
||||
"filesize": 249520128,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.0.11-build0595-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.0.11",
|
||||
"md5sum": "7b166222136e26190159f37cccbaab6e",
|
||||
"filesize": 249360384,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.0.9-build0489-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.0.9",
|
||||
"md5sum": "dbeb6a79b6e421000573dbbbdb50b8b5",
|
||||
"filesize": 247955456,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.0.6-build0372-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.0.6",
|
||||
"md5sum": "dfa4df9e976ed87e73cb9601a8a70323",
|
||||
"filesize": 239190016,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.0.5-build0365-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.0.5",
|
||||
"md5sum": "e8b9c992784cea766b52a427a5fe0279",
|
||||
"filesize": 237535232,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v6.4.14-build2660-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.4.14",
|
||||
"md5sum": "0fe56e363b166c07b710bde795e36049",
|
||||
"filesize": 219430912,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v6.4.12-build2610-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.4.12",
|
||||
"md5sum": "36c0dc531d921e5f1e1e09b030f7c813",
|
||||
"filesize": 219455488,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v6-build2288-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.4.5",
|
||||
"md5sum": "bd2791984b03f55a6825297e83c6576a",
|
||||
"filesize": 117014528,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v6-build2253-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.4.4",
|
||||
"md5sum": "3554a47fde2dc91d17eec16fd0dc10a3",
|
||||
"filesize": 116621312,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v6-build1183-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.2.2",
|
||||
"md5sum": "f5051a8fe49d916bb554b9bae32a1eb4",
|
||||
"filesize": 139145216,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v6-build1050-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.2.0",
|
||||
"md5sum": "c19d2527f91ad1bbafbde5bf08487867",
|
||||
"filesize": 126894080,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v6-build0349-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.0.6",
|
||||
"md5sum": "d03f024c948ba6e2bb9e66c11ca8f34c",
|
||||
"filesize": 112553984,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v6-build0255-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.0.3",
|
||||
"md5sum": "5f34d52d9289b0be2a4c04943446ea39",
|
||||
"filesize": 115703808,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v6-build0205-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.0.2",
|
||||
"md5sum": "8f748649c537d9b5466b24c5b4e62017",
|
||||
"filesize": 116981760,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v6-build0092-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.0.0",
|
||||
"md5sum": "73bfe1bc70124521a524d857646b9c2e",
|
||||
"filesize": 119066624,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v5-build1631-FORTINET.out.kvm.qcow2",
|
||||
"version": "5.6.2",
|
||||
"md5sum": "c81cc247e8eb03249b475fe0e847653e",
|
||||
"filesize": 106946560,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v5-build1619-FORTINET.out.kvm.qcow2",
|
||||
"version": "5.6.1",
|
||||
"md5sum": "8cc553842564d232af295d6a0c784c1f",
|
||||
"filesize": 106831872,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v5-build1557-FORTINET.out.kvm.qcow2",
|
||||
"version": "5.6.0",
|
||||
"md5sum": "f8bd600796f894f4ca1ea2d6b4066d3d",
|
||||
"filesize": 108363776,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v5-build1225-FORTINET.out.kvm.qcow2",
|
||||
"version": "5.4.4",
|
||||
"md5sum": "53bc6e320fe7bde5d2b636bde95a910c",
|
||||
"filesize": 89911296,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v5-build1187-FORTINET.out.kvm.qcow2",
|
||||
"version": "5.4.3",
|
||||
"md5sum": "53602c776d215d98e32163a10804fc49",
|
||||
"filesize": 87425024,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v5-build1151-FORTINET.out.kvm.qcow2",
|
||||
"version": "5.4.2",
|
||||
"md5sum": "8e131ad40009c740f3efdee6dc3a0ac3",
|
||||
"filesize": 86437888,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v5-build1082-FORTINET.out.kvm.qcow2",
|
||||
"version": "5.4.1",
|
||||
"md5sum": "fc1815410f3f0536e2e3a9c1c5c07f41",
|
||||
"filesize": 83124224,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v5-build1019-FORTINET.out.kvm.qcow2",
|
||||
"version": "5.4.0",
|
||||
"md5sum": "1cfb22671cb372d8bf3e47b9c3c55ded",
|
||||
"filesize": 77541376,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v5-build0786-FORTINET.out.kvm.qcow2",
|
||||
"version": "5.2.10",
|
||||
"md5sum": "377fe38bf07bc2435608e5b65f780f07",
|
||||
"filesize": 64962560,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v5-build0780-FORTINET.out.kvm.qcow2",
|
||||
"version": "5.2.9",
|
||||
"md5sum": "04268e779d3d5e6c928c6fd638423c52",
|
||||
"filesize": 65007616,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v5-build0777-FORTINET.out.kvm.qcow2",
|
||||
"version": "5.2.8",
|
||||
"md5sum": "6dbf148ace9bf309ad383757afd75fad",
|
||||
"filesize": 65011712,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v5-build0757-FORTINET.out.kvm.qcow2",
|
||||
"version": "5.2.7",
|
||||
"md5sum": "d37dbaa49d7522324681eeba19f7699b",
|
||||
"filesize": 65056768,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "empty30G.qcow2",
|
||||
"filename": "empty500G.qcow2",
|
||||
"version": "1.0",
|
||||
"md5sum": "3411a599e822f2ac6be560a26405821a",
|
||||
"filesize": 197120,
|
||||
"md5sum": "658c825441b9b3080ba00f9eec002eaa",
|
||||
"filesize": 204608,
|
||||
"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/empty30G.qcow2/download"
|
||||
"direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty500G.qcow2/download"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "7.4.3",
|
||||
"name": "7.4.6",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.4.3-build2487-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.4.6.M-build2588-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty500G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.2",
|
||||
"name": "7.4.5",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.4.2-build2397-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.4.5.M-build2553-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty500G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.1",
|
||||
"name": "7.4.4",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.4.1-build2308-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.2.5",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.2.5-build1574-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.2.4",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.2.4-build1460-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.2.2",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.2.2-build1334-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.2.1",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.2.1-build1215-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.12",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.0.12-build0623-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.11",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.0.11-build0595-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.9",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.0.9-build0489-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.6",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.0.6-build0372-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.5",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.0.5-build0365-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.4.14",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v6.4.14-build2660-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.4.12",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v6.4.12-build2610-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.4.5",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v6-build2288-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.4.4",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v6-build2253-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.2.2",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v6-build1183-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.2.0",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v6-build1050-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.0.6",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v6-build0349-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.0.3",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v6-build0255-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.0.2",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v6-build0205-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.0.0",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v6-build0092-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "5.6.2",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v5-build1631-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "5.6.1",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v5-build1619-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "5.6.0",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v5-build1557-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "5.4.4",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v5-build1225-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "5.4.3",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v5-build1187-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "5.4.2",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v5-build1151-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "5.4.1",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v5-build1082-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "5.4.0",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v5-build1019-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "5.2.10",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v5-build0786-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "5.2.9",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v5-build0780-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "5.2.8",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v5-build0777-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "5.2.7",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v5-build0757-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.4.4.F-build2550-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty500G.qcow2"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@ -25,19 +25,19 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "rtr.qcow2",
|
||||
"version": "20.7.1",
|
||||
"md5sum": "4707415d15d20ced92423d90e52eedcd",
|
||||
"filesize": 254767616,
|
||||
"download_url": "http://freerouter.nop.hu/",
|
||||
"direct_download_url": "http://dl.nop.hu/rtr.qcow2"
|
||||
"filename": "rtr-x86_64.qcow2",
|
||||
"version": "25.8.29",
|
||||
"md5sum": "13d72fdfd772258808a9d4b75fa67083",
|
||||
"filesize": 73269248,
|
||||
"download_url": "http://www.freertr.org/",
|
||||
"direct_download_url": "http://dl.nop.hu/rtr-x86_64.qcow2"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "20.7.1",
|
||||
"name": "25.8.29",
|
||||
"images": {
|
||||
"hda_disk_image": "rtr.qcow2"
|
||||
"hda_disk_image": "rtr-x86_64.qcow2"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
60
gns3server/appliances/home-assistant.gns3a
Normal file
60
gns3server/appliances/home-assistant.gns3a
Normal file
@ -0,0 +1,60 @@
|
||||
{
|
||||
"appliance_id": "4ac0d5bc-714d-4a5a-8af5-8fb452046acd",
|
||||
"name": "Home Assistant",
|
||||
"category": "guest",
|
||||
"description": "Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts.",
|
||||
"vendor_name": "Open Home Foundation",
|
||||
"vendor_url": "https://www.openhomefoundation.org/",
|
||||
"vendor_logo_url": "https://www.openhomefoundation.org/assets/images/logo/open-home-foundation.svg",
|
||||
"documentation_url": "https://www.home-assistant.io/installation/alternative",
|
||||
"product_name": "haos",
|
||||
"product_url": "https://www.home-assistant.io/",
|
||||
"registry_version": 8,
|
||||
"status": "stable",
|
||||
"availability": "free",
|
||||
"maintainer": "Neyder Achahuanco Apaza",
|
||||
"maintainer_email": "gns3@neyder.net",
|
||||
"usage": "You will be able to reach Home Assistant on homeassistant.local:8123, you might need to access Home Assistant at homeassistant:8123 or http://X.X.X.X:8123 (replace X.X.X.X with your virtual machine\u2019s IP address).\nYou can access trough console with root user without password.",
|
||||
"symbol": "home-assistant-logomark-color-on-light.svg",
|
||||
"default_username": "cisco",
|
||||
"default_password": "admin",
|
||||
"settings": [
|
||||
{
|
||||
"name": "Default template settings",
|
||||
"default": true,
|
||||
"template_type": "qemu",
|
||||
"template_properties":
|
||||
{
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"platform": "x86_64",
|
||||
"adapters": 1,
|
||||
"ram": 2048,
|
||||
"cpus": 2,
|
||||
"hda_disk_interface": "virtio",
|
||||
"console_type": "telnet",
|
||||
"boot_priority": "cd",
|
||||
"on_close": "shutdown_signal",
|
||||
"uefi": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"images": [
|
||||
{
|
||||
"filename": "haos_ova-17.1.qcow2",
|
||||
"version": "17.1",
|
||||
"md5sum": "e1b950430045859a3ac035cb420df158",
|
||||
"filesize": 1024393216,
|
||||
"download_url": "https://www.home-assistant.io/installation/alternative",
|
||||
"direct_download_url": "https://github.com/home-assistant/operating-system/releases/download/17.1/haos_ova-17.1.qcow2.xz",
|
||||
"compression": "xz"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"images": {
|
||||
"hda_disk_image": "haos_ova-17.1.qcow2"
|
||||
},
|
||||
"name": "17.1"
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
{
|
||||
"appliance_id": "bd86792e-9870-4b42-8f16-cb2776f1d5d5",
|
||||
"tags": ["device_type:gns3_huawei_telnet_ce"],
|
||||
"name": "HuaWei CE12800",
|
||||
"category": "multilayer_switch",
|
||||
"description": "CE12800 series switches are high-performance core switches designed for data center networks and high-end campus networks. The switches provide stable, reliable, secure, and high-performance Layer 2/Layer 3 switching services, to help build an elastic, virtualized, agile, and high-quality network.",
|
||||
|
||||
258
gns3server/appliances/infix.gns3a
Normal file
258
gns3server/appliances/infix.gns3a
Normal file
@ -0,0 +1,258 @@
|
||||
{
|
||||
"appliance_id": "4d351078-c6f5-444c-ab30-0ef20e3d8c53",
|
||||
"name": "Infix",
|
||||
"category": "router",
|
||||
"description": "Infix OS is a free Linux-based operating system with made-easy management using NETCONF, RESTCONF, or the built-in command line interface (CLI). It is suitable for both end-devices with a single Ethernet port and switches/routers with multiple ports. Immutable by design, extensions are possible using Docker containers.",
|
||||
"vendor_name": "KernelKit",
|
||||
"vendor_url": "https://github.com/kernelkit",
|
||||
"vendor_logo_url": "https://kernelkit.org/assets/img/jack.png",
|
||||
"product_name": "Infix",
|
||||
"registry_version": 4,
|
||||
"documentation_url": "https://kernelkit.org/infix/latest/",
|
||||
"status": "stable",
|
||||
"availability": "free",
|
||||
"maintainer": "KernelKit",
|
||||
"maintainer_email": "kernelkit@googlegroups.com",
|
||||
"usage": "Default login, user/pass: admin/admin\n\nType 'cli' (and Enter) followed by 'help' for an overview of commands and relevant configuration files.",
|
||||
"port_name_format": "eth{0}",
|
||||
"linked_clone": true,
|
||||
"symbol": "router_red.svg",
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 10,
|
||||
"ram": 512,
|
||||
"cpus": 1,
|
||||
"hda_disk_interface": "virtio",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"process_priority": "normal",
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "OVMF-edk2-stable202305.fd",
|
||||
"version": "stable202305",
|
||||
"md5sum": "6c4cf1519fec4a4b95525d9ae562963a",
|
||||
"filesize": 4194304,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
|
||||
"direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/OVMF-edk2-stable202305.fd.zip/download",
|
||||
"compression": "zip"
|
||||
},
|
||||
{
|
||||
"filename": "infix-x86_64-disk-24.11.1.img",
|
||||
"filesize": 536870912,
|
||||
"md5sum": "673a123fe122d1c2f5724baf9965a19d",
|
||||
"version": "24.11.1",
|
||||
"download_url": "https://github.com/kernelkit/infix/releases/download/v24.11.1/infix-x86_64-24.11.1.tar.gz",
|
||||
"compression": "gzip"
|
||||
},
|
||||
{
|
||||
"filename": "infix-x86_64-disk-25.01.0.img",
|
||||
"filesize": 536870912,
|
||||
"md5sum": "a814d93b385116b4a35712c445b5f830",
|
||||
"version": "25.01.0",
|
||||
"download_url": "https://github.com/kernelkit/infix/releases/download/v25.01.0/infix-x86_64-25.01.0.tar.gz",
|
||||
"compression": "gzip"
|
||||
},
|
||||
{
|
||||
"filename": "infix-x86_64-disk-25.02.0.img",
|
||||
"filesize": 536870912,
|
||||
"md5sum": "8e29474c97df3486eb063a8af5043f50",
|
||||
"version": "25.02.0",
|
||||
"download_url": "https://github.com/kernelkit/infix/releases/download/v25.02.0/infix-x86_64-25.02.0.tar.gz",
|
||||
"compression": "gzip"
|
||||
},
|
||||
{
|
||||
"filename": "infix-x86_64-disk-25.03.0.img",
|
||||
"filesize": 536870912,
|
||||
"md5sum": "5e1ed1081cd1673bfed4a9b5b1c58e08",
|
||||
"version": "25.03.0",
|
||||
"download_url": "https://github.com/kernelkit/infix/releases/download/v25.03.0/infix-x86_64-25.03.0.tar.gz",
|
||||
"compression": "gzip"
|
||||
},
|
||||
{
|
||||
"filename": "infix-x86_64-disk-25.04.0.qcow2",
|
||||
"filesize": 259723776,
|
||||
"md5sum": "84bd999513325d0007d0e6587abc6140",
|
||||
"version": "25.04.0",
|
||||
"direct_download_url": "https://github.com/kernelkit/infix/releases/download/v25.04.0/infix-x86_64-disk-25.04.0.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "infix-x86_64-disk-25.05.0.qcow2",
|
||||
"filesize": 259958784,
|
||||
"md5sum": "a6b1b3a6bccc60bb5214f2b864602fde",
|
||||
"version": "25.05.0",
|
||||
"direct_download_url": "https://github.com/kernelkit/infix/releases/download/v25.05.0/infix-x86_64-disk-25.05.0.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "infix-x86_64-disk-25.08.0.qcow2",
|
||||
"filesize": 284453888,
|
||||
"md5sum": "5fbf146d2ac73d1bd8fa1c509d6169b1",
|
||||
"version": "25.08.0",
|
||||
"direct_download_url": "https://github.com/kernelkit/infix/releases/download/v25.08.0/infix-x86_64-disk-25.08.0.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "infix-x86_64-disk-25.09.0.qcow2",
|
||||
"filesize": 285120000,
|
||||
"md5sum": "9761968406780a5b28311b8527f8629f",
|
||||
"version": "25.09.0",
|
||||
"direct_download_url": "https://github.com/kernelkit/infix/releases/download/v25.09.0/infix-x86_64-disk-25.09.0.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "infix-x86_64-disk-25.10.0.qcow2",
|
||||
"filesize": 288818688,
|
||||
"md5sum": "781d0fce9fbf789f6ea6ff10dc104afb",
|
||||
"version": "25.10.0",
|
||||
"direct_download_url": "https://github.com/kernelkit/infix/releases/download/v25.10.0/infix-x86_64-disk-25.10.0.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "infix-x86_64-disk-25.11.0.qcow2",
|
||||
"filesize": 288930816,
|
||||
"md5sum": "e2eb1a4fff9d56815f37c2e82a6279fb",
|
||||
"version": "25.11.0",
|
||||
"direct_download_url": "https://github.com/kernelkit/infix/releases/download/v25.11.0/infix-x86_64-disk-25.11.0.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "infix-x86_64-v26.01.0.qcow2",
|
||||
"filesize": 307363840,
|
||||
"md5sum": "bd3b9c56f98ba264c36e4d6f69931546",
|
||||
"version": "26.01.0",
|
||||
"direct_download_url": "https://github.com/kernelkit/infix/releases/download/v26.01.0/infix-x86_64-v26.01.0.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "infix-x86_64-v26.02.1.qcow2",
|
||||
"filesize": 316407808,
|
||||
"md5sum": "0c4da508cfcb702c066f47227644b65f",
|
||||
"version": "26.02.1",
|
||||
"direct_download_url": "https://github.com/kernelkit/infix/releases/download/v26.02.1/infix-x86_64-v26.02.1.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "infix-x86_64-v26.03.0.qcow2",
|
||||
"filesize": 320339968,
|
||||
"md5sum": "24cd1006734993dab338e5c75f80b875",
|
||||
"version": "26.03.0",
|
||||
"direct_download_url": "https://github.com/kernelkit/infix/releases/download/v26.03.0/infix-x86_64-v26.03.0.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "infix-x86_64-v26.05.0.qcow2",
|
||||
"filesize": 330039296,
|
||||
"md5sum": "60f7c36c389c33ab108acc021f41ccd5",
|
||||
"version": "26.05.0",
|
||||
"direct_download_url": "https://github.com/kernelkit/infix/releases/download/v26.05.0/infix-x86_64-v26.05.0.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "infix-x86_64-v26.06.0.qcow2",
|
||||
"filesize": 363593728,
|
||||
"md5sum": "79ca8bd8534bbaa1af0ab874a49d6f4c",
|
||||
"version": "26.06.0",
|
||||
"direct_download_url": "https://github.com/kernelkit/infix/releases/download/v26.06.0/infix-x86_64-v26.06.0.qcow2"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "26.06.0",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "infix-x86_64-v26.06.0.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "26.05.0",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "infix-x86_64-v26.05.0.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "26.03.0",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "infix-x86_64-v26.03.0.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "26.02.1",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "infix-x86_64-v26.02.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "26.01.0",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "infix-x86_64-v26.01.0.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "25.11.0",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "infix-x86_64-disk-25.11.0.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "25.10.0",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "infix-x86_64-disk-25.10.0.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "25.09.0",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "infix-x86_64-disk-25.09.0.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "25.08.0",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "infix-x86_64-disk-25.08.0.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "25.05.0",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "infix-x86_64-disk-25.05.0.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "25.04.0",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "infix-x86_64-disk-25.04.0.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "25.03.0",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "infix-x86_64-disk-25.03.0.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "25.02.0",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "infix-x86_64-disk-25.02.0.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "25.01.0",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "infix-x86_64-disk-25.01.0.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "24.11.1",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "infix-x86_64-disk-24.11.1.img"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
50
gns3server/appliances/innovaphone-app.gns3a
Normal file
50
gns3server/appliances/innovaphone-app.gns3a
Normal file
@ -0,0 +1,50 @@
|
||||
{
|
||||
"appliance_id": "92dbd0e9-144e-4c59-a4a8-97b6a1661818",
|
||||
"name": "Innovaphone App-Platform",
|
||||
"category": "guest",
|
||||
"description": "In addition to telephony, apps for Video Telephony, Chat, Conferencing, Application Sharing and many other functions have become indispensable UCC tools in the area of business communication. Based on the myApps platform and its various components, innovaphone provides a collaborative work and communication platform for enhanced corporate communications \u2013 regardless of the location and the device being used. The innovaphone platform myApps consists of many independent components that work well individually, yet unfold their remarkable performance when combined.",
|
||||
"vendor_name": "Innovaphone",
|
||||
"vendor_url": "https://www.innovaphone.com",
|
||||
"vendor_logo_url": "https://www.innovaphone.com/content/downloads/innovaphone-myapps-logo-short-without-background-screen.png",
|
||||
"documentation_url": "https://wiki.innovaphone.com/index.php?title=Reference14r2:Concept_App_Platform",
|
||||
"product_name": "App-Platform",
|
||||
"product_url": "https://www.innovaphone.com/en/products/myapps/myapps-platform.html",
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"availability": "free-to-try",
|
||||
"maintainer": "Thomas Marchsteiner",
|
||||
"maintainer_email": "thomas.marchsteiner@acp.at",
|
||||
"usage": "Default users console:root/iplinux , ssh:admin/ipapps , Webinterface:pwd \nAfter first boot wait for automatic reboot.\nA static ip can be set via the setip utility. \nLoading another keymap can be done via the loadkeys command. \nThe app-platform-disk1.vmdk file is contained within an ova file. \nIt can be extraced with the tar utility, 7Zip or any other tool which can handle tar files.",
|
||||
"symbol": "innovaphone-ap-icon.jpg",
|
||||
"first_port_name": "eth0",
|
||||
"qemu": {
|
||||
"adapter_type": "vmxnet3",
|
||||
"adapters": 1,
|
||||
"ram": 512,
|
||||
"cpus": 1,
|
||||
"hda_disk_interface": "scsi",
|
||||
"arch": "x86_64",
|
||||
"console_type": "vnc",
|
||||
"boot_priority": "d",
|
||||
"kvm": "allow",
|
||||
"on_close": "power_off",
|
||||
"process_priority": "normal"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "app-platform-disk1_120010.vmdk",
|
||||
"version": "12.0010",
|
||||
"md5sum": "d5a5a77f682c2c988b0810935d79a787",
|
||||
"filesize": 129474560,
|
||||
"download_url": "https://store.innovaphone.com/"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"images": {
|
||||
"hda_disk_image": "app-platform-disk1_120010.vmdk"
|
||||
},
|
||||
"name": "12.0010"
|
||||
}
|
||||
]
|
||||
}
|
||||
78
gns3server/appliances/innovaphone-ipva.gns3a
Normal file
78
gns3server/appliances/innovaphone-ipva.gns3a
Normal file
@ -0,0 +1,78 @@
|
||||
{
|
||||
"appliance_id": "ddf8f7a4-60c0-4c9d-849c-ffc3c9d1d082",
|
||||
"name": "Innovaphone IPVA",
|
||||
"category": "guest",
|
||||
"description": "The innovaphone PBX is a professional IP telephone system. The IPVA is a software-only solution. It appears as and performs as an innovaphone 'hard-box' excluding DSP-, ISDN-/AB-resources.",
|
||||
"vendor_name": "Innovaphone",
|
||||
"vendor_url": "https://www.innovaphone.com/",
|
||||
"vendor_logo_url": "https://www.innovaphone.com/content/downloads/innovaphone-myapps-logo-short-without-background-screen.png",
|
||||
"documentation_url": "https://wiki.innovaphone.com/index.php?title=Reference15r1:Concept_Innovaphone_Virtual_Appliance_(IPVA)",
|
||||
"product_name": "IPVA",
|
||||
"product_url": "https://www.innovaphone.com/en/products/innovaphone-pbx.html",
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"availability": "free-to-try",
|
||||
"maintainer": "Thomas Marchsteiner",
|
||||
"maintainer_email": "thomas.marchsteiner@acp.at",
|
||||
"usage": "Default user admin/ipva \nDefault network configuration: DHCP client on eth0 with fallback to static address 192.168.0.1/24 after timeout. Static address 192.168.1.1/24 on eth1\n The ova in the zip file contains the disk images to run this appliance. Disableing the dhcp client and setting a static IP is possible with the following commands:\n> config change IP0 ETH0 /addr 192.168.0.1 /mask 255.255.255.0 \n> config change DHCP0 /mode off \n> config write \n> config activate \n> reset",
|
||||
"symbol": "innovaphone-pbx-green.png",
|
||||
"first_port_name": "eth0",
|
||||
"port_name_format": "eth{port1}",
|
||||
"qemu": {
|
||||
"adapter_type": "vmxnet3",
|
||||
"adapters": 2,
|
||||
"ram": 256,
|
||||
"cpus": 1,
|
||||
"hda_disk_interface": "ide",
|
||||
"hdb_disk_interface": "ide",
|
||||
"hdc_disk_interface": "ide",
|
||||
"hdd_disk_interface": "ide",
|
||||
"arch": "x86_64",
|
||||
"console_type": "vnc",
|
||||
"boot_priority": "d",
|
||||
"kvm": "allow",
|
||||
"on_close": "power_off",
|
||||
"process_priority": "normal"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "ipva-qemu-disk1-14r2.vmdk",
|
||||
"version": "14r2",
|
||||
"md5sum": "aaa1c3885eee30ca6ffa3827619e8643",
|
||||
"filesize": 6269952,
|
||||
"download_url": "https://store.innovaphone.com/"
|
||||
},
|
||||
{
|
||||
"filename": "ipva-qemu-disk2-14r2.vmdk",
|
||||
"version": "14r2",
|
||||
"md5sum": "008a8fc6b0b1e5f11a3e7fd6f22ba349",
|
||||
"filesize": 72192,
|
||||
"download_url": "https://store.innovaphone.com/"
|
||||
},
|
||||
{
|
||||
"filename": "ipva-qemu-disk3-14r2.vmdk",
|
||||
"version": "14r2",
|
||||
"md5sum": "20516731c480e2112b3fb4a4d7f514f2",
|
||||
"filesize": 68096,
|
||||
"download_url": "https://store.innovaphone.com/"
|
||||
},
|
||||
{
|
||||
"filename": "ipva-qemu-disk4-14r2.vmdk",
|
||||
"version": "14r2",
|
||||
"md5sum": "15d7d79ef8c28bd29b2eceac8405f964",
|
||||
"filesize": 68096,
|
||||
"download_url": "https://store.innovaphone.com/"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"images": {
|
||||
"hda_disk_image": "ipva-qemu-disk1-14r2.vmdk",
|
||||
"hdb_disk_image": "ipva-qemu-disk2-14r2.vmdk",
|
||||
"hdc_disk_image": "ipva-qemu-disk3-14r2.vmdk",
|
||||
"hdd_disk_image": "ipva-qemu-disk4-14r2.vmdk"
|
||||
},
|
||||
"name": "14r2"
|
||||
}
|
||||
]
|
||||
}
|
||||
75
gns3server/appliances/juniper-vJunos-router.gns3a
Normal file
75
gns3server/appliances/juniper-vJunos-router.gns3a
Normal file
@ -0,0 +1,75 @@
|
||||
{
|
||||
"appliance_id": "12394e0d-9ac5-4da5-8e91-94a462536b61",
|
||||
"name": "vJunos-router",
|
||||
"category": "router",
|
||||
"description": "vJunos-router",
|
||||
"vendor_name": "Juniper",
|
||||
"vendor_url": "https://www.juniper.net",
|
||||
"documentation_url": "https://www.juniper.net/documentation/product/us/en/vjunos-router/",
|
||||
"product_name": "vJunos Router",
|
||||
"registry_version": 6,
|
||||
"status": "stable",
|
||||
"availability": "free",
|
||||
"maintainer": "AAm-kun",
|
||||
"maintainer_email": "github@sugarpapa.mozmail.com",
|
||||
"usage": "GNS3 SHOULD be a baremetal installation. Using the GNS3 VM MIGHT result in unwanted issues. Default user is root. No password is needed.",
|
||||
"symbol": "juniper-vmx.svg",
|
||||
"first_port_name": "fxp0",
|
||||
"port_name_format": "ge-0/0/{port0}",
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 11,
|
||||
"ram": 5120,
|
||||
"cpus": 4,
|
||||
"hda_disk_interface": "virtio",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "require",
|
||||
"options": "-serial mon:stdio -nographic -smbios type=1,product=VM-VMX,family=lab -cpu host",
|
||||
"on_close": "power_off"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "vJunos-router-24.2R1-S2.qcow2",
|
||||
"version": "24.2R1-S2",
|
||||
"md5sum": "dd906b4d19463e22f3e1a297ff1a7464",
|
||||
"filesize": 3675783168,
|
||||
"download_url": "https://support.juniper.net/support/downloads/?p=vjunos-router"
|
||||
},
|
||||
{
|
||||
"filename": "vJunos-router-23.4R2-S2.1.qcow2",
|
||||
"version": "23.4R2-S2.1",
|
||||
"md5sum": "e25f5acdfc6c076d0023fd8289bcdd89",
|
||||
"filesize": 3644063744,
|
||||
"download_url": "https://support.juniper.net/support/downloads/?p=vjunos-router"
|
||||
},
|
||||
{
|
||||
"filename": "vJunos-router-23.2R1.15.qcow2",
|
||||
"version": "23.2R1.15",
|
||||
"md5sum": "18670fb67633822697fdd3cf982e7eb1",
|
||||
"filesize": 3653566464,
|
||||
"download_url": "https://support.juniper.net/support/downloads/?p=vjunos-router"
|
||||
}
|
||||
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"images": {
|
||||
"hda_disk_image": "vJunos-router-24.2R1-S2.qcow2"
|
||||
},
|
||||
"name": "24.2R1-S2"
|
||||
},
|
||||
{
|
||||
"images": {
|
||||
"hda_disk_image": "vJunos-router-23.4R2-S2.1.qcow2"
|
||||
},
|
||||
"name": "23.4R2-S2.1"
|
||||
},
|
||||
{
|
||||
"images": {
|
||||
"hda_disk_image": "vJunos-router-23.2R1.15.qcow2"
|
||||
},
|
||||
"name": "23.2R1.15"
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -11,237 +11,34 @@
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "Default password is toor\nEnable persistence by selecting boot option 'Live USB Persistence'",
|
||||
"usage": "Default username is kali and the default password is kali",
|
||||
"port_name_format": "eth{0}",
|
||||
"qemu": {
|
||||
"adapter_type": "e1000",
|
||||
"adapters": 8,
|
||||
"ram": 1024,
|
||||
"ram": 2048,
|
||||
"cpus": 2,
|
||||
"hda_disk_interface": "ide",
|
||||
"arch": "x86_64",
|
||||
"console_type": "vnc",
|
||||
"boot_priority": "d",
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "kali-linux-2021.1-live-amd64.iso",
|
||||
"version": "2021.1",
|
||||
"md5sum": "3a3716fef866e5c29a1c1ccfc94264b5",
|
||||
"filesize": 3591385088,
|
||||
"download_url": "http://cdimage.kali.org/kali-2021.1/",
|
||||
"direct_download_url": "http://cdimage.kali.org/kali-2021.1/kali-linux-2021.1-live-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2019.3-amd64.iso",
|
||||
"version": "2019.3",
|
||||
"md5sum": "9c6fb00558f78ed06992d89f745ef975",
|
||||
"filesize": 3037736960,
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2019.3",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2019.3/kali-linux-2019.3-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2019.2-amd64.iso",
|
||||
"version": "2019.2",
|
||||
"md5sum": "0f89b6225d7ea9c18682f7cc541c1179",
|
||||
"filesize": 3353227264,
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2019.2",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2019.2/kali-linux-2019.2-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-mate-2019.2-amd64.iso",
|
||||
"version": "2019.2 (MATE)",
|
||||
"md5sum": "fec8dd7009f932c51a74323df965a709",
|
||||
"filesize": 3313217536,
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2019.2",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2019.2/kali-linux-mate-2019.2-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2019.1a-amd64.iso",
|
||||
"version": "2019.1a",
|
||||
"md5sum": "58c6111ed0be1919ea87267e7e65ab0f",
|
||||
"filesize": 3483873280,
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2019.1a",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2019.1a/kali-linux-2019.1a-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2018.4-amd64.iso",
|
||||
"version": "2018.4",
|
||||
"md5sum": "1b2d598bb8d2003e6207c119c0ba42fe",
|
||||
"filesize": 3139436544,
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2018.4",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2018.4/kali-linux-2018.4-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2018.3a-amd64.iso",
|
||||
"version": "2018.3a",
|
||||
"md5sum": "2da675d016bd690c05e180e33aa98b94",
|
||||
"filesize": 3192651776,
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2018.3a",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2018.3a/kali-linux-2018.3a-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2018.1-amd64.iso",
|
||||
"version": "2018.1",
|
||||
"md5sum": "a3feb90df5b71b3c7f4a02bdddf221d7",
|
||||
"filesize": 3028500480,
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2018.1",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2018.1/kali-linux-2018.1-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2017.3-amd64.iso",
|
||||
"version": "2017.3",
|
||||
"md5sum": "b465580c897e94675ac1daf031fa66b9",
|
||||
"filesize": 2886402048,
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2017.3/",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2017.3/kali-linux-2017.3-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2017.2-amd64.iso",
|
||||
"version": "2017.2",
|
||||
"md5sum": "541654f8f818450dc0db866a0a0f6eec",
|
||||
"filesize": 3020619776,
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2017.2/",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2017.2/kali-linux-2017.2-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2017.1-amd64.iso",
|
||||
"version": "2017.1",
|
||||
"md5sum": "c8e742283929d7a12dbe7c58e398ff08",
|
||||
"filesize": 2794307584,
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2017.1/",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2017.1/kali-linux-2017.1-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2016.2-amd64.iso",
|
||||
"version": "2016.2",
|
||||
"md5sum": "3d163746bc5148e61ad689d94bc263f9",
|
||||
"filesize": 3076767744,
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2016.2/",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2016.2/kali-linux-2016.2-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2016.1-amd64.iso",
|
||||
"version": "2016.1",
|
||||
"md5sum": "2e1230dc14036935b3279dfe3e49ad39",
|
||||
"filesize": 2945482752,
|
||||
"download_url": "http://old.kali.org/kali-images/kali-2016.1/",
|
||||
"direct_download_url": "http://old.kali.org/kali-images/kali-2016.1/kali-linux-2016.1-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-2.0-amd64.iso",
|
||||
"version": "2.0",
|
||||
"md5sum": "ef192433017c5d99a156eaef51fd389d",
|
||||
"filesize": 3320512512,
|
||||
"download_url": "https://www.offensive-security.com/kali-linux-vmware-arm-image-download/",
|
||||
"direct_download_url": "http://images.kali.org/Kali-Linux-2.0.0-vm-amd64.7z"
|
||||
},
|
||||
{
|
||||
"filename": "kali-linux-persistence-1gb.qcow2",
|
||||
"version": "1.0",
|
||||
"md5sum": "14e9c92f3ba5a0bd1128c1ea26a129ea",
|
||||
"filesize": 34734080,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
|
||||
"direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/kali-linux-persistence-1gb.qcow2/download"
|
||||
{
|
||||
"filename": "kali-linux-2025.4-qemu-amd64.qcow2",
|
||||
"version": "2025.4",
|
||||
"md5sum": "a4be43351b5deb5b2823cb38a73b2095",
|
||||
"filesize": 15719268352,
|
||||
"download_url": "https://cdimage.kali.org/kali-2025.4/",
|
||||
"direct_download_url": "https://cdimage.kali.org/kali-2025.4/kali-linux-2025.4-qemu-amd64.7z",
|
||||
"compression": "7z"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "2021.1",
|
||||
"name": "2025.4",
|
||||
"images": {
|
||||
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
|
||||
"cdrom_image": "kali-linux-2021.1-live-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "2019.3",
|
||||
"images": {
|
||||
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
|
||||
"cdrom_image": "kali-linux-2019.3-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "2019.2",
|
||||
"images": {
|
||||
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
|
||||
"cdrom_image": "kali-linux-2019.2-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "2019.2 (MATE)",
|
||||
"images": {
|
||||
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
|
||||
"cdrom_image": "kali-linux-mate-2019.2-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "2019.1a",
|
||||
"images": {
|
||||
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
|
||||
"cdrom_image": "kali-linux-2019.1a-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "2018.4",
|
||||
"images": {
|
||||
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
|
||||
"cdrom_image": "kali-linux-2018.4-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "2018.3a",
|
||||
"images": {
|
||||
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
|
||||
"cdrom_image": "kali-linux-2018.3a-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "2018.1",
|
||||
"images": {
|
||||
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
|
||||
"cdrom_image": "kali-linux-2018.1-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "2017.3",
|
||||
"images": {
|
||||
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
|
||||
"cdrom_image": "kali-linux-2017.3-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "2017.2",
|
||||
"images": {
|
||||
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
|
||||
"cdrom_image": "kali-linux-2017.2-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "2017.1",
|
||||
"images": {
|
||||
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
|
||||
"cdrom_image": "kali-linux-2017.1-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "2016.2",
|
||||
"images": {
|
||||
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
|
||||
"cdrom_image": "kali-linux-2016.2-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "2016.1",
|
||||
"images": {
|
||||
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
|
||||
"cdrom_image": "kali-linux-2016.1-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "2.0",
|
||||
"images": {
|
||||
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
|
||||
"cdrom_image": "kali-linux-2.0-amd64.iso"
|
||||
"hda_disk_image": "kali-linux-2025.4-qemu-amd64.qcow2"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@ -27,6 +27,24 @@
|
||||
"options": "-nographic"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "chr-7.22.1.img",
|
||||
"version": "7.22.1",
|
||||
"md5sum": "a67290634f489071eae2fd99dcadba86",
|
||||
"filesize": 134217728,
|
||||
"download_url": "http://www.mikrotik.com/download",
|
||||
"direct_download_url": "https://download.mikrotik.com/routeros/7.22.1/chr-7.22.1.img.zip",
|
||||
"compression": "zip"
|
||||
},
|
||||
{
|
||||
"filename": "chr-7.20.8.img",
|
||||
"version": "7.20.8",
|
||||
"md5sum": "a432cf89f405115163952eefd82934e4",
|
||||
"filesize": 134217728,
|
||||
"download_url": "http://www.mikrotik.com/download",
|
||||
"direct_download_url": "https://download.mikrotik.com/routeros/7.20.8/chr-7.20.8.img.zip",
|
||||
"compression": "zip"
|
||||
},
|
||||
{
|
||||
"filename": "chr-7.16.img",
|
||||
"version": "7.16",
|
||||
@ -74,6 +92,18 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "7.22.1",
|
||||
"images": {
|
||||
"hda_disk_image": "chr-7.22.1.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.20.8",
|
||||
"images": {
|
||||
"hda_disk_image": "chr-7.20.8.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.16",
|
||||
"images": {
|
||||
|
||||
22
gns3server/appliances/mikrotik-winbox-2026.gns3a
Normal file
22
gns3server/appliances/mikrotik-winbox-2026.gns3a
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"appliance_id": "1174e46d-4a29-4554-a1e8-71ed90682295",
|
||||
"name": "MikroTik WinBox 2026",
|
||||
"category": "guest",
|
||||
"description": "Mikrotik's WinBox router management software for GNS3 2026",
|
||||
"vendor_name": "MikroTik",
|
||||
"vendor_url": "https://mikrotik.com",
|
||||
"documentation_url": "https://mikrotik.com/winbox",
|
||||
"product_name": "MikroTik WinBox",
|
||||
"product_url": "https://mikrotik.com/winbox",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"availability": "free",
|
||||
"maintainer": "h3ck13r",
|
||||
"maintainer_email": "pisdushko1886@gmail.com",
|
||||
"usage": "Connect WinBox to a MikroTik CHR port and start them both. Open WinBox console and wait until MikroTik appear in neighbors tab, provide credentials and connect.",
|
||||
"docker": {
|
||||
"adapters": 1,
|
||||
"image": "snatao808/winbox-mikrotik-2026",
|
||||
"console_type": "vnc"
|
||||
}
|
||||
}
|
||||
44
gns3server/appliances/nethsecurity.gns3a
Normal file
44
gns3server/appliances/nethsecurity.gns3a
Normal file
@ -0,0 +1,44 @@
|
||||
{
|
||||
"appliance_id": "bb9ff73a-701e-40e8-b68a-6a6efeb04e99",
|
||||
"name": "NethSecurity",
|
||||
"category": "firewall",
|
||||
"description": "NethSecurity is an Unified Threat Management (UTM) solution that provides a comprehensive suite of security features, including firewall, content filtering, deep packet inspection (DPI) using Netifyd, Dedalo hotspot, OpenVPN, and an optional remote controller. It is designed to be easy to install and configure, making it a good choice for both small and medium-sized businesses (SMBs) as well as enterprise organizations.",
|
||||
"vendor_name": "Nethesis",
|
||||
"vendor_url": "https://www.nethesis.it/",
|
||||
"documentation_url": "https://docs.nethsecurity.org/en/latest/",
|
||||
"product_name": "NethSecurity",
|
||||
"product_url": "https://nethsecurity.org/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "Ethernet0 is the LAN link, Ethernet1 the WAN link. The default username is root and the password is Nethesis,1234",
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 2,
|
||||
"ram": 1024,
|
||||
"hda_disk_interface": "scsi",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "nethsecurity-8-24.10.0-ns.1.5.1-x86-64-generic-squashfs-combined-efi.img",
|
||||
"version": "8-24.10.0-ns.1.5.1",
|
||||
"md5sum": "be670218effca1b86dac6b8d95012791",
|
||||
"filesize": 331644416,
|
||||
"download_url": "https://nethsecurity.org/download",
|
||||
"direct_download_url": "https://updates.nethsecurity.nethserver.org/stable/8-24.10.0-ns.1.5.1/targets/x86/64/nethsecurity-8-24.10.0-ns.1.5.1-x86-64-generic-squashfs-combined-efi.img.gz",
|
||||
"compression": "gzip"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "8-24.10.0-ns.1.5.1",
|
||||
"images": {
|
||||
"hda_disk_image": "nethsecurity-8-24.10.0-ns.1.5.1-x86-64-generic-squashfs-combined-efi.img"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -23,6 +23,24 @@
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "openwrt-25.12.0-x86-64-generic-ext4-combined.img",
|
||||
"version": "25.12.0",
|
||||
"md5sum": "8c0e01307fc47c1f862a5d0c9a51c2c5",
|
||||
"filesize": 126353408,
|
||||
"download_url": "https://downloads.openwrt.org/releases/25.12.0/targets/x86/64/",
|
||||
"direct_download_url": "https://downloads.openwrt.org/releases/25.12.0/targets/x86/64/openwrt-25.12.0-x86-64-generic-ext4-combined.img.gz",
|
||||
"compression": "gzip"
|
||||
},
|
||||
{
|
||||
"filename": "openwrt-24.10.2-x86-64-generic-ext4-combined.img",
|
||||
"version": "24.10.2",
|
||||
"md5sum": "0769916238524161b0a9a639ae261381",
|
||||
"filesize": 126353408,
|
||||
"download_url": "https://downloads.openwrt.org/releases/24.10.2/targets/x86/64/",
|
||||
"direct_download_url": "https://downloads.openwrt.org/releases/24.10.2/targets/x86/64/openwrt-24.10.2-x86-64-generic-ext4-combined.img.gz",
|
||||
"compression": "gzip"
|
||||
},
|
||||
{
|
||||
"filename": "openwrt-23.05.0-x86-64-generic-ext4-combined.img",
|
||||
"version": "23.05.0",
|
||||
@ -223,7 +241,19 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
{
|
||||
"name": "25.12.0",
|
||||
"images": {
|
||||
"hda_disk_image": "openwrt-25.12.0-x86-64-generic-ext4-combined.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "24.10.2",
|
||||
"images": {
|
||||
"hda_disk_image": "openwrt-24.10.2-x86-64-generic-ext4-combined.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "23.05.0",
|
||||
"images": {
|
||||
"hda_disk_image": "openwrt-23.05.0-x86-64-generic-ext4-combined.img"
|
||||
|
||||
@ -25,6 +25,29 @@
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "OPNsense-26.1-nano-amd64.img",
|
||||
"version": "26.1",
|
||||
"md5sum": "3b774e8fb651a5d00aa6fa3e0d1b1ff0",
|
||||
"filesize": 3221225472,
|
||||
"download_url": "https://opnsense.c0urier.net/releases/26.1/",
|
||||
"direct_download_url": "https://opnsense.c0urier.net/releases/26.1/OPNsense-26.1-nano-amd64.img.bz2",
|
||||
"compression": "bzip2"
|
||||
},
|
||||
{
|
||||
"filename": "OPNsense-25.7-nano-amd64.img",
|
||||
"version": "25.7",
|
||||
"md5sum": "07aa8b44ebc57fa9ca0145f777901a59",
|
||||
"filesize": 3221225472,
|
||||
"download_url": "https://opnsense.c0urier.net/releases/25.7/"
|
||||
},
|
||||
{
|
||||
"filename": "OPNsense-25.1-nano-amd64.img",
|
||||
"version": "25.1",
|
||||
"md5sum": "9c119e4fed7dd7c1c162d8be4088d983",
|
||||
"filesize": 3221225472,
|
||||
"download_url": "https://opnsense.c0urier.net/releases/25.1/"
|
||||
},
|
||||
{
|
||||
"filename": "OPNsense-24.7-nano-amd64.img",
|
||||
"version": "24.7",
|
||||
@ -76,6 +99,24 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "26.1",
|
||||
"images": {
|
||||
"hda_disk_image": "OPNsense-26.1-nano-amd64.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "25.7",
|
||||
"images": {
|
||||
"hda_disk_image": "OPNsense-25.7-nano-amd64.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "25.1",
|
||||
"images": {
|
||||
"hda_disk_image": "OPNsense-25.1-nano-amd64.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "24.7",
|
||||
"images": {
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 1,
|
||||
"ram": 1024,
|
||||
"ram": 1536,
|
||||
"hda_disk_interface": "virtio",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
@ -27,44 +27,36 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "OL9U2_x86_64-kvm-b197.qcow",
|
||||
"version": "9.2",
|
||||
"md5sum": "2ff3d0bc8a243ad89c96215f303f1c73",
|
||||
"filesize": 560791552,
|
||||
"filename": "OL10U1_x86_64-kvm-b270.qcow2",
|
||||
"version": "10.1",
|
||||
"md5sum": "c3ed48965110e0cbbd75734d3c23a2ce",
|
||||
"filesize": 1044119552,
|
||||
"download_url": "https://yum.oracle.com/oracle-linux-templates.html",
|
||||
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL9/u2/x86_64/OL9U2_x86_64-kvm-b197.qcow"
|
||||
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL10/u1/x86_64/OL10U1_x86_64-kvm-b270.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "OL9U1_x86_64-kvm-b158.qcow",
|
||||
"version": "9.1",
|
||||
"md5sum": "9f32851b96fc38191892197fa11f7435",
|
||||
"filesize": 539033600,
|
||||
"filename": "OL9U7_x86_64-kvm-b269.qcow2",
|
||||
"version": "9.7",
|
||||
"md5sum": "fe0c555620d2001bb4d4d95a53b43738",
|
||||
"filesize": 792985600,
|
||||
"download_url": "https://yum.oracle.com/oracle-linux-templates.html",
|
||||
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL9/u1/x86_64/OL9U1_x86_64-kvm-b158.qcow"
|
||||
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL9/u7/x86_64/OL9U7_x86_64-kvm-b269.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "OL8U8_x86_64-kvm-b198.qcow",
|
||||
"version": "8.8",
|
||||
"md5sum": "717622f373d77349cc102a3a325efbd3",
|
||||
"filesize": 934215680,
|
||||
"filename": "OL8U10_x86_64-kvm-b271.qcow2",
|
||||
"version": "8.10",
|
||||
"md5sum": "f3184e536af1c2aba6b6f499b1a7085a",
|
||||
"filesize": 1585643520,
|
||||
"download_url": "https://yum.oracle.com/oracle-linux-templates.html",
|
||||
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL8/u8/x86_64/OL8U8_x86_64-kvm-b198.qcow"
|
||||
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL8/u10/x86_64/OL8U10_x86_64-kvm-b271.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "OL8U7_x86_64-kvm-b148.qcow",
|
||||
"version": "8.7",
|
||||
"md5sum": "962cdde7e810888b9914e937222f687f",
|
||||
"filesize": 913965056,
|
||||
"download_url": "https://yum.oracle.com/oracle-linux-templates.html",
|
||||
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL8/u7/x86_64/OL8U7_x86_64-kvm-b148.qcow"
|
||||
},
|
||||
{
|
||||
"filename": "OL7U9_x86_64-kvm-b145.qcow",
|
||||
"filename": "OL7U9_x86_64-kvm-b257.qcow2",
|
||||
"version": "7.9",
|
||||
"md5sum": "e60d4145a69b34026db6121109ca9131",
|
||||
"filesize": 725221376,
|
||||
"md5sum": "d3af7cf0b8f44d298a67ce9ebe184494",
|
||||
"filesize": 998244352,
|
||||
"download_url": "https://yum.oracle.com/oracle-linux-templates.html",
|
||||
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL7/u9/x86_64/OL7U9_x86_64-kvm-b145.qcow"
|
||||
"direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL7/u9/x86_64/OL7U9_x86_64-kvm-b257.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "oracle-cloud-init-data.iso",
|
||||
@ -76,38 +68,31 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "9.2",
|
||||
{
|
||||
"name": "10.1",
|
||||
"images": {
|
||||
"hda_disk_image": "OL9U2_x86_64-kvm-b197.qcow",
|
||||
"hda_disk_image": "OL10U1_x86_64-kvm-b270.qcow2",
|
||||
"cdrom_image": "oracle-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.1",
|
||||
"name": "9.7",
|
||||
"images": {
|
||||
"hda_disk_image": "OL9U1_x86_64-kvm-b158.qcow",
|
||||
"hda_disk_image": "OL9U7_x86_64-kvm-b269.qcow2",
|
||||
"cdrom_image": "oracle-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "8.8",
|
||||
"name": "8.10",
|
||||
"images": {
|
||||
"hda_disk_image": "OL8U8_x86_64-kvm-b198.qcow",
|
||||
"cdrom_image": "oracle-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "8.7",
|
||||
"images": {
|
||||
"hda_disk_image": "OL8U7_x86_64-kvm-b148.qcow",
|
||||
"hda_disk_image": "OL8U10_x86_64-kvm-b271.qcow2",
|
||||
"cdrom_image": "oracle-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.9",
|
||||
"images": {
|
||||
"hda_disk_image": "OL7U9_x86_64-kvm-b145.qcow",
|
||||
"hda_disk_image": "OL7U9_x86_64-kvm-b257.qcow2",
|
||||
"cdrom_image": "oracle-cloud-init-data.iso"
|
||||
}
|
||||
}
|
||||
|
||||
@ -24,6 +24,13 @@
|
||||
"process_priority": "normal"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "pfSense-CE-2.7.2-RELEASE-amd64.iso",
|
||||
"version": "2.7.2",
|
||||
"md5sum": "50c3e723d68ec74d038041a34fa846f8",
|
||||
"filesize": 874672128,
|
||||
"download_url": "https://www.pfsense.org/download/mirror.php?section=downloads"
|
||||
},
|
||||
{
|
||||
"filename": "pfSense-CE-2.7.0-RELEASE-amd64.iso",
|
||||
"version": "2.7.0",
|
||||
@ -76,6 +83,13 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "2.7.2",
|
||||
"images": {
|
||||
"hda_disk_image": "empty100G.qcow2",
|
||||
"cdrom_image": "pfSense-CE-2.7.2-RELEASE-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "2.7.0",
|
||||
"images": {
|
||||
|
||||
@ -13,11 +13,11 @@
|
||||
"availability": "service-contract",
|
||||
"maintainer": "Da-Geek",
|
||||
"maintainer_email": "dageek@dageeks-geeks.gg",
|
||||
"usage": "You should download Red Hat Enterprise Linux KVM Guest Image from https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.3/x86_64/product-software attach/customize rhel-cloud-init.iso and start.\nusername: cloud-user\npassword: redhat",
|
||||
"usage": "You should download Red Hat Enterprise Linux KVM Guest Image from https://access.redhat.com/downloads/content/rhel attach/customize rhel-cloud-init.iso and start.\nusername: cloud-user\npassword: redhat",
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 1,
|
||||
"ram": 1024,
|
||||
"ram": 1536,
|
||||
"hda_disk_interface": "virtio",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
@ -27,32 +27,46 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "rhel-9.3-x86_64-kvm.qcow2",
|
||||
"version": "9.3",
|
||||
"md5sum": "409d8d15f5177db2617b0e3e02139b5c",
|
||||
"filesize": 858193920,
|
||||
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.3/x86_64/product-software"
|
||||
"filename": "rhel-10.1-x86_64-kvm.qcow2",
|
||||
"version": "10.1",
|
||||
"md5sum": "b2f35b1ac0600de31cadf30a622a2fef",
|
||||
"filesize": 1010827264,
|
||||
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---10/10.1/x86_64/product-software"
|
||||
},
|
||||
{
|
||||
"filename": "rhel-9.2-x86_64-kvm.qcow2",
|
||||
"version": "9.2",
|
||||
"md5sum": "f33845298b387dbcfbf162c6b4e3f8c8",
|
||||
"filesize": 819265536,
|
||||
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---8/9.2/x86_64/product-software"
|
||||
"filename": "rhel-10.0-x86_64-kvm.qcow2",
|
||||
"version": "10.0",
|
||||
"md5sum": "ea5918fa116ec53f9ef1ce4be69ae2be",
|
||||
"filesize": 855506944,
|
||||
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---10/10.0/x86_64/product-software"
|
||||
},
|
||||
{
|
||||
"filename": "rhel-baseos-9.1-x86_64-kvm.qcow2",
|
||||
"version": "9.1",
|
||||
"md5sum": "622de743da83bcec1ad2959ecaedb8f4",
|
||||
"filesize": 753401856,
|
||||
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---8/9.1/x86_64/product-software"
|
||||
"filename": "rhel-9.7-x86_64-kvm.qcow2",
|
||||
"version": "9.7",
|
||||
"md5sum": "abc2f42cc5daeea6b03d0d2d478a0d1c",
|
||||
"filesize": 1229979648,
|
||||
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.7/x86_64/product-software"
|
||||
},
|
||||
{
|
||||
"filename": "rhel-baseos-9.0-x86_64-kvm.qcow2",
|
||||
"version": "9.0",
|
||||
"md5sum": "4a41497d354fe99a4abf55f1ed73edcb",
|
||||
"filesize": 696582144,
|
||||
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---8/9.0/x86_64/product-software"
|
||||
"filename": "rhel-9.6-x86_64-kvm.qcow2",
|
||||
"version": "9.6",
|
||||
"md5sum": "056648d716275053ebe77b1d4f68c862",
|
||||
"filesize": 1060438016,
|
||||
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.6/x86_64/product-software"
|
||||
},
|
||||
{
|
||||
"filename": "rhel-9.4-x86_64-kvm.qcow2",
|
||||
"version": "9.4",
|
||||
"md5sum": "77a2ca9a4cb0448260e04f0d2ebf9807",
|
||||
"filesize": 957218816,
|
||||
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.4/x86_64/product-software"
|
||||
},
|
||||
{
|
||||
"filename": "rhel-8.10-x86_64-kvm.qcow2",
|
||||
"version": "8.10",
|
||||
"md5sum": "5fda99fcab47e3b235c6ccdb6e80d362",
|
||||
"filesize": 1065091072,
|
||||
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.10/x86_64/product-software"
|
||||
},
|
||||
{
|
||||
"filename": "rhel-8.8-x86_64-kvm.qcow2",
|
||||
@ -61,13 +75,6 @@
|
||||
"filesize": 926810112,
|
||||
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.8/x86_64/product-software"
|
||||
},
|
||||
{
|
||||
"filename": "rhel-8.7-x86_64-kvm.qcow2",
|
||||
"version": "8.7",
|
||||
"md5sum": "ab71a2c4cc276441bf999f531e064507",
|
||||
"filesize": 858128384,
|
||||
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.7/x86_64/product-software"
|
||||
},
|
||||
{
|
||||
"filename": "rhel-8.6-x86_64-kvm.qcow2",
|
||||
"version": "8.6",
|
||||
@ -76,31 +83,10 @@
|
||||
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software"
|
||||
},
|
||||
{
|
||||
"filename": "rhel-8.5-x86_64-kvm.qcow2",
|
||||
"version": "8.5",
|
||||
"md5sum": "1efb78dbb2033ba4ac6589a06c95c2d4",
|
||||
"filesize": 779419648,
|
||||
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.5/x86_64/product-software"
|
||||
},
|
||||
{
|
||||
"filename": "rhel-8.4-x86_64-kvm.qcow2",
|
||||
"version": "8.4",
|
||||
"md5sum": "db4c3a72857b784dc6e96120351f2894",
|
||||
"filesize": 727449600,
|
||||
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.4/x86_64/product-software"
|
||||
},
|
||||
{
|
||||
"filename": "rhel-8.3-x86_64-kvm.qcow2",
|
||||
"version": "8.3",
|
||||
"md5sum": "dd554c059e0910379fff88f677f4a4b3",
|
||||
"filesize": 1316683776,
|
||||
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.3/x86_64/product-software"
|
||||
},
|
||||
{
|
||||
"filename": "rhel-server-7.9-x86_64-kvm.qcow2",
|
||||
"filename": "rhel-server-7.9-update-12-x86_64-kvm.qcow2",
|
||||
"version": "7.9",
|
||||
"md5sum": "8d6669b3e2bb8df15b9b4280936cf950",
|
||||
"filesize": 827777024,
|
||||
"md5sum": "f77fc7e3cf31a210a8244e486466ce34",
|
||||
"filesize": 838036992,
|
||||
"download_url": "https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software"
|
||||
},
|
||||
{
|
||||
@ -112,38 +98,53 @@
|
||||
},
|
||||
{
|
||||
"filename": "rhel-cloud-init.iso",
|
||||
"version": "1.0",
|
||||
"md5sum": "421745b0d13615ecd48696f98d8b6352",
|
||||
"version": "1.1",
|
||||
"md5sum": "f1f908d36e67f843dd94db1c2e8c8373",
|
||||
"filesize": 374784,
|
||||
"download_url": "https://gitlab.com/neyder/rhel-cloud-init/raw/master/rhel-cloud-init.iso"
|
||||
"download_url": "https://github.com/GNS3/gns3-registry/tree/master/cloud-init/rhel",
|
||||
"direct_download_url": "https://github.com/GNS3/gns3-registry/raw/master/cloud-init/rhel/rhel-cloud-init.iso"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "9.3",
|
||||
"name": "10.1",
|
||||
"images": {
|
||||
"hda_disk_image": "rhel-9.3-x86_64-kvm.qcow2",
|
||||
"hda_disk_image": "rhel-10.1-x86_64-kvm.qcow2",
|
||||
"cdrom_image": "rhel-cloud-init.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.2",
|
||||
"name": "10.0",
|
||||
"images": {
|
||||
"hda_disk_image": "rhel-9.2-x86_64-kvm.qcow2",
|
||||
"hda_disk_image": "rhel-10.0-x86_64-kvm.qcow2",
|
||||
"cdrom_image": "rhel-cloud-init.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.1",
|
||||
"name": "9.7",
|
||||
"images": {
|
||||
"hda_disk_image": "rhel-baseos-9.1-x86_64-kvm.qcow2",
|
||||
"hda_disk_image": "rhel-9.7-x86_64-kvm.qcow2",
|
||||
"cdrom_image": "rhel-cloud-init.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.0",
|
||||
"name": "9.6",
|
||||
"images": {
|
||||
"hda_disk_image": "rhel-baseos-9.0-x86_64-kvm.qcow2",
|
||||
"hda_disk_image": "rhel-9.6-x86_64-kvm.qcow2",
|
||||
"cdrom_image": "rhel-cloud-init.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.4",
|
||||
"images": {
|
||||
"hda_disk_image": "rhel-9.4-x86_64-kvm.qcow2",
|
||||
"cdrom_image": "rhel-cloud-init.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "8.10",
|
||||
"images": {
|
||||
"hda_disk_image": "rhel-8.10-x86_64-kvm.qcow2",
|
||||
"cdrom_image": "rhel-cloud-init.iso"
|
||||
}
|
||||
},
|
||||
@ -154,13 +155,6 @@
|
||||
"cdrom_image": "rhel-cloud-init.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "8.7",
|
||||
"images": {
|
||||
"hda_disk_image": "rhel-8.7-x86_64-kvm.qcow2",
|
||||
"cdrom_image": "rhel-cloud-init.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "8.6",
|
||||
"images": {
|
||||
@ -168,31 +162,10 @@
|
||||
"cdrom_image": "rhel-cloud-init.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "8.5",
|
||||
"images": {
|
||||
"hda_disk_image": "rhel-8.5-x86_64-kvm.qcow2",
|
||||
"cdrom_image": "rhel-cloud-init.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "8.4",
|
||||
"images": {
|
||||
"hda_disk_image": "rhel-8.4-x86_64-kvm.qcow2",
|
||||
"cdrom_image": "rhel-cloud-init.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "8.3",
|
||||
"images": {
|
||||
"hda_disk_image": "rhel-8.3-x86_64-kvm.qcow2",
|
||||
"cdrom_image": "rhel-cloud-init.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.9",
|
||||
"images": {
|
||||
"hda_disk_image": "rhel-server-7.9-x86_64-kvm.qcow2",
|
||||
"hda_disk_image": "rhel-server-7.9-update-12-x86_64-kvm.qcow2",
|
||||
"cdrom_image": "rhel-cloud-init.iso"
|
||||
}
|
||||
},
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 1,
|
||||
"ram": 1024,
|
||||
"ram": 1536,
|
||||
"hda_disk_interface": "virtio",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
@ -26,6 +26,30 @@
|
||||
"options": "-nographic -cpu host"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "Rocky-10-GenericCloud-Base-10.1-20251116.0.x86_64.qcow2",
|
||||
"version": "10.1",
|
||||
"md5sum": "729d7235716bd41a0a15e07d2b44c679",
|
||||
"filesize": 575406080,
|
||||
"download_url": "https://download.rockylinux.org/pub/rocky/9/images/x86_64/",
|
||||
"direct_download_url": "https://download.rockylinux.org/pub/rocky/10/images/x86_64/Rocky-10-GenericCloud-Base-10.1-20251116.0.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "Rocky-9-GenericCloud-Base-9.7-20251123.2.x86_64.qcow2",
|
||||
"version": "9.7",
|
||||
"md5sum": "4a0cbfb45b97f09b690044429aaca1c8",
|
||||
"filesize": 648806400,
|
||||
"download_url": "https://download.rockylinux.org/pub/rocky/9/images/x86_64/",
|
||||
"direct_download_url": "https://download.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud-Base-9.7-20251123.2.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "Rocky-9-GenericCloud-Base-9.5-20241118.0.x86_64.qcow2",
|
||||
"version": "9.5",
|
||||
"md5sum": "880eccf788301bb9f34669faebe09276",
|
||||
"filesize": 609812480,
|
||||
"download_url": "https://download.rockylinux.org/pub/rocky/9/images/x86_64/",
|
||||
"direct_download_url": "https://download.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud-Base-9.5-20241118.0.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "Rocky-9-GenericCloud-Base-9.3-20231113.0.x86_64.qcow2",
|
||||
"version": "9.3",
|
||||
@ -68,6 +92,27 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "10.1",
|
||||
"images": {
|
||||
"hda_disk_image": "Rocky-10-GenericCloud-Base-10.1-20251116.0.x86_64.qcow2",
|
||||
"cdrom_image": "rocky-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.7",
|
||||
"images": {
|
||||
"hda_disk_image": "Rocky-9-GenericCloud-Base-9.7-20251123.2.x86_64.qcow2",
|
||||
"cdrom_image": "rocky-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.5",
|
||||
"images": {
|
||||
"hda_disk_image": "Rocky-9-GenericCloud-Base-9.5-20241118.0.x86_64.qcow2",
|
||||
"cdrom_image": "rocky-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.3",
|
||||
"images": {
|
||||
|
||||
50
gns3server/appliances/stormshield-eva.gns3a
Normal file
50
gns3server/appliances/stormshield-eva.gns3a
Normal file
@ -0,0 +1,50 @@
|
||||
{
|
||||
"appliance_id": "60801097-332e-4f40-a63e-8ad62047c01f",
|
||||
"name": "Stormshield EVA",
|
||||
"category": "firewall",
|
||||
"description": "Stormshield EVA (Elastic Virtual Appliance) is a french virtual firewall designed to protect network infrastructures. It offers advanced features such as filtering, intrusion prevention (IPS), VPN management (IPSec/SSL), and access control.",
|
||||
"vendor_name": "Stormshield",
|
||||
"vendor_url": "https://www.stormshield.com/",
|
||||
"vendor_logo_url": "https://www.stormshield.com/wp-content/uploads/stormshield-logo.png",
|
||||
"documentation_url": "https://www.stormshield.com/fr/ressourcescenter/network-security-elastic-virtual-appliances/",
|
||||
"product_name": "Stormshield EVA",
|
||||
"product_url": "https://www.stormshield.com/fr/produits-et-services/produits/protection-des-reseaux/nos-produits/appliances-virtuelles/",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"availability": "service-contract",
|
||||
"maintainer": "Samy SCANNA",
|
||||
"maintainer_email": "samy.scanna@outlook.com",
|
||||
"usage": "After the first boot, the appliance automatically runs the configuration script to set up the password, and network interfaces.",
|
||||
"symbol": "stormshield.png",
|
||||
"port_name_format": "port{port1}",
|
||||
"qemu": {
|
||||
"adapter_type": "vmxnet3",
|
||||
"adapters": 8,
|
||||
"ram": 2048,
|
||||
"cpus": 1,
|
||||
"hda_disk_interface": "scsi",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "allow",
|
||||
"options": "-serial stdio",
|
||||
"on_close": "shutdown_signal",
|
||||
"process_priority": "normal"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "utm-SNS-EVA-4.3.33-kvm.qcow2",
|
||||
"version": "4.3.33",
|
||||
"md5sum": "21d94d0e20f2e270f06c5853fd750d5b",
|
||||
"filesize": 284360704,
|
||||
"download_url": "https://mystormshield.eu/product/download/"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"images": {
|
||||
"hda_disk_image": "utm-SNS-EVA-4.3.33-kvm.qcow2"
|
||||
},
|
||||
"name": "4.3.33"
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -2,7 +2,7 @@
|
||||
"appliance_id": "ed6b9f98-7de2-4d61-a3ed-ad4c3e323ace",
|
||||
"name": "Tiny Core Linux",
|
||||
"category": "guest",
|
||||
"description": "Core Linux is a smaller variant of Tiny Core without a graphical desktop.\n\nIt provides a complete Linux system using only a few MiB.",
|
||||
"description": "TinyCore is a Linux system with a graphical desktop using only a few MiB.",
|
||||
"vendor_name": "Team Tiny Core",
|
||||
"vendor_url": "http://distro.ibiblio.org/tinycorelinux",
|
||||
"documentation_url": "http://wiki.tinycorelinux.net/",
|
||||
@ -25,6 +25,14 @@
|
||||
"options": "-vga std -usbdevice tablet"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "linux-tinycore-17.0.qcow2",
|
||||
"version": "17.0",
|
||||
"md5sum": "6434d4da25dd0277cc90b000bb4ac8f1",
|
||||
"filesize": 35061760,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
|
||||
"direct_download_url": "http://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/linux-tinycore-17.0.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "linux-tinycore-11.1.qcow2",
|
||||
"version": "11.1",
|
||||
@ -51,6 +59,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "17.0",
|
||||
"images": {
|
||||
"hda_disk_image": "linux-tinycore-17.0.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "11.1",
|
||||
"images": {
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
"symbol": "linux_guest.svg",
|
||||
"docker": {
|
||||
"adapters": 1,
|
||||
"image": "gns3/ubuntu:noble",
|
||||
"image": "gns3/ubuntu:resolute",
|
||||
"console_type": "telnet"
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,27 +9,82 @@
|
||||
"documentation_url": "https://docs.vyos.io/",
|
||||
"product_name": "VyOS Universal Router",
|
||||
"product_url": "https://vyos.io/vyos-universal-router",
|
||||
"registry_version": 4,
|
||||
"registry_version": 8,
|
||||
"status": "stable",
|
||||
"availability": "service-contract",
|
||||
"maintainer": "VyOS Inc.",
|
||||
"maintainer_email": "support@vyos.io",
|
||||
"usage": "\nDefault credentials:\nUser: vyos\nPassword: vyos",
|
||||
"installation_instructions": "To install the appliance, you must:\n\n1. Have an active VyOS subscription (for details, visit https://vyos.io/).\n2. Download the QEMU/KVM image for your target version from the support portal: https://support.vyos.io/.\n3. Import the downloaded image for installation in the next step.\n\nAlternatively, you can:\n- Build your own image, or\n- Use any compatible qcow2 images (including rolling or stream releases) by selecting \"Create a new version\" and enabling the \"Allow custom files\" feature.",
|
||||
"usage": "No extra installation steps are required - simply boot the router.\nFor more details, please refer to the documentation: https://docs.vyos.io/",
|
||||
"default_username": "vyos",
|
||||
"default_password": "vyos",
|
||||
"symbol": "vyos.svg",
|
||||
"port_name_format": "eth{0}",
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 10,
|
||||
"ram": 2048,
|
||||
"cpus": 4,
|
||||
"hda_disk_interface": "virtio",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"boot_priority": "c",
|
||||
"kvm": "require",
|
||||
"on_close": "shutdown_signal"
|
||||
},
|
||||
"settings": [
|
||||
{
|
||||
"name": "default x86_64",
|
||||
"default": true,
|
||||
"template_type": "qemu",
|
||||
"template_properties": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 10,
|
||||
"port_name_format": "eth{0}",
|
||||
"ram": 2048,
|
||||
"cpus": 4,
|
||||
"hda_disk_interface": "virtio",
|
||||
"platform": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"boot_priority": "c",
|
||||
"options": "-cpu host",
|
||||
"uefi": false,
|
||||
"on_close": "shutdown_signal"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "1.5 x86_64",
|
||||
"inherit_default_properties": true,
|
||||
"template_type": "qemu",
|
||||
"template_properties": {
|
||||
"ram": 8192,
|
||||
"cpus": 4
|
||||
}
|
||||
}
|
||||
],
|
||||
"images": [
|
||||
{
|
||||
"filename": "vyos-1.5.0-kvm-amd64.qcow2",
|
||||
"version": "1.5.0",
|
||||
"md5sum": "f84587bd6c45b139563a1d1d2fe0b2e8",
|
||||
"filesize": 618528768,
|
||||
"download_url": "https://support.vyos.io/"
|
||||
},
|
||||
{
|
||||
"filename": "vyos-1.4.4-kvm-amd64.qcow2",
|
||||
"version": "1.4.4",
|
||||
"md5sum": "942dae45d63924b58b65d069890765d4",
|
||||
"filesize": 518782976,
|
||||
"download_url": "https://support.vyos.io/"
|
||||
},
|
||||
{
|
||||
"filename": "vyos-1.4.3-kvm-amd64.qcow2",
|
||||
"version": "1.4.3",
|
||||
"md5sum": "4eec0ba2ec367bbbdf2d2f212f947746",
|
||||
"filesize": 515047424,
|
||||
"download_url": "https://support.vyos.io/"
|
||||
},
|
||||
{
|
||||
"filename": "vyos-1.4.2-kvm-amd64.qcow2",
|
||||
"version": "1.4.2",
|
||||
"md5sum": "78c5935e05a7bbd94a639fcee18f5799",
|
||||
"filesize": 514064384,
|
||||
"download_url": "https://support.vyos.io/"
|
||||
},
|
||||
{
|
||||
"filename": "vyos-1.4.1-kvm-amd64.qcow2",
|
||||
"version": "1.4.1",
|
||||
"md5sum": "5b8ebcd9905719d24405ed093afdd8ba",
|
||||
"filesize": 513736704,
|
||||
"download_url": "https://support.vyos.io/"
|
||||
},
|
||||
{
|
||||
"filename": "vyos-1.4.0-kvm-amd64.qcow2",
|
||||
"version": "1.4.0",
|
||||
@ -104,11 +159,42 @@
|
||||
"filename": "vyos-1.2.5-amd64.qcow2",
|
||||
"version": "1.2.5",
|
||||
"md5sum": "110c22309ec480600446fd2fb4f27a0d",
|
||||
"filesize": 411500544 ,
|
||||
"filesize": 411500544,
|
||||
"download_url": "https://support.vyos.io/"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "1.5.0",
|
||||
"settings": "1.5 x86_64",
|
||||
"images": {
|
||||
"hda_disk_image": "vyos-1.5.0-kvm-amd64.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "1.4.4",
|
||||
"images": {
|
||||
"hda_disk_image": "vyos-1.4.4-kvm-amd64.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "1.4.3",
|
||||
"images": {
|
||||
"hda_disk_image": "vyos-1.4.3-kvm-amd64.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "1.4.2",
|
||||
"images": {
|
||||
"hda_disk_image": "vyos-1.4.2-kvm-amd64.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "1.4.1",
|
||||
"images": {
|
||||
"hda_disk_image": "vyos-1.4.1-kvm-amd64.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "1.4.0",
|
||||
"images": {
|
||||
|
||||
86
gns3server/appliances/westermo-weos.gns3a
Normal file
86
gns3server/appliances/westermo-weos.gns3a
Normal file
@ -0,0 +1,86 @@
|
||||
{
|
||||
"appliance_id": "90afc191-6195-4ff2-905b-5470573a882b",
|
||||
"name": "Westermo WeOS",
|
||||
"category": "router",
|
||||
"description": "Westermo Operating System (WeOS) is a leading-edge industrial network operating system that is being continuously developed whilst being subjected to exhaustive quality testing. It powers the most reliable switches and routers on the market, designed for harsh industrial environments. WeOS has extensive support for network and security protocols that have been made simple to configure and maintain. WeOS along with Westermo’s robust hardware provides the world’s most reliable network solutions.",
|
||||
"vendor_name": "Westermo",
|
||||
"vendor_url": "https://www.westermo.com/",
|
||||
"vendor_logo_url": "https://api-0831ddf0-b06c-4a4e-bcf7-afba78872de1.digizuite.app/DigizuiteCore/CollaborationService/api/share/asset/4C90E538E869D47D2782840A06F726F6D7548D864857388E38218F",
|
||||
"documentation_url": "https://docs.westermo.com/weos/weos-5/",
|
||||
"product_name": "WeOS",
|
||||
"product_url": "https://www.westermo.com/products/software/weos",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"availability": "free",
|
||||
"maintainer": "Westermo",
|
||||
"maintainer_email": "info@westermo.com",
|
||||
"usage": "\nFactory Configuration\n=====================\nAll ports are in VLAN1 untagged. The system will acquire a link-local\nIPv4 address (169.254.0.0/16) and will also request an address using\nDHCP. mDNS is enabled and the device is reachable under these names\n(where XX-XX-XX corresponds to the last three octets in the device's\nMAC address): zero-XX-XX-XX.local, zero.local, and weos.local.\n\nManagement\n==========\nAccessible via console, ssh, and http/https.\n\nUsername: admin\nPassword: admin\n\nUpgrade\n=======\nTo upgrade a device, simply download the new version and replace the\nHDA (Primary Master) image under the HDD tab in the configuration pane\nof the device.\n",
|
||||
"symbol": ":/symbols/classic/router.svg",
|
||||
"port_name_format": "eth{0}",
|
||||
"linked_clone": true,
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 8,
|
||||
"ram": 512,
|
||||
"cpus": 1,
|
||||
"hda_disk_interface": "virtio",
|
||||
"hdb_disk_interface": "virtio",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "allow",
|
||||
"options": "-nographic --machine pc-i440fx-4.2"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "Config-zero-1.0.0.disk",
|
||||
"version": "1.0.0",
|
||||
"md5sum": "afe7b74683971fec48802997f6470ca5",
|
||||
"filesize": 17825792,
|
||||
"direct_download_url": "https://dropzone.westermo.com/file.aspx?id=e6a7676d-85a7-4374-8961-c68aacb74921"
|
||||
},
|
||||
{
|
||||
"filename": "WeOS-zero-5.29.0.disk",
|
||||
"version": "5.29.0",
|
||||
"filesize": 81788928,
|
||||
"md5sum": "f464de7b2b424f4a8ad7c650108fee3d",
|
||||
"direct_download_url": "https://dropzone.westermo.com/file.aspx?id=52655074-0fab-4119-ba01-b68200a733ab"
|
||||
},
|
||||
{
|
||||
"filename": "WeOS-zero-5.28.0.disk",
|
||||
"version": "5.28.0",
|
||||
"md5sum": "7b4e29761091c12ec2cd482f7c1a0bea",
|
||||
"filesize": 75497472,
|
||||
"direct_download_url": "https://dropzone.westermo.com/file.aspx?id=4926adbe-0cd6-4851-b70f-e9d60b3b3f06"
|
||||
},
|
||||
{
|
||||
"filename": "WeOS-zero-5.27.0.disk",
|
||||
"version": "5.27.0",
|
||||
"md5sum": "8bd4944b60eaeca391bb5d1dc0defb8b",
|
||||
"filesize": 78643200,
|
||||
"direct_download_url": "https://dropzone.westermo.com/file.aspx?id=1a7bf389-a4b1-4dae-b121-6fb3d6781542"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "5.29.0",
|
||||
"images": {
|
||||
"hda_disk_image": "WeOS-zero-5.29.0.disk",
|
||||
"hdb_disk_image": "Config-zero-1.0.0.disk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "5.28.0",
|
||||
"images": {
|
||||
"hda_disk_image": "WeOS-zero-5.28.0.disk",
|
||||
"hdb_disk_image": "Config-zero-1.0.0.disk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "5.27.0",
|
||||
"images": {
|
||||
"hda_disk_image": "WeOS-zero-5.27.0.disk",
|
||||
"hdb_disk_image": "Config-zero-1.0.0.disk"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -30,19 +30,11 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "WinDev2308Eval-disk1.vmdk",
|
||||
"version": "2308",
|
||||
"md5sum": "6a9b4ed6d7481f7bbf8a054c797b1eee",
|
||||
"filesize": 24945341952,
|
||||
"download_url": "https://download.microsoft.com/download/7/1/3/7135f2ab-8528-49fc-9252-8d5d94c697ef/WinDev2308Eval.VMWare.zip",
|
||||
"compression": "zip"
|
||||
},
|
||||
{
|
||||
"filename": "WinDev2212Eval-disk1.vmdk",
|
||||
"version": "2212",
|
||||
"md5sum": "c79f393a067b92e01a513a118d455ac8",
|
||||
"filesize": 24620493824,
|
||||
"download_url": "https://aka.ms/windev_VM_vmware",
|
||||
"filename": "WinDev2407Eval-disk1.vmdk",
|
||||
"version": "2407",
|
||||
"md5sum": "66e7233c7922ef128c5b7c957d20bcbe",
|
||||
"filesize": 25984826368,
|
||||
"download_url": "https://download.microsoft.com/download/e/e/c/eec4775f-f2e8-4476-98b2-ca51502a6429/WinDev2407Eval.VMWare.zip",
|
||||
"compression": "zip"
|
||||
},
|
||||
{
|
||||
@ -57,17 +49,10 @@
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "2308",
|
||||
"name": "2407",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "WinDev2308Eval-disk1.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "2212",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "WinDev2212Eval-disk1.vmdk"
|
||||
"hda_disk_image": "WinDev2407Eval-disk1.vmdk"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@ -312,8 +312,10 @@ class BaseNode:
|
||||
Stop the node process.
|
||||
"""
|
||||
|
||||
await self.stop_wrap_console()
|
||||
self.status = "stopped"
|
||||
try:
|
||||
await self.stop_wrap_console()
|
||||
finally:
|
||||
self.status = "stopped"
|
||||
|
||||
def suspend(self):
|
||||
"""
|
||||
|
||||
@ -311,7 +311,7 @@ class Cloud(BaseNode):
|
||||
if not port_info["interface"] in network_interfaces:
|
||||
raise NodeError("Interface '{}' could not be found on this system, please update '{}'".format(port_info["interface"], self.name))
|
||||
|
||||
if sys.platform.startswith("linux"):
|
||||
if sys.platform.startswith("linux") or sys.platform.startswith("openbsd"):
|
||||
await self._add_linux_ethernet(port_info, bridge_name)
|
||||
elif sys.platform.startswith("darwin"):
|
||||
await self._add_osx_ethernet(port_info, bridge_name)
|
||||
|
||||
@ -33,15 +33,15 @@ from gns3server.config import Config
|
||||
from gns3server.utils.asyncio import locking
|
||||
from gns3server.compute.base_manager import BaseManager
|
||||
from gns3server.compute.docker.docker_vm import DockerVM
|
||||
from gns3server.compute.docker.docker_error import DockerError, DockerHttp304Error, DockerHttp404Error
|
||||
from gns3server.compute.docker.docker_error import DockerError, DockerHttp304Error, DockerHttp404Error, DockerHttp409Error
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
# Be careful to keep it consistent
|
||||
DOCKER_MINIMUM_API_VERSION = "1.25"
|
||||
DOCKER_MINIMUM_VERSION = "1.13"
|
||||
DOCKER_PREFERRED_API_VERSION = "1.30"
|
||||
DOCKER_MINIMUM_API_VERSION = "1.40"
|
||||
DOCKER_MINIMUM_VERSION = "19.03.8"
|
||||
DOCKER_PREFERRED_API_VERSION = "1.44"
|
||||
CHUNK_SIZE = 1024 * 8 # 8KB
|
||||
|
||||
|
||||
@ -79,8 +79,10 @@ class Docker(BaseManager):
|
||||
stderr=asyncio.subprocess.DEVNULL
|
||||
)
|
||||
stdout, _ = await proc.communicate()
|
||||
if proc.returncode == 1:
|
||||
if proc.returncode == 1 or "static" in busybox_exec:
|
||||
# ldd returns 1 if the file is not a dynamic executable
|
||||
# on Alpine/musl, ldd returns 0 even for static binaries,
|
||||
# so also trust binaries named busybox-static or busybox.static
|
||||
log.info(f"Installing busybox from '{busybox_path}' to '{dst_busybox}'")
|
||||
shutil.copy2(busybox_path, dst_busybox, follow_symlinks=True)
|
||||
return
|
||||
@ -123,22 +125,30 @@ class Docker(BaseManager):
|
||||
if not self._connected:
|
||||
try:
|
||||
self._connected = True
|
||||
connector = self.connector()
|
||||
version = await self.query("GET", "version")
|
||||
self._connector = self.connector()
|
||||
docker_info = await self.query("GET", "version")
|
||||
except (aiohttp.ClientOSError, FileNotFoundError):
|
||||
self._connected = False
|
||||
raise DockerError("Can't connect to docker daemon")
|
||||
raise DockerError("Can't connect to Docker daemon")
|
||||
|
||||
docker_version = parse_version(version['ApiVersion'])
|
||||
api_version = parse_version(docker_info['ApiVersion'])
|
||||
version = docker_info["Version"]
|
||||
|
||||
if docker_version < parse_version(DOCKER_MINIMUM_API_VERSION):
|
||||
raise DockerError(
|
||||
"Docker version is {}. GNS3 requires a minimum version of {}".format(
|
||||
version["Version"], DOCKER_MINIMUM_VERSION))
|
||||
if api_version < parse_version(DOCKER_MINIMUM_API_VERSION):
|
||||
raise DockerError("Docker version is {}. GNS3 requires a minimum version of {}".format(
|
||||
version,
|
||||
DOCKER_MINIMUM_VERSION)
|
||||
)
|
||||
|
||||
preferred_api_version = parse_version(DOCKER_PREFERRED_API_VERSION)
|
||||
if docker_version >= preferred_api_version:
|
||||
if api_version >= preferred_api_version:
|
||||
self._api_version = DOCKER_PREFERRED_API_VERSION
|
||||
else:
|
||||
# use the Min API version supported by the daemon
|
||||
self._api_version = docker_info['MinAPIVersion']
|
||||
log.warning("Using Docker client with the minimum API version {}".format(self._api_version))
|
||||
|
||||
log.info("Connected to Docker daemon version {} using API version {}".format(version, self._api_version))
|
||||
|
||||
def connector(self):
|
||||
|
||||
@ -173,11 +183,10 @@ class Docker(BaseManager):
|
||||
response = await self.http_query(method, path, data=data, params=params)
|
||||
body = await response.read()
|
||||
response.close()
|
||||
if body and len(body):
|
||||
if response.headers.get('CONTENT-TYPE') == 'application/json':
|
||||
body = json.loads(body.decode("utf-8"))
|
||||
else:
|
||||
body = body.decode("utf-8")
|
||||
if response.headers.get('CONTENT-TYPE') == 'application/json':
|
||||
body = json.loads(body.decode("utf-8", errors="ignore"))
|
||||
else:
|
||||
body = body.decode("utf-8", errors="ignore")
|
||||
log.debug("Query Docker %s %s params=%s data=%s Response: %s", method, path, params, data, body)
|
||||
return body
|
||||
|
||||
@ -187,7 +196,7 @@ class Docker(BaseManager):
|
||||
|
||||
:param method: HTTP method
|
||||
:param path: Endpoint in API
|
||||
:param data: Dictionnary with the body. Will be transformed to a JSON
|
||||
:param data: Dictionary with the body. Will be transformed to a JSON
|
||||
:param params: Parameters added as a query arg
|
||||
:param timeout: Timeout
|
||||
:returns: HTTP response
|
||||
@ -198,12 +207,11 @@ class Docker(BaseManager):
|
||||
timeout = 60 * 60 * 24 * 31 # One month timeout
|
||||
|
||||
if path == 'version':
|
||||
url = "http://docker/v1.24/" + path
|
||||
url = "http://docker/" + path
|
||||
else:
|
||||
url = "http://docker/v" + DOCKER_MINIMUM_API_VERSION + "/" + path
|
||||
await self._check_connection() # version is use by check connection
|
||||
url = "http://docker/v" + self._api_version + "/" + path
|
||||
try:
|
||||
if path != "version": # version is use by check connection
|
||||
await self._check_connection()
|
||||
if self._session is None or self._session.closed:
|
||||
connector = self.connector()
|
||||
self._session = aiohttp.ClientSession(connector=connector)
|
||||
@ -228,6 +236,8 @@ class Docker(BaseManager):
|
||||
raise DockerHttp304Error("Docker has returned an error: {} {}".format(response.status, body))
|
||||
elif response.status == 404:
|
||||
raise DockerHttp404Error("Docker has returned an error: {} {}".format(response.status, body))
|
||||
elif response.status == 409:
|
||||
raise DockerHttp409Error("Docker has returned an error: {} {}".format(response.status, body))
|
||||
else:
|
||||
raise DockerError("Docker has returned an error: {} {}".format(response.status, body))
|
||||
return response
|
||||
@ -261,21 +271,21 @@ class Docker(BaseManager):
|
||||
pass
|
||||
|
||||
if progress_callback:
|
||||
progress_callback("Pulling '{}' from docker hub".format(image))
|
||||
progress_callback("Pulling '{}' from Docker repository".format(image))
|
||||
try:
|
||||
response = await self.http_query("POST", "images/create", params={"fromImage": image}, timeout=None)
|
||||
except DockerError as e:
|
||||
raise DockerError("Could not pull the '{}' image from Docker Hub, please check your Internet connection (original error: {})".format(image, e))
|
||||
raise DockerError("Could not pull the '{}' image from Docker repository, please check your Internet connection (original error: {})".format(image, e))
|
||||
# The pull api will stream status via an HTTP JSON stream
|
||||
content = ""
|
||||
while True:
|
||||
try:
|
||||
chunk = await response.content.read(CHUNK_SIZE)
|
||||
except aiohttp.ServerDisconnectedError:
|
||||
log.error("Disconnected from server while pulling Docker image '{}' from docker hub".format(image))
|
||||
log.error("Disconnected from server while pulling Docker image '{}' from Docker repository".format(image))
|
||||
break
|
||||
except asyncio.TimeoutError:
|
||||
log.error("Timeout while pulling Docker image '{}' from docker hub".format(image))
|
||||
log.error("Timeout while pulling Docker image '{}' from Docker repository".format(image))
|
||||
break
|
||||
if not chunk:
|
||||
break
|
||||
|
||||
@ -32,3 +32,7 @@ class DockerHttp304Error(DockerError):
|
||||
|
||||
class DockerHttp404Error(DockerError):
|
||||
pass
|
||||
|
||||
|
||||
class DockerHttp409Error(DockerError):
|
||||
pass
|
||||
|
||||
@ -43,7 +43,8 @@ from ..nios.nio_udp import NIOUDP
|
||||
from .docker_error import (
|
||||
DockerError,
|
||||
DockerHttp304Error,
|
||||
DockerHttp404Error
|
||||
DockerHttp404Error,
|
||||
DockerHttp409Error
|
||||
)
|
||||
|
||||
import logging
|
||||
@ -153,6 +154,14 @@ class DockerVM(BaseNode):
|
||||
def ethernet_adapters(self):
|
||||
return self._ethernet_adapters
|
||||
|
||||
@property
|
||||
def docker_name(self):
|
||||
"""
|
||||
Container name in Docker
|
||||
"""
|
||||
|
||||
return "GNS3.{}.{}".format(self.name, self._project.id)
|
||||
|
||||
@property
|
||||
def mac_address(self):
|
||||
"""
|
||||
@ -365,7 +374,7 @@ class DockerVM(BaseNode):
|
||||
try:
|
||||
image_infos = await self._get_image_information()
|
||||
except DockerHttp404Error:
|
||||
log.info("Image '{}' is missing, pulling it from Docker hub...".format(self._image))
|
||||
log.info("Image '{}' is missing, pulling it from Docker repository...".format(self._image))
|
||||
await self.pull_image(self._image)
|
||||
image_infos = await self._get_image_information()
|
||||
|
||||
@ -451,9 +460,31 @@ class DockerVM(BaseNode):
|
||||
if extra_hosts:
|
||||
params["Env"].append("GNS3_EXTRA_HOSTS={}".format(extra_hosts))
|
||||
|
||||
result = await self.manager.query("POST", "containers/create", data=params)
|
||||
self._cid = result['Id']
|
||||
log.info("Docker container '{name}' [{id}] created".format(name=self._name, id=self._id))
|
||||
try:
|
||||
# Supported names in Docker: [a-zA-Z0-9][a-zA-Z0-9_.-]
|
||||
result = await self.manager.query("POST", f"containers/create?name={self.docker_name}", data=params)
|
||||
except DockerHttp409Error:
|
||||
# Container name already exists. This can happen when the server crashes
|
||||
# and leaves containers behind. Try to remove the conflicting container.
|
||||
log.warning(f"Container name '{self.docker_name}' is already in use, attempting to clean up the stale container...")
|
||||
try:
|
||||
# Try to get and remove the conflicting container
|
||||
try:
|
||||
container_info = await self.manager.query("GET", f"containers/{self.docker_name}/json")
|
||||
container_id = container_info["Id"]
|
||||
# Force remove the container
|
||||
await self.manager.query("DELETE", f"containers/{container_id}", params={"force": 1, "v": 1})
|
||||
log.info(f"Removed stale container '{self.docker_name}' ({container_id})")
|
||||
except DockerHttp404Error:
|
||||
# Container doesn't exist anymore, race condition - just continue
|
||||
pass
|
||||
# Retry creating the container
|
||||
result = await self.manager.query("POST", f"containers/create?name={self.docker_name}", data=params)
|
||||
except DockerError as e:
|
||||
log.error(f"Failed to clean up conflicting container '{self.docker_name}': {e}")
|
||||
raise
|
||||
self._cid = result["Id"]
|
||||
log.info(f"Docker container '{self._name}' [{self._id}] created")
|
||||
return True
|
||||
|
||||
def _format_env(self, variables, env):
|
||||
@ -522,6 +553,7 @@ class DockerVM(BaseNode):
|
||||
await self._clean_servers()
|
||||
|
||||
await self.manager.query("POST", "containers/{}/start".format(self._cid))
|
||||
await asyncio.sleep(0.5) # give the Docker container some time to start
|
||||
self._namespace = await self._get_namespace()
|
||||
|
||||
await self._start_ubridge(require_privileged_access=True)
|
||||
@ -837,7 +869,7 @@ class DockerVM(BaseNode):
|
||||
await self._fix_permissions()
|
||||
|
||||
state = await self._get_container_state()
|
||||
if state != "stopped" or state != "exited":
|
||||
if state != "stopped" and state != "exited":
|
||||
# t=5 number of seconds to wait before killing the container
|
||||
try:
|
||||
await self.manager.query("POST", "containers/{}/stop".format(self._cid), params={"t": 5})
|
||||
|
||||
@ -3,7 +3,12 @@
|
||||
# script for udhcpc
|
||||
# Copyright (c) 2008 Natanael Copa <natanael.copa@gmail.com>
|
||||
|
||||
UDHCPC="/gns3/etc/udhcpc"
|
||||
if [ -d /etc/network ]; then
|
||||
UDHCPC="/etc/network/udhcpc"
|
||||
else
|
||||
UDHCPC="/gns3/etc/udhcpc"
|
||||
fi
|
||||
|
||||
UDHCPC_CONF="$UDHCPC/udhcpc.conf"
|
||||
|
||||
RESOLV_CONF="/etc/resolv.conf"
|
||||
|
||||
@ -87,11 +87,11 @@ class IOUVM(BaseNode):
|
||||
self._serial_adapters = []
|
||||
self.ethernet_adapters = 2 # one adapter = 4 interfaces
|
||||
self.serial_adapters = 2 # one adapter = 4 interfaces
|
||||
self._use_default_iou_values = True # for RAM & NVRAM values
|
||||
self._nvram = 128 # Kilobytes
|
||||
self._use_default_iou_values = False # for RAM & NVRAM values
|
||||
self._nvram = 256 # Kilobytes
|
||||
self._startup_config = ""
|
||||
self._private_config = ""
|
||||
self._ram = 256 # Megabytes
|
||||
self._ram = 1024 # Megabytes
|
||||
self._application_id = application_id
|
||||
self._l1_keepalives = False # used to overcome the always-up Ethernet interfaces (not supported by all IOSes).
|
||||
|
||||
@ -390,14 +390,16 @@ class IOUVM(BaseNode):
|
||||
raise IOUError("The following shared library dependencies cannot be found for IOU image {}: {}".format(self._path,
|
||||
", ".join(missing_libs)))
|
||||
|
||||
async def _check_iou_licence(self):
|
||||
def _is_iou_license_check_enabled(self):
|
||||
"""
|
||||
Checks for a valid IOU key in the iourc file (paranoid mode).
|
||||
Returns if IOU license check is enabled.
|
||||
|
||||
:return: boolean
|
||||
"""
|
||||
|
||||
# license check is sent by the controller
|
||||
if self.license_check is False:
|
||||
return
|
||||
return False
|
||||
|
||||
try:
|
||||
# we allow license check to be disabled server wide
|
||||
@ -407,7 +409,14 @@ class IOUVM(BaseNode):
|
||||
|
||||
if server_wide_license_check is False:
|
||||
log.warning("License check is explicitly disabled on this server")
|
||||
return
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
async def _check_iou_license(self):
|
||||
"""
|
||||
Checks for a valid IOU key in the iourc file (paranoid mode).
|
||||
"""
|
||||
|
||||
config = configparser.ConfigParser()
|
||||
try:
|
||||
@ -511,15 +520,16 @@ class IOUVM(BaseNode):
|
||||
except OSError as e:
|
||||
raise IOUError("Could not rename nvram files: {}".format(e))
|
||||
|
||||
iourc_path = self.iourc_path
|
||||
if not iourc_path:
|
||||
raise IOUError("Could not find an iourc file (IOU license), please configure an IOU license")
|
||||
if not os.path.isfile(iourc_path):
|
||||
raise IOUError("The iourc path '{}' is not a regular file".format(iourc_path))
|
||||
iourc_path = None
|
||||
if self._is_iou_license_check_enabled():
|
||||
iourc_path = self.iourc_path
|
||||
if not iourc_path:
|
||||
raise IOUError("Could not find an iourc file (IOU license), please configure an IOU license")
|
||||
if not os.path.isfile(iourc_path):
|
||||
raise IOUError("The iourc path '{}' is not a regular file".format(iourc_path))
|
||||
await self._check_iou_license()
|
||||
|
||||
await self._check_iou_licence()
|
||||
await self._start_ubridge()
|
||||
|
||||
self._create_netmap_config()
|
||||
if self.use_default_iou_values:
|
||||
# make sure we have the default nvram amount to correctly push the configs
|
||||
@ -531,7 +541,7 @@ class IOUVM(BaseNode):
|
||||
|
||||
self._nvram_watcher = FileWatcher(self._nvram_file(), self._nvram_changed, delay=2)
|
||||
|
||||
# created a environment variable pointing to the iourc file.
|
||||
# created an environment variable pointing to the iourc file.
|
||||
env = os.environ.copy()
|
||||
if "IOURC" not in os.environ and iourc_path:
|
||||
env["IOURC"] = iourc_path
|
||||
@ -568,7 +578,7 @@ class IOUVM(BaseNode):
|
||||
callback = functools.partial(self._termination_callback, "IOU")
|
||||
gns3server.utils.asyncio.monitor_process(self._iou_process, callback)
|
||||
except FileNotFoundError as e:
|
||||
raise IOUError("Could not start IOU: {}: 32-bit binary support is probably not installed".format(e))
|
||||
raise IOUError("Could not start IOU: {}: 32-bit binary support is probably not installed, it is recommended to use a 64-bit image instead".format(e))
|
||||
except (OSError, subprocess.SubprocessError) as e:
|
||||
iou_stdout = self.read_iou_stdout()
|
||||
log.error("Could not start IOU {}: {}\n{}".format(self._path, e, iou_stdout))
|
||||
|
||||
@ -33,7 +33,9 @@ import gns3server
|
||||
import subprocess
|
||||
import time
|
||||
import json
|
||||
import psutil
|
||||
|
||||
from pathlib import Path
|
||||
from gns3server.utils import parse_version, shlex_quote
|
||||
from gns3server.utils.asyncio import subprocess_check_output, cancellable_wait_run_in_executor
|
||||
from .qemu_error import QemuError
|
||||
@ -224,7 +226,7 @@ class QemuVM(BaseNode):
|
||||
if qemu_bin == "qemu":
|
||||
self._platform = "i386"
|
||||
else:
|
||||
self._platform = re.sub(r'^qemu-system-(\w+).*$', r'\1', qemu_bin, re.IGNORECASE)
|
||||
self._platform = re.sub(r'^qemu-system-(\w+).*$', r'\1', qemu_bin, flags=re.IGNORECASE)
|
||||
if self._platform.split(".")[0] not in QEMU_PLATFORMS:
|
||||
raise QemuError("Platform {} is unknown".format(self._platform))
|
||||
log.info('QEMU VM "{name}" [{id}] has set the QEMU path to {qemu_path}'.format(name=self._name,
|
||||
@ -1166,6 +1168,21 @@ class QemuVM(BaseNode):
|
||||
except OSError as e:
|
||||
raise QemuError("Could not start Telnet QEMU console {}\n".format(e))
|
||||
|
||||
def _find_partition_for_path(self, path):
|
||||
"""
|
||||
Finds the disk partition for a given path.
|
||||
"""
|
||||
|
||||
path = os.path.abspath(path)
|
||||
partitions = psutil.disk_partitions()
|
||||
# find the partition with the longest matching mount point
|
||||
matching_partition = None
|
||||
for partition in partitions:
|
||||
if path.startswith(partition.mountpoint):
|
||||
if matching_partition is None or len(partition.mountpoint) > len(matching_partition.mountpoint):
|
||||
matching_partition = partition
|
||||
return matching_partition
|
||||
|
||||
async def _termination_callback(self, returncode):
|
||||
"""
|
||||
Called when the process has stopped.
|
||||
@ -1178,7 +1195,17 @@ class QemuVM(BaseNode):
|
||||
await self.stop()
|
||||
# A return code of 1 seem fine on Windows
|
||||
if returncode != 0 and (not sys.platform.startswith("win") or returncode != 1):
|
||||
self.project.emit("log.error", {"message": "QEMU process has stopped, return code: {}\n{}".format(returncode, self.read_stdout())})
|
||||
qemu_stdout = self.read_stdout()
|
||||
# additional permissions need to be configured for swtpm in AppArmor if the working dir
|
||||
# is located on a different partition than the partition for the root directory
|
||||
if "TPM result for CMD_INIT" in qemu_stdout:
|
||||
partition = self._find_partition_for_path(self.project.path)
|
||||
if partition and partition.mountpoint != "/":
|
||||
qemu_stdout += "\nTPM error: the project directory is not on the same partition as the root directory which can be a problem when using AppArmor.\n" \
|
||||
"Please try to execute the following commands on the server:\n\n" \
|
||||
"echo 'owner {}/** rwk,' | sudo tee /etc/apparmor.d/local/usr.bin.swtpm > /dev/null\n" \
|
||||
"sudo service apparmor restart".format(os.path.dirname(self.project.path))
|
||||
self.project.emit("log.error", {"message": "QEMU process has stopped, return code: {}\n{}".format(returncode, qemu_stdout)})
|
||||
|
||||
async def stop(self):
|
||||
"""
|
||||
@ -2029,20 +2056,59 @@ class QemuVM(BaseNode):
|
||||
else:
|
||||
raise QemuError("bios image '{}' is not accessible".format(self._bios_image))
|
||||
options.extend(["-bios", self._bios_image.replace(",", ",,")])
|
||||
|
||||
elif self._uefi:
|
||||
# get the OVMF firmware from the images directory
|
||||
ovmf_firmware_path = self.manager.get_abs_image_path("OVMF_CODE.fd")
|
||||
ovmf_firmware_dir = self._manager.config.get_section_config("Qemu").get("ovmf_firmware_dir", "/usr/share/OVMF")
|
||||
system_ovmf_firmware_dir = Path(ovmf_firmware_dir)
|
||||
log.info("Using OVMF firmware directory: {}".format(system_ovmf_firmware_dir))
|
||||
old_ovmf_vars_path = os.path.join(self.working_dir, "OVMF_VARS.fd")
|
||||
if os.path.exists(old_ovmf_vars_path):
|
||||
# the node has its own UEFI variables store already, we must also use the old UEFI firmware
|
||||
ovmf_firmware_path = self.manager.get_abs_image_path("OVMF_CODE.fd")
|
||||
else:
|
||||
# Use a manual case-insensitive search instead
|
||||
try:
|
||||
system_ovmf_firmware_path = next((f for f in system_ovmf_firmware_dir.glob("*.fd")
|
||||
if f.name.lower() == "ovmf_code_4m.fd"), None)
|
||||
except (FileNotFoundError, StopIteration):
|
||||
system_ovmf_firmware_path = None
|
||||
|
||||
if system_ovmf_firmware_path:
|
||||
ovmf_firmware_path = str(system_ovmf_firmware_path)
|
||||
else:
|
||||
# otherwise, get the UEFI firmware from the images directory
|
||||
ovmf_firmware_path = self.manager.get_abs_image_path("OVMF_CODE_4M.fd")
|
||||
|
||||
log.info("Configuring UEFI boot mode using OVMF file: '{}'".format(ovmf_firmware_path))
|
||||
options.extend(["-drive", "if=pflash,format=raw,readonly,file={}".format(ovmf_firmware_path)])
|
||||
|
||||
# try to use the UEFI variables store from the system first
|
||||
try:
|
||||
system_ovmf_vars_path = next((f for f in system_ovmf_firmware_dir.glob("*.fd")
|
||||
if f.name.lower() == "ovmf_vars_4m.fd"), None)
|
||||
except (FileNotFoundError, StopIteration):
|
||||
system_ovmf_vars_path = None
|
||||
if system_ovmf_vars_path:
|
||||
ovmf_vars_path = str(system_ovmf_vars_path)
|
||||
else:
|
||||
# otherwise, get the UEFI variables store from the images directory
|
||||
ovmf_vars_path = self.manager.get_abs_image_path("OVMF_VARS_4M.fd")
|
||||
|
||||
# the node should have its own copy of OVMF_VARS.fd (the UEFI variables store)
|
||||
ovmf_vars_node_path = os.path.join(self.working_dir, "OVMF_VARS.fd")
|
||||
if not os.path.exists(ovmf_vars_node_path):
|
||||
try:
|
||||
shutil.copyfile(self.manager.get_abs_image_path("OVMF_VARS.fd"), ovmf_vars_node_path)
|
||||
except OSError as e:
|
||||
raise QemuError("Cannot copy OVMF_VARS.fd file to the node working directory: {}".format(e))
|
||||
if os.path.exists(old_ovmf_vars_path):
|
||||
ovmf_vars_node_path = old_ovmf_vars_path
|
||||
else:
|
||||
ovmf_vars_node_path = os.path.join(self.working_dir, "OVMF_VARS_4M.fd")
|
||||
if not os.path.exists(ovmf_vars_node_path):
|
||||
try:
|
||||
shutil.copyfile(ovmf_vars_path, ovmf_vars_node_path)
|
||||
except OSError as e:
|
||||
raise QemuError("Cannot copy OVMF_VARS_4M.fd file to the node working directory: {}".format(e))
|
||||
options.extend(["-drive", "if=pflash,format=raw,file={}".format(ovmf_vars_node_path)])
|
||||
|
||||
# edk2 firmware requires a Random Number Generator (RNG) device in order to turn network adapters on
|
||||
options.extend(["-object", "rng-random,filename=/dev/urandom,id=rng0"])
|
||||
options.extend(["-device", "virtio-rng-pci,rng=rng0"])
|
||||
return options
|
||||
|
||||
def _linux_boot_options(self):
|
||||
@ -2141,14 +2207,31 @@ class QemuVM(BaseNode):
|
||||
patched_qemu = True
|
||||
|
||||
# Each 32 PCI device we need to add a PCI bridge with max 9 bridges
|
||||
pci_devices = 4 + len(self._ethernet_adapters) # 4 PCI devices are use by default by qemu
|
||||
# Count PCI devices: 4 default + disks (virtio/sata/nvme/scsi) + network adapters
|
||||
pci_disk_devices = 0
|
||||
for drive in ["a", "b", "c", "d"]:
|
||||
# config disk replaces hdd when enabled
|
||||
if drive == "d" and self._create_config_disk:
|
||||
continue
|
||||
if getattr(self, "_hd{}_disk_image".format(drive)):
|
||||
interface = getattr(self, "_hd{}_disk_interface".format(drive))
|
||||
# virtio, sata, nvme, and scsi each consume 1 PCI slot; ide and none don't
|
||||
if interface not in ("none", "ide"):
|
||||
pci_disk_devices += 1
|
||||
# config disk (replaces hdd) also consumes a PCI slot if created
|
||||
if self._create_config_disk and self.config_disk_image:
|
||||
interface = self.hdd_disk_interface if self.hdd_disk_interface != "none" else self.hda_disk_interface
|
||||
if interface not in ("none", "ide"):
|
||||
pci_disk_devices += 1
|
||||
|
||||
pci_devices = 4 + pci_disk_devices + len(self._ethernet_adapters)
|
||||
pci_bridges = math.floor(pci_devices / 32)
|
||||
pci_bridges_created = 0
|
||||
if pci_bridges >= 1:
|
||||
if self._qemu_version and parse_version(self._qemu_version) < parse_version("2.4.0"):
|
||||
raise QemuError("Qemu version 2.4 or later is required to run this VM with a large number of network adapters")
|
||||
|
||||
pci_device_id = 4 + pci_bridges # Bridge consume PCI ports
|
||||
pci_device_id = 4 + pci_bridges + pci_disk_devices # Bridges and disks consume PCI ports
|
||||
for adapter_number, adapter in enumerate(self._ethernet_adapters):
|
||||
mac = int_to_macaddress(macaddress_to_int(self._mac_address) + adapter_number)
|
||||
|
||||
@ -2397,7 +2480,6 @@ class QemuVM(BaseNode):
|
||||
elif sys.platform.startswith("win") or sys.platform.startswith("darwin"):
|
||||
command.extend(["-enable-hax"])
|
||||
command.extend(["-boot", "order={}".format(self._boot_priority)])
|
||||
command.extend(self._bios_option())
|
||||
command.extend(self._cdrom_option())
|
||||
command.extend((await self._disk_options()))
|
||||
command.extend(self._linux_boot_options())
|
||||
@ -2415,6 +2497,8 @@ class QemuVM(BaseNode):
|
||||
raise QemuError("Console type {} is unknown".format(self._console_type))
|
||||
command.extend(self._monitor_options())
|
||||
command.extend((await self._network_options()))
|
||||
# bios options must be last to have predictable NIC numbering, see https://github.com/GNS3/gns3-server/issues/2838
|
||||
command.extend(self._bios_option())
|
||||
if self.on_close != "save_vm_state":
|
||||
await self._clear_save_vm_stated()
|
||||
else:
|
||||
|
||||
@ -218,28 +218,45 @@ class VirtualBoxVM(BaseNode):
|
||||
"""
|
||||
Fix the VM uuid in the case of linked clone
|
||||
"""
|
||||
if os.path.exists(self._linked_vbox_file()):
|
||||
try:
|
||||
tree = ET.parse(self._linked_vbox_file())
|
||||
except ET.ParseError:
|
||||
raise VirtualBoxError("Cannot modify VirtualBox linked nodes file. "
|
||||
"File {} is corrupted.".format(self._linked_vbox_file()))
|
||||
except OSError as e:
|
||||
raise VirtualBoxError("Cannot modify VirtualBox linked nodes file '{}': {}".format(self._linked_vbox_file(), e))
|
||||
|
||||
machine = tree.getroot().find("{http://www.virtualbox.org/}Machine")
|
||||
if machine is not None and machine.get("uuid") != "{" + self.id + "}":
|
||||
linked_vbox_file = self._linked_vbox_file()
|
||||
if not os.path.exists(linked_vbox_file):
|
||||
raise VirtualBoxError("Cannot find VirtualBox linked node file: {}".format(linked_vbox_file))
|
||||
|
||||
for image in tree.getroot().findall("{http://www.virtualbox.org/}Image"):
|
||||
currentSnapshot = machine.get("currentSnapshot")
|
||||
if currentSnapshot:
|
||||
newSnapshot = re.sub(r"\{.*\}", "{" + str(uuid.uuid4()) + "}", currentSnapshot)
|
||||
shutil.move(os.path.join(self.working_dir, self._vmname, "Snapshots", currentSnapshot) + ".vdi",
|
||||
os.path.join(self.working_dir, self._vmname, "Snapshots", newSnapshot) + ".vdi")
|
||||
image.set("uuid", newSnapshot)
|
||||
try:
|
||||
tree = ET.parse(linked_vbox_file)
|
||||
except ET.ParseError:
|
||||
raise VirtualBoxError("Cannot modify VirtualBox linked node file. "
|
||||
"File {} is corrupted.".format(linked_vbox_file))
|
||||
except OSError as e:
|
||||
raise VirtualBoxError("Cannot modify VirtualBox linked node file '{}': {}".format(linked_vbox_file, e))
|
||||
|
||||
machine.set("uuid", "{" + self.id + "}")
|
||||
tree.write(self._linked_vbox_file())
|
||||
machine = tree.getroot().find("{http://www.virtualbox.org/}Machine")
|
||||
if machine is not None and machine.get("uuid") != "{" + self.id + "}":
|
||||
|
||||
for image in tree.getroot().findall("{http://www.virtualbox.org/}Image"):
|
||||
currentSnapshot = machine.get("currentSnapshot")
|
||||
if currentSnapshot:
|
||||
newSnapshot = re.sub(r"\{.*\}", "{" + str(uuid.uuid4()) + "}", currentSnapshot)
|
||||
shutil.move(
|
||||
os.path.join(self.working_dir, self._vmname, "Snapshots", currentSnapshot) + ".vdi",
|
||||
os.path.join(self.working_dir, self._vmname, "Snapshots", newSnapshot) + ".vdi"
|
||||
)
|
||||
log.info("VirtualBox VM '{name}' [{id}] snapshot file moved from '{current}' to '{new}'".format(
|
||||
name=self.name,
|
||||
id=self.id,
|
||||
current=currentSnapshot,
|
||||
new=newSnapshot,
|
||||
))
|
||||
image.set("uuid", newSnapshot)
|
||||
|
||||
log.info("VirtualBox VM '{name}' [{id}] '{vbox_file}' has been patched".format(
|
||||
name=self.name,
|
||||
id=self.id,
|
||||
vbox_file=linked_vbox_file,
|
||||
))
|
||||
machine.set("uuid", "{" + self.id + "}")
|
||||
tree.write(linked_vbox_file)
|
||||
|
||||
async def check_hw_virtualization(self):
|
||||
"""
|
||||
@ -458,7 +475,7 @@ class VirtualBoxVM(BaseNode):
|
||||
|
||||
async def save_linked_hdds_info(self):
|
||||
"""
|
||||
Save linked cloned hard disks information.
|
||||
Save linked cloned hard disk information.
|
||||
|
||||
:returns: disk table information
|
||||
"""
|
||||
|
||||
@ -13,8 +13,7 @@ logging console discriminator EXCESS
|
||||
!
|
||||
no ip icmp rate-limit unreachable
|
||||
!
|
||||
! due to some bugs with IOU, try to change the following line to 'ip cef' if your routing does not work
|
||||
no ip cef
|
||||
ip cef
|
||||
no ip domain lookup
|
||||
!
|
||||
!
|
||||
|
||||
@ -12,8 +12,7 @@ no ip icmp rate-limit unreachable
|
||||
!
|
||||
!
|
||||
!
|
||||
! due to some bugs with IOU, try to change the following line to 'ip cef' if your routing does not work
|
||||
no ip cef
|
||||
ip cef
|
||||
no ip domain lookup
|
||||
!
|
||||
!
|
||||
|
||||
@ -217,7 +217,7 @@ class Controller:
|
||||
try:
|
||||
os.makedirs(os.path.dirname(self._config_file), exist_ok=True)
|
||||
with open(self._config_file, 'w+') as f:
|
||||
json.dump(controller_settings, f, indent=4)
|
||||
json.dump(controller_settings, f, indent=4, sort_keys=True)
|
||||
except OSError as e:
|
||||
log.error("Cannot write controller configuration file '{}': {}".format(self._config_file, e))
|
||||
|
||||
@ -562,7 +562,15 @@ class Controller:
|
||||
|
||||
for project in self._projects.values():
|
||||
if project.auto_open:
|
||||
await project.open()
|
||||
try:
|
||||
await project.open()
|
||||
except aiohttp.web.HTTPClientError as e:
|
||||
details = e.text or e.reason or str(e)
|
||||
log.warning(
|
||||
"Failed to auto-open project '%s': %s",
|
||||
project.name,
|
||||
details,
|
||||
)
|
||||
|
||||
def get_free_project_name(self, base_name):
|
||||
"""
|
||||
|
||||
@ -18,14 +18,19 @@
|
||||
import ipaddress
|
||||
import aiohttp
|
||||
import asyncio
|
||||
import async_timeout
|
||||
import socket
|
||||
import json
|
||||
import uuid
|
||||
import sys
|
||||
import io
|
||||
|
||||
from operator import itemgetter
|
||||
|
||||
if sys.version_info >= (3, 11):
|
||||
from asyncio import timeout as asynctimeout
|
||||
else:
|
||||
from async_timeout import timeout as asynctimeout
|
||||
|
||||
from ..utils import parse_version
|
||||
from ..utils.asyncio import locking
|
||||
from ..controller.controller_error import ControllerError
|
||||
@ -483,8 +488,8 @@ class Compute:
|
||||
""" Returns URL for specific path at Compute"""
|
||||
return self._getUrl(path)
|
||||
|
||||
async def _run_http_query(self, method, path, data=None, timeout=20, raw=False):
|
||||
async with async_timeout.timeout(delay=timeout):
|
||||
async def _run_http_query(self, method, path, data=None, timeout=120, raw=False):
|
||||
async with asynctimeout(delay=timeout):
|
||||
url = self._getUrl(path)
|
||||
headers = {}
|
||||
headers['content-type'] = 'application/json'
|
||||
|
||||
@ -32,7 +32,16 @@ log = logging.getLogger(__name__)
|
||||
CHUNK_SIZE = 1024 * 8 # 8KB
|
||||
|
||||
|
||||
async def export_project(zstream, project, temporary_dir, include_images=False, include_snapshots=False, keep_compute_ids=False, allow_all_nodes=False, reset_mac_addresses=False):
|
||||
async def export_project(
|
||||
zstream,
|
||||
project,
|
||||
temporary_dir,
|
||||
include_images=False,
|
||||
include_snapshots=False,
|
||||
keep_compute_ids=False,
|
||||
allow_all_nodes=False,
|
||||
reset_mac_addresses=False
|
||||
):
|
||||
"""
|
||||
Export a project to a zip file.
|
||||
|
||||
@ -46,7 +55,7 @@ async def export_project(zstream, project, temporary_dir, include_images=False,
|
||||
:param include_snapshots: save snapshots to the zip file
|
||||
:param keep_compute_ids: If false replace all compute IDs y local (standard behavior for .gns3project to make it portable)
|
||||
:param allow_all_nodes: Allow all nodes type to be included in the zip even if not portable
|
||||
:param reset_mac_addresses: Reset MAC addresses for each node.
|
||||
:param reset_mac_addresses: Reset MAC addresses for each node
|
||||
"""
|
||||
|
||||
# To avoid issue with data not saved we disallow the export of a running project
|
||||
@ -62,7 +71,16 @@ async def export_project(zstream, project, temporary_dir, include_images=False,
|
||||
# First we process the .gns3 in order to be sure we don't have an error
|
||||
for file in os.listdir(project._path):
|
||||
if file.endswith(".gns3"):
|
||||
await _patch_project_file(project, os.path.join(project._path, file), zstream, include_images, keep_compute_ids, allow_all_nodes, temporary_dir, reset_mac_addresses)
|
||||
await _patch_project_file(
|
||||
project,
|
||||
os.path.join(project._path, file),
|
||||
zstream,
|
||||
include_images,
|
||||
keep_compute_ids,
|
||||
allow_all_nodes,
|
||||
temporary_dir,
|
||||
reset_mac_addresses
|
||||
)
|
||||
|
||||
# Export the local files
|
||||
for root, dirs, files in os.walk(project._path, topdown=True, followlinks=False):
|
||||
@ -87,6 +105,10 @@ async def export_project(zstream, project, temporary_dir, include_images=False,
|
||||
# save empty directories
|
||||
for directory in dirs:
|
||||
path = os.path.join(root, directory)
|
||||
if path == temporary_dir:
|
||||
continue
|
||||
if include_snapshots is False and path.endswith("snapshots"):
|
||||
continue
|
||||
if not os.listdir(path):
|
||||
zstream.write(path, os.path.relpath(path, project._path))
|
||||
except FileNotFoundError as e:
|
||||
@ -142,7 +164,7 @@ def _is_exportable(path, include_snapshots=False):
|
||||
"""
|
||||
|
||||
# do not export snapshots by default
|
||||
if include_snapshots is False and path.endswith("snapshots"):
|
||||
if include_snapshots is False and os.path.dirname(path).endswith("snapshots"):
|
||||
return False
|
||||
|
||||
# do not export directories of snapshots
|
||||
@ -167,7 +189,16 @@ def _is_exportable(path, include_snapshots=False):
|
||||
return True
|
||||
|
||||
|
||||
async def _patch_project_file(project, path, zstream, include_images, keep_compute_ids, allow_all_nodes, temporary_dir, reset_mac_addresses):
|
||||
async def _patch_project_file(
|
||||
project,
|
||||
path,
|
||||
zstream,
|
||||
include_images,
|
||||
keep_compute_ids,
|
||||
allow_all_nodes,
|
||||
temporary_dir,
|
||||
reset_mac_addresses
|
||||
):
|
||||
"""
|
||||
Patch a project file (.gns3) to export a project.
|
||||
The .gns3 file is renamed to project.gns3
|
||||
@ -240,7 +271,7 @@ async def _patch_project_file(project, path, zstream, include_images, keep_compu
|
||||
for compute_id, image_type, image in remote_images:
|
||||
await _export_remote_images(project, compute_id, image_type, image, zstream, temporary_dir)
|
||||
|
||||
zstream.writestr("project.gns3", json.dumps(topology).encode())
|
||||
zstream.writestr("project.gns3", json.dumps(topology, indent=4, sort_keys=True).encode())
|
||||
return images
|
||||
|
||||
|
||||
|
||||
@ -247,6 +247,7 @@ class VirtualBoxGNS3VM(BaseGNS3VM):
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
async def list(self):
|
||||
"""
|
||||
List all VirtualBox VMs
|
||||
@ -267,8 +268,8 @@ class VirtualBoxGNS3VM(BaseGNS3VM):
|
||||
|
||||
# get a NAT interface number
|
||||
nat_interface_number = await self._look_for_interface("nat")
|
||||
if nat_interface_number < 0:
|
||||
raise GNS3VMError('VM "{}" must have a NAT interface configured in order to start'.format(self.vmname))
|
||||
if nat_interface_number < 0 and await self._look_for_interface("natnetwork") < 0:
|
||||
raise GNS3VMError('VM "{}" must have a NAT or NAT Network interface configured in order to start'.format(self.vmname))
|
||||
|
||||
if sys.platform.startswith("darwin") and parse_version(self._system_properties["API version"]) >= parse_version("7_0"):
|
||||
# VirtualBox 7.0+ on macOS requires a host-only network interface
|
||||
@ -337,39 +338,68 @@ class VirtualBoxGNS3VM(BaseGNS3VM):
|
||||
elif vm_state == "paused":
|
||||
args = [self._vmname, "resume"]
|
||||
await self._execute("controlvm", args)
|
||||
ip_address = "127.0.0.1"
|
||||
try:
|
||||
# get a random port on localhost
|
||||
with socket.socket() as s:
|
||||
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||
s.bind((ip_address, 0))
|
||||
api_port = s.getsockname()[1]
|
||||
except OSError as e:
|
||||
raise GNS3VMError("Error while getting random port: {}".format(e))
|
||||
|
||||
if await self._check_vbox_port_forwarding():
|
||||
# delete the GNS3VM NAT port forwarding rule if it exists
|
||||
log.info("Removing GNS3VM NAT port forwarding rule from interface {}".format(nat_interface_number))
|
||||
await self._execute("controlvm", [self._vmname, "natpf{}".format(nat_interface_number), "delete", "GNS3VM"])
|
||||
log.info("Retrieving IP address from GNS3 VM...")
|
||||
ip = await self._get_ip_from_guest_property()
|
||||
if ip:
|
||||
self.ip_address = ip
|
||||
else:
|
||||
# if we can't get the IP address from the guest property, we try to get it from the GNS3 server (a NAT interface is required)
|
||||
if nat_interface_number < 0:
|
||||
raise GNS3VMError("Could not find guest IP address for {}".format(self.vmname))
|
||||
log.warning("Could not find IP address from guest property, trying to get it from GNS3 server")
|
||||
ip_address = "127.0.0.1"
|
||||
try:
|
||||
# get a random port on localhost
|
||||
with socket.socket() as s:
|
||||
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||
s.bind((ip_address, 0))
|
||||
api_port = s.getsockname()[1]
|
||||
except OSError as e:
|
||||
raise GNS3VMError("Error while getting random port: {}".format(e))
|
||||
|
||||
# add a GNS3VM NAT port forwarding rule to redirect 127.0.0.1 with random port to the port in the VM
|
||||
log.info("Adding GNS3VM NAT port forwarding rule with port {} to interface {}".format(api_port, nat_interface_number))
|
||||
await self._execute("controlvm", [self._vmname, "natpf{}".format(nat_interface_number),
|
||||
"GNS3VM,tcp,{},{},,{}".format(ip_address, api_port, self.port)])
|
||||
if await self._check_vbox_port_forwarding():
|
||||
# delete the GNS3VM NAT port forwarding rule if it exists
|
||||
log.info("Removing GNS3VM NAT port forwarding rule from interface {}".format(nat_interface_number))
|
||||
await self._execute("controlvm", [self._vmname, "natpf{}".format(nat_interface_number), "delete", "GNS3VM"])
|
||||
|
||||
self.ip_address = await self._get_ip(interface_number, api_port)
|
||||
log.info("GNS3 VM has been started with IP {}".format(self.ip_address))
|
||||
# add a GNS3VM NAT port forwarding rule to redirect 127.0.0.1 with random port to the port in the VM
|
||||
log.info("Adding GNS3VM NAT port forwarding rule with port {} to interface {}".format(api_port, nat_interface_number))
|
||||
await self._execute("controlvm", [self._vmname, "natpf{}".format(nat_interface_number),
|
||||
"GNS3VM,tcp,{},{},,{}".format(ip_address, api_port, self.port)])
|
||||
|
||||
self.ip_address = await self._get_ip_from_server(interface_number, api_port)
|
||||
|
||||
log.info("GNS3 VM has been started with IP '{}'".format(self.ip_address))
|
||||
self.running = True
|
||||
|
||||
async def _get_ip(self, hostonly_interface_number, api_port):
|
||||
async def _get_ip_from_guest_property(self):
|
||||
"""
|
||||
Get the IP from VirtualBox.
|
||||
Get the IP from VirtualBox by retrieving the guest property (Guest Additions must be installed).
|
||||
"""
|
||||
|
||||
remaining_try = 180 # try for 3 minutes
|
||||
while remaining_try > 0:
|
||||
result = await self._execute("guestproperty", ["get", self._vmname, "/VirtualBox/GuestInfo/Net/0/V4/IP"])
|
||||
for info in result.splitlines():
|
||||
if ':' in info:
|
||||
name, value = info.split(':', 1)
|
||||
if name == "Value":
|
||||
return value.strip()
|
||||
remaining_try -= 1
|
||||
await asyncio.sleep(1)
|
||||
return None
|
||||
|
||||
async def _get_ip_from_server(self, hostonly_interface_number, api_port):
|
||||
"""
|
||||
Get the IP from VirtualBox by sending a request to the GNS3 server.
|
||||
|
||||
Due to VirtualBox limitation the only way is to send request each
|
||||
second to a GNS3 endpoint in order to get the list of the interfaces and
|
||||
their IP and after that match it with VirtualBox host only.
|
||||
"""
|
||||
remaining_try = 300
|
||||
|
||||
remaining_try = 180 # try for 3 minutes
|
||||
while remaining_try > 0:
|
||||
async with aiohttp.ClientSession() as session:
|
||||
try:
|
||||
|
||||
@ -39,8 +39,18 @@ Handle the import of project from a .gns3project
|
||||
"""
|
||||
|
||||
|
||||
async def import_project(controller, project_id, stream, location=None, name=None, keep_compute_ids=False,
|
||||
auto_start=False, auto_open=False, auto_close=True):
|
||||
async def import_project(
|
||||
controller,
|
||||
project_id,
|
||||
stream,
|
||||
location=None,
|
||||
name=None,
|
||||
reset_mac_addresses=False,
|
||||
keep_compute_ids=False,
|
||||
auto_start=False,
|
||||
auto_open=False,
|
||||
auto_close=True,
|
||||
):
|
||||
"""
|
||||
Import a project contain in a zip file
|
||||
|
||||
@ -51,7 +61,9 @@ async def import_project(controller, project_id, stream, location=None, name=Non
|
||||
:param stream: A io.BytesIO of the zipfile
|
||||
:param location: Directory for the project if None put in the default directory
|
||||
:param name: Wanted project name, generate one from the .gns3 if None
|
||||
:param reset_mac_addresses: Reset MAC addresses for each node
|
||||
:param keep_compute_ids: keep compute IDs unchanged
|
||||
:param project_name: Original project name when restoring a snapshot
|
||||
|
||||
:returns: Project
|
||||
"""
|
||||
@ -72,12 +84,14 @@ async def import_project(controller, project_id, stream, location=None, name=Non
|
||||
# We import the project on top of an existing project (snapshots)
|
||||
if topology["project_id"] == project_id:
|
||||
project_name = topology["name"]
|
||||
restoring_snapshot = True
|
||||
else:
|
||||
# If the project name is already used we generate a new one
|
||||
if name:
|
||||
project_name = controller.get_free_project_name(name)
|
||||
else:
|
||||
project_name = controller.get_free_project_name(topology["name"])
|
||||
restoring_snapshot = False
|
||||
except (ValueError, KeyError):
|
||||
raise aiohttp.web.HTTPConflict(text="Cannot import project, the project.gns3 file is corrupted")
|
||||
|
||||
@ -105,27 +119,11 @@ async def import_project(controller, project_id, stream, location=None, name=Non
|
||||
topology["auto_open"] = auto_open
|
||||
topology["auto_close"] = auto_close
|
||||
|
||||
# Generate a new node id
|
||||
node_old_to_new = {}
|
||||
for node in topology["topology"]["nodes"]:
|
||||
if "node_id" in node:
|
||||
node_old_to_new[node["node_id"]] = str(uuid.uuid4())
|
||||
_move_node_file(path, node["node_id"], node_old_to_new[node["node_id"]])
|
||||
node["node_id"] = node_old_to_new[node["node_id"]]
|
||||
else:
|
||||
node["node_id"] = str(uuid.uuid4())
|
||||
if not restoring_snapshot:
|
||||
# Do not re-generate IDs if we are restoring a snapshot because they should be the same in a project
|
||||
regenerate_topology_ids(topology, path, reset_mac_addresses=reset_mac_addresses)
|
||||
|
||||
# Update link to use new id
|
||||
for link in topology["topology"]["links"]:
|
||||
link["link_id"] = str(uuid.uuid4())
|
||||
for node in link["nodes"]:
|
||||
node["node_id"] = node_old_to_new[node["node_id"]]
|
||||
|
||||
# Generate new drawings id
|
||||
for drawing in topology["topology"]["drawings"]:
|
||||
drawing["drawing_id"] = str(uuid.uuid4())
|
||||
|
||||
# Modify the compute id of the node depending of compute capacity
|
||||
# Modify the compute id of the node depending on compute capacity
|
||||
if not keep_compute_ids:
|
||||
# For some VM type we move them to the GNS3 VM if possible
|
||||
# unless it's a linux host without GNS3 VM
|
||||
@ -135,14 +133,6 @@ async def import_project(controller, project_id, stream, location=None, name=Non
|
||||
node["compute_id"] = "vm"
|
||||
else:
|
||||
# Round-robin through available compute resources.
|
||||
# computes = []
|
||||
# for compute_id in controller.computes:
|
||||
# compute = controller.get_compute(compute_id)
|
||||
# # only use the local compute or any connected compute
|
||||
# if compute_id == "local" or compute.connected:
|
||||
# computes.append(compute_id)
|
||||
# else:
|
||||
# log.warning(compute.name, "is not connected!")
|
||||
compute_nodes = itertools.cycle(controller.computes)
|
||||
for node in topology["topology"]["nodes"]:
|
||||
node["compute_id"] = next(compute_nodes)
|
||||
@ -162,7 +152,7 @@ async def import_project(controller, project_id, stream, location=None, name=Non
|
||||
# We change the project_id to avoid erasing the project
|
||||
topology["project_id"] = project_id
|
||||
with open(dot_gns3_path, "w+") as f:
|
||||
json.dump(topology, f, indent=4)
|
||||
json.dump(topology, f, indent=4, sort_keys=True)
|
||||
os.remove(os.path.join(path, "project.gns3"))
|
||||
|
||||
images_path = os.path.join(path, "images")
|
||||
@ -170,30 +160,93 @@ async def import_project(controller, project_id, stream, location=None, name=Non
|
||||
await _import_images(controller, images_path)
|
||||
|
||||
snapshots_path = os.path.join(path, "snapshots")
|
||||
if os.path.exists(snapshots_path):
|
||||
await _import_snapshots(snapshots_path, project_name, project_id)
|
||||
if not restoring_snapshot and os.path.exists(snapshots_path):
|
||||
await update_snapshots(snapshots_path, path, project_name, project_id, reset_mac_addresses=reset_mac_addresses)
|
||||
|
||||
project = await controller.load_project(dot_gns3_path, load=False)
|
||||
return project
|
||||
|
||||
|
||||
def _create_symbolic_links(zip_file, path):
|
||||
"""
|
||||
Manually create symbolic links (if any) because ZipFile does not support it.
|
||||
Refuse any target that escapes `path`.
|
||||
|
||||
:param zip_file: ZipFile instance
|
||||
:param path: project location
|
||||
"""
|
||||
|
||||
path_root = os.path.realpath(path) + os.sep
|
||||
for zip_info in zip_file.infolist():
|
||||
if stat.S_ISLNK(zip_info.external_attr >> 16):
|
||||
symlink_target = zip_file.read(zip_info.filename).decode()
|
||||
symlink_path = os.path.join(path, zip_info.filename)
|
||||
try:
|
||||
# remove the regular file and replace it by a symbolic link
|
||||
os.remove(symlink_path)
|
||||
os.symlink(symlink_target, symlink_path)
|
||||
except OSError as e:
|
||||
raise aiohttp.web.HTTPConflict(text=f"Cannot create symbolic link: {e}")
|
||||
if not stat.S_ISLNK(zip_info.external_attr >> 16):
|
||||
continue
|
||||
symlink_target = zip_file.read(zip_info.filename).decode()
|
||||
symlink_path = os.path.join(path, zip_info.filename)
|
||||
|
||||
# 1. Reject absolute targets outright.
|
||||
if os.path.isabs(symlink_target):
|
||||
raise aiohttp.web.HTTPConflict(
|
||||
text=f"Symlink {zip_info.filename!r} has absolute target {symlink_target!r}, refusing"
|
||||
)
|
||||
|
||||
# 2. Reject paths where the entry name itself escapes (defence in depth;
|
||||
# extractall normally would already have caught this).
|
||||
member_abs = os.path.realpath(symlink_path)
|
||||
if not (member_abs + os.sep).startswith(path_root) and member_abs + os.sep != path_root:
|
||||
raise aiohttp.web.HTTPConflict(
|
||||
text=f"Symlink entry {zip_info.filename!r} escapes project dir, refusing"
|
||||
)
|
||||
|
||||
# 3. Resolve the symlink target relative to the entry's own parent
|
||||
# directory and verify the resolved real path stays inside `path`.
|
||||
link_dir = os.path.realpath(os.path.dirname(symlink_path))
|
||||
resolved_target = os.path.realpath(os.path.join(link_dir, symlink_target))
|
||||
if not (resolved_target + os.sep).startswith(path_root) and resolved_target + os.sep != path_root:
|
||||
raise aiohttp.web.HTTPConflict(
|
||||
text=f"Symlink {zip_info.filename!r} -> {symlink_target!r} escapes project dir, refusing"
|
||||
)
|
||||
|
||||
try:
|
||||
os.remove(symlink_path)
|
||||
os.symlink(symlink_target, symlink_path)
|
||||
except OSError as e:
|
||||
raise aiohttp.web.HTTPConflict(text=f"Cannot create symbolic link: {e}")
|
||||
|
||||
|
||||
def regenerate_topology_ids(topology, new_project_path, reset_mac_addresses=False):
|
||||
"""
|
||||
Regenerate IDs in the topology and move the files of the nodes to match the new IDs.
|
||||
This is necessary because IDs must be unique across projects.
|
||||
|
||||
:param topology: topology content
|
||||
:param new_project_path: new project path
|
||||
:param reset_mac_addresses: reset MAC addresses
|
||||
"""
|
||||
|
||||
# Generate new node IDs
|
||||
node_old_to_new = {}
|
||||
for node in topology["topology"]["nodes"]:
|
||||
new_node_id = str(uuid.uuid4())
|
||||
if "node_id" in node:
|
||||
node_old_to_new[node["node_id"]] = new_node_id
|
||||
_move_node_file(new_project_path, node["node_id"], new_node_id)
|
||||
node["node_id"] = new_node_id
|
||||
if reset_mac_addresses:
|
||||
if "properties" in node:
|
||||
for prop, value in node["properties"].items():
|
||||
# reset the MAC address
|
||||
if prop in ("mac_addr", "mac_address"):
|
||||
node["properties"][prop] = None
|
||||
|
||||
# Generate new link IDs
|
||||
for link in topology["topology"]["links"]:
|
||||
link["link_id"] = str(uuid.uuid4())
|
||||
for node in link["nodes"]:
|
||||
node["node_id"] = node_old_to_new[node["node_id"]]
|
||||
|
||||
# Generate new drawings IDs
|
||||
for drawing in topology["topology"]["drawings"]:
|
||||
drawing["drawing_id"] = str(uuid.uuid4())
|
||||
|
||||
def _move_node_file(path, old_id, new_id):
|
||||
"""
|
||||
@ -246,7 +299,7 @@ async def _upload_file(compute, project_id, file_path, path):
|
||||
|
||||
async def _import_images(controller, images_path):
|
||||
"""
|
||||
Copy images to the images directory or delete them if they already exists.
|
||||
Copy images to the images directory or delete them if they already exist.
|
||||
"""
|
||||
|
||||
image_dir = controller.images_path()
|
||||
@ -254,23 +307,31 @@ async def _import_images(controller, images_path):
|
||||
for (dirpath, dirnames, filenames) in os.walk(root, followlinks=False):
|
||||
for filename in filenames:
|
||||
path = os.path.join(dirpath, filename)
|
||||
if os.path.islink(path):
|
||||
continue
|
||||
dst = os.path.join(image_dir, os.path.relpath(path, root))
|
||||
os.makedirs(os.path.dirname(dst), exist_ok=True)
|
||||
await wait_run_in_executor(shutil.move, path, dst)
|
||||
if not os.path.exists(dst):
|
||||
await wait_run_in_executor(shutil.move, path, dst)
|
||||
try:
|
||||
with open(dst, "rb") as f:
|
||||
# read the first 7 bytes of the file.
|
||||
elf_header_start = f.read(7)
|
||||
# IOU images must start with the ELF magic number, be 32-bit or 64-bit, little endian and have an ELF version of 1
|
||||
if elf_header_start == b'\x7fELF\x01\x01\x01' or elf_header_start == b'\x7fELF\x02\x01\x01':
|
||||
os.chmod(dst, stat.S_IWRITE | stat.S_IREAD | stat.S_IEXEC)
|
||||
except OSError as e:
|
||||
continue
|
||||
|
||||
|
||||
async def _import_snapshots(snapshots_path, project_name, project_id):
|
||||
async def update_snapshots(snapshots_dir, project_path, project_name, project_id, reset_mac_addresses=True):
|
||||
"""
|
||||
Import the snapshots and update their project name and ID to be the same as the main project.
|
||||
Load the snapshots and update their project name and project ID to be the same as the main project.
|
||||
Regenerate all the node, link and drawing IDs
|
||||
"""
|
||||
|
||||
for snapshot in os.listdir(snapshots_path):
|
||||
if not snapshot.endswith(".gns3project"):
|
||||
for snapshot in os.listdir(snapshots_dir):
|
||||
if not (snapshot.endswith(".gns3snapshot") or snapshot.endswith(".gns3project")):
|
||||
continue
|
||||
snapshot_path = os.path.join(snapshots_path, snapshot)
|
||||
with tempfile.TemporaryDirectory(dir=snapshots_path) as tmpdir:
|
||||
snapshot_path = os.path.join(snapshots_dir, snapshot)
|
||||
with tempfile.TemporaryDirectory(dir=snapshots_dir) as tmpdir:
|
||||
|
||||
# extract everything to a temporary directory
|
||||
try:
|
||||
@ -288,9 +349,9 @@ async def _import_snapshots(snapshots_path, project_name, project_id):
|
||||
topology_file_path = os.path.join(tmpdir, "project.gns3")
|
||||
with open(topology_file_path, encoding="utf-8") as f:
|
||||
topology = json.load(f)
|
||||
|
||||
topology["name"] = project_name
|
||||
topology["project_id"] = project_id
|
||||
regenerate_topology_ids(topology, tmpdir, reset_mac_addresses)
|
||||
with open(topology_file_path, "w+", encoding="utf-8") as f:
|
||||
json.dump(topology, f, indent=4, sort_keys=True)
|
||||
except OSError as e:
|
||||
@ -308,5 +369,6 @@ async def _import_snapshots(snapshots_path, project_name, project_id):
|
||||
async with aiofiles.open(snapshot_path, 'wb+') as f:
|
||||
async for chunk in zstream:
|
||||
await f.write(chunk)
|
||||
log.info("Project '{}': updated and repacked snapshot file '{}'".format(project_name, snapshot))
|
||||
except OSError as e:
|
||||
raise aiohttp.web.HTTPConflict(text="Cannot update snapshot '{}': the snapshot cannot be recreated: {}".format(os.path.basename(snapshot), e))
|
||||
|
||||
@ -91,7 +91,7 @@ class Node:
|
||||
self._first_port_name = None
|
||||
self._console_auto_start = False
|
||||
|
||||
# This properties will be recompute
|
||||
# This properties will be recomputed
|
||||
ignore_properties = ("width", "height", "hover_symbol")
|
||||
self.properties = kwargs.pop('properties', {})
|
||||
|
||||
@ -382,6 +382,7 @@ class Node:
|
||||
await self.parse_node_response(response.json)
|
||||
return True
|
||||
trial += 1
|
||||
return False
|
||||
|
||||
async def update(self, **kwargs):
|
||||
"""
|
||||
|
||||
@ -84,9 +84,9 @@ class Port:
|
||||
# If port name format has changed we use the port name as the short name (1.X behavior)
|
||||
if self._short_name:
|
||||
return self._short_name
|
||||
elif '/' in self._name:
|
||||
elif self._name and '/' in self._name:
|
||||
return self._name.replace(self.long_name_type(), self.short_name_type())
|
||||
elif self._name.startswith("{}{}".format(self.long_name_type(), self._interface_number)):
|
||||
elif self._name and self._name.startswith("{}{}".format(self.long_name_type(), self._interface_number)):
|
||||
return self.short_name_type() + "{}".format(self._interface_number)
|
||||
return self._name
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user