mirror of
https://github.com/GNS3/gns3-registry.git
synced 2024-12-21 05:43:10 +00:00
Merge https://github.com/GNS3/gns3-registry into puller
This commit is contained in:
commit
7cbc236608
76
.github/workflows/codeql.yml
vendored
Normal file
76
.github/workflows/codeql.yml
vendored
Normal file
@ -0,0 +1,76 @@
|
||||
# For most projects, this workflow file will not need changing; you simply need
|
||||
# to commit it to your repository.
|
||||
#
|
||||
# You may wish to alter this file to override the set of languages analyzed,
|
||||
# or to provide custom queries or build logic.
|
||||
#
|
||||
# ******** NOTE ********
|
||||
# We have attempted to detect the languages in your repository. Please check
|
||||
# the `language` matrix defined below to confirm you have the correct set of
|
||||
# supported CodeQL languages.
|
||||
#
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [ "master" ]
|
||||
schedule:
|
||||
- cron: '33 16 * * 0'
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
security-events: write
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language: [ 'python' ]
|
||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
||||
# Use only 'java' to analyze code written in Java, Kotlin or both
|
||||
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
|
||||
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
|
||||
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
||||
# queries: security-extended,security-and-quality
|
||||
|
||||
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v2
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
||||
|
||||
# If the Autobuild fails above, remove it and uncomment the following three lines.
|
||||
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
|
||||
|
||||
# - run: |
|
||||
# echo "Run, Build Application using script"
|
||||
# ./location_of_script_within_repo/buildscript.sh
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v2
|
||||
with:
|
||||
category: "/language:${{matrix.language}}"
|
22
.whitesource
Normal file
22
.whitesource
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"scanSettings": {
|
||||
"configMode": "AUTO",
|
||||
"configExternalURL": "",
|
||||
"projectToken": "",
|
||||
"baseBranches": []
|
||||
},
|
||||
"checkRunSettings": {
|
||||
"vulnerableCheckRunConclusionLevel": "failure",
|
||||
"displayMode": "diff",
|
||||
"useMendCheckNames": true
|
||||
},
|
||||
"issueSettings": {
|
||||
"minSeverityLevel": "LOW",
|
||||
"issueType": "DEPENDENCY"
|
||||
},
|
||||
"remediateSettings": {
|
||||
"workflowRules": {
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
@ -21,14 +21,14 @@
|
||||
"images": [
|
||||
{
|
||||
"filename": "c3725-adventerprisek9-mz.124-15.T14.image",
|
||||
"version": "124-25.T14",
|
||||
"version": "124-15.T14",
|
||||
"md5sum": "64f8c427ed48fd21bd02cf1ff254c4eb",
|
||||
"filesize": 97859480
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "124-25.T14",
|
||||
"name": "124-15.T14",
|
||||
"idlepc": "0x60c09aa0",
|
||||
"images": {
|
||||
"image": "c3725-adventerprisek9-mz.124-15.T14.image"
|
||||
|
@ -77,6 +77,13 @@
|
||||
"md5sum": "4cf5b7fd68075b6f7ee0dd41a4029ca0",
|
||||
"filesize": 2150017536,
|
||||
"download_url": "https://software.cisco.com/download/"
|
||||
},
|
||||
{
|
||||
"filename": "Cisco_Firepower_Management_Center_Virtual-6.2.2-81.qcow2",
|
||||
"version": "6.2.2 (81)",
|
||||
"md5sum": "2f75c9c6c18a6fbb5516f6f451aef3a4",
|
||||
"filesize": 2112356352,
|
||||
"download_url": "https://software.cisco.com/download/"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
@ -121,6 +128,12 @@
|
||||
"images": {
|
||||
"hda_disk_image": "Cisco_Firepower_Management_Center_Virtual_VMware-6.2.1-342-disk1.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.2.2 (81)",
|
||||
"images": {
|
||||
"hda_disk_image": "Cisco_Firepower_Management_Center_Virtual-6.2.2-81.qcow2"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -25,6 +25,14 @@
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "cumulus-linux-5.3.1-vx-amd64-qemu.qcow2",
|
||||
"version": "5.3.1",
|
||||
"md5sum": "366b4e5afbfb638244fac4dd6cd092fd",
|
||||
"filesize": 2147479552,
|
||||
"download_url": "https://www.nvidia.com/en-us/networking/ethernet-switching/cumulus-vx/download/",
|
||||
"direct_download_url": "https://d2cd9e7ca6hntp.cloudfront.net/public/CumulusLinux-5.3.1/cumulus-linux-5.3.1-vx-amd64-qemu.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "cumulus-linux-5.1.0-vx-amd64-qemu.qcow2",
|
||||
"version": "5.1.0",
|
||||
@ -239,6 +247,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "5.3.1",
|
||||
"images": {
|
||||
"hda_disk_image": "cumulus-linux-5.3.1-vx-amd64-qemu.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "5.1.0",
|
||||
"images": {
|
||||
|
@ -24,12 +24,12 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "debian-11-genericcloud-amd64-20220911-1135.qcow2",
|
||||
"version": "11.5",
|
||||
"md5sum": "06e481ddd23682af4326226661c13d8f",
|
||||
"filesize": 254672896,
|
||||
"filename": "debian-11-genericcloud-amd64-20221219-1234.qcow2",
|
||||
"version": "11.6",
|
||||
"md5sum": "bd6ddbccc89e40deb7716b812958238d",
|
||||
"filesize": 258801664,
|
||||
"download_url": "https://cloud.debian.org/images/cloud/bullseye/",
|
||||
"direct_download_url": "https://cloud.debian.org/images/cloud/bullseye/20220911-1135/debian-11-genericcloud-amd64-20220911-1135.qcow2"
|
||||
"direct_download_url": "https://cloud.debian.org/images/cloud/bullseye/20221219-1234/debian-11-genericcloud-amd64-20221219-1234.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "debian-10-genericcloud-amd64-20220911-1135.qcow2",
|
||||
@ -49,9 +49,9 @@
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "11.5",
|
||||
"name": "11.6",
|
||||
"images": {
|
||||
"hda_disk_image": "debian-11-genericcloud-amd64-20220911-1135.qcow2",
|
||||
"hda_disk_image": "debian-11-genericcloud-amd64-20221219-1234.qcow2",
|
||||
"cdrom_image": "debian-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
|
@ -10,7 +10,7 @@
|
||||
"status": "stable",
|
||||
"maintainer": "Andras Dosztal",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "You can add records by adding entries to the /etc/hosts file in the following format:\n%IP_ADDRESS% %HOSTNAME%.lab %HOSTNAME%\n\nExample:\n192.168.123.10 router1.lab router1",
|
||||
"usage": "You can add records by adding entries to the /etc/hosts file in the following format:\n%IP_ADDRESS% %HOSTNAME%.lab %HOSTNAME%\n\nExample:\n192.168.123.10 router1.lab router1\n\nIf you require DNS requests to be serviced from a different subnet than the one that the DNS server resides on then do the following:\n\n1. Edit (nano or vim) /ect/init.d/dnsmasq\n2. Find the line DNSMASQ_OPTS=\"$DNSMASQ_OPTS --local-service\"\n3. Remove the --local-service or comment that line out and add DNSMASQ_OPTS=\"\"\n4. Restart dnsmasq - service dnsmaq restart",
|
||||
"symbol": "linux_guest.svg",
|
||||
"docker": {
|
||||
"adapters": 1,
|
||||
|
@ -27,6 +27,13 @@
|
||||
"options": "-nographic"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "VOSSGNS3.8.8.0.0.qcow2",
|
||||
"version": "v8.8.0.0",
|
||||
"md5sum": "caa01094bad8ea5750261924b82ca746",
|
||||
"filesize": 348389376,
|
||||
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_VOSS/VOSSGNS3.8.8.0.0.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "VOSSGNS3.8.4.0.0.qcow2",
|
||||
"version": "v8.4.0.0",
|
||||
@ -78,6 +85,13 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "v8.8.0.0",
|
||||
"images":
|
||||
{
|
||||
"hda_disk_image": "VOSSGNS3.8.8.0.0.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "v8.4.0.0",
|
||||
"images": {
|
||||
|
@ -34,6 +34,13 @@
|
||||
"filesize": 340631552,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v7.0.5-build0365-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.0.5",
|
||||
"md5sum": "6cbc1f865ed285bb3a73323e222f03b8",
|
||||
"filesize": 334184448,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v6-build2288-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.4.5",
|
||||
@ -191,6 +198,13 @@
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.5",
|
||||
"images": {
|
||||
"hda_disk_image": "FAZ_VM64_KVM-v7.0.5-build0365-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.4.5",
|
||||
"images": {
|
||||
|
@ -27,6 +27,13 @@
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v7.2.3.F-build1262-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.2.3",
|
||||
"md5sum": "e8f3c5879f0d6fe238dc2665a3508694",
|
||||
"filesize": 87490560,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v7.2.1.F-build1254-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.2.1",
|
||||
@ -34,6 +41,20 @@
|
||||
"filesize": 86704128,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v7.0.9.M-build0444-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.0.9",
|
||||
"md5sum": "0aee912ab11bf9a4b0e3fc1a62dd0e40",
|
||||
"filesize": 77135872,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v6.M-build2030-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.4.11",
|
||||
"md5sum": "bcd7491ddfa31fec4f618b73792456e4",
|
||||
"filesize": 69861376,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v6-build1828-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.4.5",
|
||||
@ -261,6 +282,13 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "7.2.3",
|
||||
"images": {
|
||||
"hda_disk_image": "FGT_VM64_KVM-v7.2.3.F-build1262-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.2.1",
|
||||
"images": {
|
||||
@ -268,6 +296,20 @@
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.9",
|
||||
"images": {
|
||||
"hda_disk_image": "FGT_VM64_KVM-v7.0.9.M-build0444-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.4.11",
|
||||
"images": {
|
||||
"hda_disk_image": "FGT_VM64_KVM-v6.M-build2030-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.4.5",
|
||||
"images": {
|
||||
|
@ -34,6 +34,13 @@
|
||||
"filesize": 242814976,
|
||||
"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-build2288-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.4.5",
|
||||
@ -191,6 +198,13 @@
|
||||
"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.5",
|
||||
"images": {
|
||||
|
@ -22,6 +22,14 @@
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "frr-8.2.2.qcow2",
|
||||
"version": "8.2.2",
|
||||
"md5sum": "45cda6b991a1b9e8205a3a0ecc953640",
|
||||
"filesize": 56609280,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
|
||||
"direct_download_url": "http://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/frr-8.2.2.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "frr-8.1.0.qcow2",
|
||||
"version": "8.1.0",
|
||||
@ -48,6 +56,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "8.2.2",
|
||||
"images": {
|
||||
"hda_disk_image": "frr-8.2.2.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "8.1.0",
|
||||
"images": {
|
||||
|
@ -14,7 +14,7 @@
|
||||
"usage": "In the web interface login as admin/admin\n\nPersistent configuration:\n- Add \"/var/lib/redis\" as an additional persistent directory.\n- Use \"redis-cli save\" in an auxiliary console to save the configuration.",
|
||||
"docker": {
|
||||
"adapters": 1,
|
||||
"image": "ntop/ntopng:stable",
|
||||
"image": "ntop/ntopng:latest",
|
||||
"start_command": "--dns-mode 2 --interface eth0",
|
||||
"console_type": "http",
|
||||
"console_http_port": 3000,
|
||||
|
@ -54,6 +54,13 @@
|
||||
"filesize": 338690048,
|
||||
"download_url": "https://support.vyos.io/en/downloads/files/vyos-1-3-0-generic-iso-image"
|
||||
},
|
||||
{
|
||||
"filename": "vyos-1.2.9-amd64.iso",
|
||||
"version": "1.2.9",
|
||||
"md5sum": "586be23b6256173e174c82d8f1f699a1",
|
||||
"filesize": 430964736,
|
||||
"download_url": "https://support.vyos.io/en/downloads/files/vyos-1-2-9-generic-iso-image"
|
||||
},
|
||||
{
|
||||
"filename": "vyos-1.2.8-amd64.iso",
|
||||
"version": "1.2.8",
|
||||
@ -114,6 +121,13 @@
|
||||
"cdrom_image": "vyos-1.3.0-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "1.2.9",
|
||||
"images": {
|
||||
"hda_disk_image": "empty8G.qcow2",
|
||||
"cdrom_image": "vyos-1.2.9-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "1.2.8",
|
||||
"images": {
|
||||
|
59
appliances/windows-11-dev-env.gns3a
Normal file
59
appliances/windows-11-dev-env.gns3a
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"appliance_id": "f3b6a3ac-7be5-4bb0-b204-da3712fb646c",
|
||||
"name": "Windows-11-Dev-Env",
|
||||
"category": "guest",
|
||||
"description": "Windows 11 Developer Environment Virtual Machine.",
|
||||
"vendor_name": "Microsoft",
|
||||
"vendor_url": "https://www.microsoft.com",
|
||||
"documentation_url": "https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/",
|
||||
"product_name": "Windows 11 Development Environment",
|
||||
"product_url": "https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/",
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"availability": "free",
|
||||
"maintainer": "Ean Towne",
|
||||
"maintainer_email": "eantowne@gmail.com",
|
||||
"usage": "Uses SPICE not VNC\nHighly recommended to install the SPICE-agent from: https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-latest.exe to be able to change resolution and increase performance.\nThis is an evaluation virtual machine (90 days) and includes:\n* Window 11 Enterprise (Evaluation)\n* Visual Studio 2022 Community Edition with UWP .NET Desktop, Azure, and Windows App SDK for C# workloads enabled\n* Windows Subsystem for Linux 2 enabled with Ubuntu installed\n* Windows Terminal installed\n* Developer mode enabled",
|
||||
"symbol": "microsoft.svg",
|
||||
"first_port_name": "Network Adapter 1",
|
||||
"port_name_format": "Network Adapter {0}",
|
||||
"qemu": {
|
||||
"adapter_type": "e1000",
|
||||
"adapters": 1,
|
||||
"ram": 4096,
|
||||
"cpus": 4,
|
||||
"hda_disk_interface": "sata",
|
||||
"arch": "x86_64",
|
||||
"console_type": "spice",
|
||||
"boot_priority": "c",
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "WinDev2212Eval-disk1.vmdk",
|
||||
"version": "2212",
|
||||
"md5sum": "c79f393a067b92e01a513a118d455ac8",
|
||||
"filesize": 24620493824,
|
||||
"download_url": "https://aka.ms/windev_VM_vmware",
|
||||
"compression": "zip"
|
||||
},
|
||||
{
|
||||
"filename": "OVMF-20160813.fd",
|
||||
"version": "16.08.13",
|
||||
"md5sum": "8ff0ef1ec56345db5b6bda1a8630e3c6",
|
||||
"filesize": 2097152,
|
||||
"download_url": "",
|
||||
"direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/OVMF-20160813.fd.zip/download",
|
||||
"compression": "zip"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"images": {
|
||||
"bios_image": "OVMF-20160813.fd",
|
||||
"hda_disk_image": "WinDev2212Eval-disk1.vmdk"
|
||||
},
|
||||
"name": "2212"
|
||||
}
|
||||
]
|
||||
}
|
2
check.py
2
check.py
@ -25,7 +25,7 @@ import jsonschema
|
||||
from picture import get_size
|
||||
|
||||
APPLIANCE_IDS = []
|
||||
SCHEMA_VERSIONS = [3, 4, 5, 6]
|
||||
SCHEMA_VERSIONS = [3, 4, 5, 6, 7],
|
||||
|
||||
warnings = 0
|
||||
|
||||
|
9
cloud-init/centos-cloud/README.md
Normal file
9
cloud-init/centos-cloud/README.md
Normal file
@ -0,0 +1,9 @@
|
||||
# Centos-cloud cloud-init-data image for GNS3 virtual appliance
|
||||
|
||||
Generated using the following commands:
|
||||
|
||||
```
|
||||
printf "#cloud-config\n\npassword: centos\nchpasswd: { expire: False }\nssh_pwauth: True\n" > user-data
|
||||
printf "instance-id: centos-cloud\nlocal-hostname: centos-cloud\n" > meta-data
|
||||
mkisofs -output centos-cloud-init-data.iso -volid cidata -joliet -rock user-data meta-data
|
||||
```
|
BIN
cloud-init/centos-cloud/centos-cloud-init-data.iso
Normal file
BIN
cloud-init/centos-cloud/centos-cloud-init-data.iso
Normal file
Binary file not shown.
2
cloud-init/centos-cloud/meta-data
Normal file
2
cloud-init/centos-cloud/meta-data
Normal file
@ -0,0 +1,2 @@
|
||||
instance-id: centos-cloud
|
||||
local-hostname: centos-cloud
|
5
cloud-init/centos-cloud/user-data
Normal file
5
cloud-init/centos-cloud/user-data
Normal file
@ -0,0 +1,5 @@
|
||||
#cloud-config
|
||||
|
||||
password: centos
|
||||
chpasswd: { expire: False }
|
||||
ssh_pwauth: True
|
9
cloud-init/oracle-cloud/README.md
Normal file
9
cloud-init/oracle-cloud/README.md
Normal file
@ -0,0 +1,9 @@
|
||||
# Oracle-cloud cloud-init-data image for GNS3 virtual appliance
|
||||
|
||||
Generated using the following commands:
|
||||
|
||||
```
|
||||
printf "#cloud-config\n\npassword: oracle\nchpasswd: { expire: False }\nssh_pwauth: True\n" > user-data
|
||||
printf "instance-id: oracle-cloud\nlocal-hostname: oracle-cloud\n" > meta-data
|
||||
mkisofs -output oracle-cloud-init-data.iso -volid cidata -joliet -rock user-data meta-data
|
||||
```
|
2
cloud-init/oracle-cloud/meta-data
Normal file
2
cloud-init/oracle-cloud/meta-data
Normal file
@ -0,0 +1,2 @@
|
||||
instance-id: oracle-cloud
|
||||
local-hostname: oracle-cloud
|
BIN
cloud-init/oracle-cloud/oracle-cloud-init-data.iso
Normal file
BIN
cloud-init/oracle-cloud/oracle-cloud-init-data.iso
Normal file
Binary file not shown.
5
cloud-init/oracle-cloud/user-data
Normal file
5
cloud-init/oracle-cloud/user-data
Normal file
@ -0,0 +1,5 @@
|
||||
#cloud-config
|
||||
|
||||
password: oracle
|
||||
chpasswd: { expire: False }
|
||||
ssh_pwauth: True
|
9
cloud-init/ubuntu-cloud/README.md
Normal file
9
cloud-init/ubuntu-cloud/README.md
Normal file
@ -0,0 +1,9 @@
|
||||
# Ubuntu-cloud cloud-init-data image for GNS3 virtual appliance
|
||||
|
||||
Generated using the following commands:
|
||||
|
||||
```
|
||||
printf "#cloud-config\n\npassword: ubuntu\nchpasswd: { expire: False }\nssh_pwauth: True\n" > user-data
|
||||
printf "instance-id: ubuntu-cloud\nlocal-hostname: ubuntu-cloud\n" > meta-data
|
||||
mkisofs -output ubuntu-cloud-init-data.iso -volid cidata -joliet -rock user-data meta-data
|
||||
```
|
2
cloud-init/ubuntu-cloud/meta-data
Normal file
2
cloud-init/ubuntu-cloud/meta-data
Normal file
@ -0,0 +1,2 @@
|
||||
instance-id: ubuntu-cloud
|
||||
local-hostname: ubuntu-cloud
|
BIN
cloud-init/ubuntu-cloud/ubuntu-cloud-init-data.iso
Normal file
BIN
cloud-init/ubuntu-cloud/ubuntu-cloud-init-data.iso
Normal file
Binary file not shown.
5
cloud-init/ubuntu-cloud/user-data
Normal file
5
cloud-init/ubuntu-cloud/user-data
Normal file
@ -0,0 +1,5 @@
|
||||
#cloud-config
|
||||
|
||||
password: ubuntu
|
||||
chpasswd: { expire: False }
|
||||
ssh_pwauth: True
|
@ -6,15 +6,6 @@ For building an Alpine appliance.
|
||||
https://alpinelinux.org/
|
||||
|
||||
|
||||
Packer Version Dependency
|
||||
*************************
|
||||
|
||||
Packer versions 1.6.0 or later do not accept templates
|
||||
that use the ``iso_checksum_type`` attribute.
|
||||
To use these newer versions, you must delete the line
|
||||
containing ``iso_checksum_type`` from alpine.json.
|
||||
|
||||
|
||||
Alpine CLI installation
|
||||
***********************
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"variables": {
|
||||
"iso_url": "https://dl-cdn.alpinelinux.org/alpine/v3.15/releases/x86_64/alpine-virt-3.15.0-x86_64.iso",
|
||||
"iso_checksum": "e97eaedb3bff39a081d1d7e67629d5c0e8fb39677d6a9dd1eaf2752e39061e02",
|
||||
"iso_url": "https://dl-cdn.alpinelinux.org/alpine/v3.17/releases/x86_64/alpine-virt-3.17.0-x86_64.iso",
|
||||
"iso_checksum": "file:https://dl-cdn.alpinelinux.org/alpine/v3.17/releases/x86_64/alpine-virt-3.17.0-x86_64.iso.sha256",
|
||||
"ui_mode": "cli",
|
||||
"vm_name": "alpine_cli.qcow2",
|
||||
"file_source": "README.rst",
|
||||
@ -13,7 +13,6 @@
|
||||
"type": "qemu",
|
||||
"iso_url": "{{user `iso_url`}}",
|
||||
"iso_checksum": "{{user `iso_checksum`}}",
|
||||
"iso_checksum_type": "sha256",
|
||||
"shutdown_command": "poweroff",
|
||||
"headless": true,
|
||||
"ssh_username": "root",
|
||||
|
@ -1,5 +1,17 @@
|
||||
# use serial console
|
||||
sed -i 's/\(APPEND .*\)/\1 console=ttyS0/' /boot/extlinux.conf
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# use serial console and remove quiet
|
||||
sed -i 's/\(APPEND .*\)/\1 console=tty0 console=ttyS0,115200 earlyprintk=ttyS0,115200 consoleblank=0/' /boot/extlinux.conf
|
||||
sed -i '/\(APPEND .*\)/s/[[:space:]]*quiet[[:space:]]*/ /g' /boot/extlinux.conf
|
||||
|
||||
|
||||
# autologin on serial console
|
||||
sed -i 's/^ttyS0.*/ttyS0::respawn:\/bin\/login -f root/' /etc/inittab
|
||||
cat <<'EOF' | tee /usr/local/bin/rootlogin
|
||||
#!/bin/sh
|
||||
exec /bin/login -f root
|
||||
EOF
|
||||
chmod +x /usr/local/bin/rootlogin
|
||||
#/sbin/getty -L ttyS0 115200 vt100
|
||||
sed -i 's/^ttyS0.*/ttyS0::respawn:\/sbin\/getty -n -l \/usr\/local\/bin\/rootlogin -L ttyS0 115200 vt100/' /etc/inittab
|
||||
|
@ -1,3 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
# add community repository
|
||||
sed -i 's/^#\s*\(.*\/v.*\/community\)$/\1/' /etc/apk/repositories
|
||||
apk update
|
||||
@ -42,8 +44,8 @@ sed -i -E '/zebra|bgp|ospf|rip|isis|pim|ldp|eigrp|static|bfd/ s/= *no/=yes/' /et
|
||||
echo "service integrated-vtysh-config" > /etc/frr/vtysh.conf
|
||||
chown frr:frr /etc/frr/vtysh.conf
|
||||
|
||||
# reset terminal modes
|
||||
sed -i "$(printf '1i\e[?5l\e[?7h\e[?8h')" /etc/motd
|
||||
# Remove default Alpine MOTD
|
||||
truncate -s 0 /etc/motd
|
||||
|
||||
# run vtysh in .profile
|
||||
cat > /root/.profile << 'EOF'
|
||||
|
@ -1,28 +1,36 @@
|
||||
#!/bin/sh
|
||||
# shellcheck disable=SC2034
|
||||
|
||||
set -e
|
||||
|
||||
export HOSTNAMEOPTS="-n alpine"
|
||||
export KEYMAPOPTS="us us"
|
||||
export INTERFACESOPTS="auto lo
|
||||
# Export most answers for setup-alpine
|
||||
set -a
|
||||
KEYMAPOPTS="us us"
|
||||
HOSTNAMEOPTS="-n alpine"
|
||||
INTERFACESOPTS="auto lo
|
||||
iface lo inet loopback
|
||||
|
||||
auto eth0
|
||||
iface eth0 inet dhcp
|
||||
hostname alpine
|
||||
"
|
||||
export TIMEZONEOPTS="-z UTC"
|
||||
export PROXYOPTS="none"
|
||||
export APKREPOSOPTS="-1"
|
||||
export SSHDOPTS="-c openssh"
|
||||
export NTPOPTS="-c none"
|
||||
export BOOT_SIZE=50
|
||||
export SWAP_SIZE=0
|
||||
TIMEZONEOPTS="-z UTC"
|
||||
PROXYOPTS="none"
|
||||
APKREPOSOPTS="-1"
|
||||
SSHDOPTS="-c openssh"
|
||||
NTPOPTS="-c none"
|
||||
DISKOPTS="-m sys /dev/sda"
|
||||
BOOT_SIZE=50
|
||||
SWAP_SIZE=0
|
||||
set +a
|
||||
|
||||
# Answer to password question twice and yes to format drive
|
||||
# - Answer to password question twice
|
||||
# - Do not create unprivileged user
|
||||
# - Select disk
|
||||
# - Confirm formatting disk
|
||||
setup-alpine <<EOF
|
||||
root
|
||||
root
|
||||
sda
|
||||
sys
|
||||
no
|
||||
y
|
||||
EOF
|
||||
|
@ -1,3 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# restore default sshd configuration
|
||||
mv /etc/ssh/sshd_config.orig /etc/ssh/sshd_config
|
||||
|
||||
@ -8,4 +12,4 @@ rm -rf /var/cache/apk/*
|
||||
rm -rf /tmp/uploads
|
||||
|
||||
# Write 0
|
||||
dd if=/dev/zero bs=1M of=/zero ; rm -f /zero
|
||||
(dd if=/dev/zero bs=1M of=/zero ; rm -f /zero) || true
|
||||
|
@ -1,3 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# install additional packages
|
||||
apk add nano busybox-extras
|
||||
|
||||
|
1
packer/centos/centos-cloud-init-data.iso
Symbolic link
1
packer/centos/centos-cloud-init-data.iso
Symbolic link
@ -0,0 +1 @@
|
||||
../../cloud-init/centos-cloud/centos-cloud-init-data.iso
|
51
packer/centos/centos8.json
Normal file
51
packer/centos/centos8.json
Normal file
@ -0,0 +1,51 @@
|
||||
{
|
||||
"builders": [
|
||||
{
|
||||
"disk_compression": true,
|
||||
"disk_image": true,
|
||||
"disk_interface": "virtio-scsi",
|
||||
"disk_size": "{{user `disk_size`}}",
|
||||
"headless": true,
|
||||
"iso_checksum": "sha256:{{user `iso_checksum`}}",
|
||||
"iso_url": "{{user `iso_url`}}",
|
||||
"net_device": "virtio-net-pci",
|
||||
"qemuargs": [
|
||||
[
|
||||
"-cdrom",
|
||||
"centos-cloud-init-data.iso"
|
||||
]
|
||||
],
|
||||
"shutdown_command": "sudo shutdown -P now",
|
||||
"ssh_password": "centos",
|
||||
"ssh_timeout": "3600s",
|
||||
"ssh_username": "centos",
|
||||
"type": "qemu",
|
||||
"vm_name": "{{user `vm_name`}}"
|
||||
}
|
||||
],
|
||||
"provisioners": [
|
||||
{
|
||||
"execute_command": "sudo env {{ .Vars }} {{ .Path }}",
|
||||
"script": "scripts/upgrade-os.sh",
|
||||
"type": "shell"
|
||||
},
|
||||
{
|
||||
"execute_command": "sudo env {{ .Vars }} {{ .Path }}",
|
||||
"script": "scripts/centos-gns3-user.sh",
|
||||
"type": "shell"
|
||||
},
|
||||
{
|
||||
"execute_command": "sudo env {{ .Vars }} {{ .Path }}",
|
||||
"script": "scripts/post_setup.sh",
|
||||
"type": "shell"
|
||||
}
|
||||
],
|
||||
"variables": {
|
||||
"disk_size": "20G",
|
||||
"iso_checksum": "8717251f8e4d2fe3e5032799caae89358c1ba68d65a16b5128a59ec6003aac1c",
|
||||
"iso_url": "https://cloud.centos.org/centos/8-stream/x86_64/images/CentOS-Stream-GenericCloud-8-20220913.0.x86_64.qcow2",
|
||||
"setup_script": "centos8.sh",
|
||||
"vm_name": "centos8.qcow2"
|
||||
}
|
||||
}
|
||||
|
5
packer/centos/scripts/centos-gns3-user.sh
Normal file
5
packer/centos/scripts/centos-gns3-user.sh
Normal file
@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
set -ex
|
||||
|
||||
printf "gns3\ngns3\n" | useradd -c "gns3" -G wheel gns3
|
10
packer/centos/scripts/post_setup.sh
Normal file
10
packer/centos/scripts/post_setup.sh
Normal file
@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
set -ex
|
||||
|
||||
# clear repository
|
||||
dnf clean all
|
||||
|
||||
# clear unused space
|
||||
echo 'Clearing unused space...'
|
||||
dd if=/dev/zero bs=1M of=/zero >/dev/null 2>&1 || true; rm -f /zero
|
||||
sync
|
7
packer/centos/scripts/upgrade-os.sh
Normal file
7
packer/centos/scripts/upgrade-os.sh
Normal file
@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
set -ex
|
||||
|
||||
# clear repository
|
||||
dnf clean all
|
||||
|
||||
dnf update -y
|
15
packer/debian/README.md
Normal file
15
packer/debian/README.md
Normal file
@ -0,0 +1,15 @@
|
||||
# Packer for Debian based GNS3 appliances
|
||||
|
||||
## Packer Version Dependency
|
||||
|
||||
Packer versions 1.6.0 or later do not accept templates
|
||||
that use the `iso_checksum_type` attribute.
|
||||
To use these newer versions, you must delete the line
|
||||
containing `iso_checksum_type` from debian.json.
|
||||
|
||||
|
||||
## Debian CLI installation
|
||||
|
||||
```
|
||||
packer build debian.json
|
||||
```
|
1
packer/debian/debian-cloud-init-data.iso
Symbolic link
1
packer/debian/debian-cloud-init-data.iso
Symbolic link
@ -0,0 +1 @@
|
||||
../../cloud-init/Debian/debian-cloud-init-data.iso
|
46
packer/debian/debian.json
Normal file
46
packer/debian/debian.json
Normal file
@ -0,0 +1,46 @@
|
||||
{
|
||||
"variables": {
|
||||
"iso_url": "https://cloud.debian.org/images/cloud/bullseye/20221219-1234/debian-11-genericcloud-amd64-20221219-1234.qcow2",
|
||||
"iso_checksum": "ba0237232247948abf7341a495dec009702809aa7782355a1b35c112e75cee81",
|
||||
"disk_size": "2G",
|
||||
"vm_name": "debian.qcow2",
|
||||
"setup_script": "debian.sh"
|
||||
},
|
||||
"provisioners": [
|
||||
{
|
||||
"type": "shell",
|
||||
"script": "scripts/remove_cloud-init_network.sh",
|
||||
"execute_command" : "sudo env {{ .Vars }} {{ .Path }}"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"script": "scripts/{{user `setup_script`}}",
|
||||
"execute_command" : "sudo env {{ .Vars }} {{ .Path }}"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"script": "scripts/post_setup.sh",
|
||||
"execute_command" : "sudo env {{ .Vars }} {{ .Path }}"
|
||||
}
|
||||
],
|
||||
"builders": [
|
||||
{
|
||||
"type": "qemu",
|
||||
"disk_image": true,
|
||||
"disk_size": "{{user `disk_size`}}",
|
||||
"iso_url": "{{user `iso_url`}}",
|
||||
"iso_checksum": "{{user `iso_checksum`}}",
|
||||
"iso_checksum_type": "sha256",
|
||||
"disk_interface": "virtio-scsi",
|
||||
"disk_compression": true,
|
||||
"headless": true,
|
||||
"net_device": "virtio-net-pci",
|
||||
"qemuargs": [ [ "-cdrom", "debian-cloud-init-data.iso" ] ],
|
||||
"shutdown_command": "sudo shutdown -P now",
|
||||
"ssh_username": "debian",
|
||||
"ssh_password": "debian",
|
||||
"ssh_wait_timeout": "30s",
|
||||
"vm_name": "{{user `vm_name`}}"
|
||||
}
|
||||
]
|
||||
}
|
5
packer/debian/scripts/debian.sh
Normal file
5
packer/debian/scripts/debian.sh
Normal file
@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
set -ex
|
||||
|
||||
# create GNS3 user
|
||||
printf 'gns3\ngns3\n' | adduser --gecos 'GNS3' gns3
|
10
packer/debian/scripts/post_setup.sh
Normal file
10
packer/debian/scripts/post_setup.sh
Normal file
@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
set -ex
|
||||
|
||||
# clear repository
|
||||
apt-get clean
|
||||
|
||||
# clear unused space
|
||||
echo 'Clearing unused space...'
|
||||
dd if=/dev/zero bs=1M of=/zero >/dev/null 2>&1 || true; rm -f /zero
|
||||
sync
|
27
packer/debian/scripts/remove_cloud-init_network.sh
Normal file
27
packer/debian/scripts/remove_cloud-init_network.sh
Normal file
@ -0,0 +1,27 @@
|
||||
#!/bin/sh
|
||||
set -ex
|
||||
|
||||
# replace cloud-init network configuration
|
||||
cat > /etc/network/interfaces <<'EOF'
|
||||
# This file describes the network interfaces available on your system
|
||||
# and how to activate them. For more information, see interfaces(5).
|
||||
|
||||
source /etc/network/interfaces.d/*
|
||||
|
||||
# The loopback network interface
|
||||
auto lo
|
||||
iface lo inet loopback
|
||||
|
||||
# DHCP config for ens4
|
||||
#auto ens4
|
||||
#iface ens4 inet dhcp
|
||||
|
||||
# Static config for ens4
|
||||
#auto ens4
|
||||
#iface ens4 inet static
|
||||
# address 192.168.1.100
|
||||
# netmask 255.255.255.0
|
||||
# gateway 192.168.1.1
|
||||
# dns-nameservers 192.168.1.1
|
||||
EOF
|
||||
rm -f /etc/network/interfaces.d/50-cloud-init
|
1
packer/oracle/oracle-cloud-init-data.iso
Symbolic link
1
packer/oracle/oracle-cloud-init-data.iso
Symbolic link
@ -0,0 +1 @@
|
||||
../../cloud-init/oracle-cloud/oracle-cloud-init-data.iso
|
51
packer/oracle/oracle8.json
Normal file
51
packer/oracle/oracle8.json
Normal file
@ -0,0 +1,51 @@
|
||||
{
|
||||
"builders": [
|
||||
{
|
||||
"disk_compression": true,
|
||||
"disk_image": true,
|
||||
"disk_interface": "virtio-scsi",
|
||||
"disk_size": "{{user `disk_size`}}",
|
||||
"headless": true,
|
||||
"iso_checksum": "sha256:{{user `iso_checksum`}}",
|
||||
"iso_url": "{{user `iso_url`}}",
|
||||
"net_device": "virtio-net-pci",
|
||||
"qemuargs": [
|
||||
[
|
||||
"-cdrom",
|
||||
"oracle-cloud-init-data.iso"
|
||||
]
|
||||
],
|
||||
"shutdown_command": "sudo shutdown -P now",
|
||||
"ssh_password": "oracle",
|
||||
"ssh_timeout": "240s",
|
||||
"ssh_username": "cloud-user",
|
||||
"type": "qemu",
|
||||
"vm_name": "{{user `vm_name`}}"
|
||||
}
|
||||
],
|
||||
"provisioners": [
|
||||
{
|
||||
"execute_command": "sudo env {{ .Vars }} {{ .Path }}",
|
||||
"script": "scripts/upgrade-os.sh",
|
||||
"type": "shell"
|
||||
},
|
||||
{
|
||||
"execute_command": "sudo env {{ .Vars }} {{ .Path }}",
|
||||
"script": "scripts/oracle-gns3-user.sh",
|
||||
"type": "shell"
|
||||
},
|
||||
{
|
||||
"execute_command": "sudo env {{ .Vars }} {{ .Path }}",
|
||||
"script": "scripts/post_setup.sh",
|
||||
"type": "shell"
|
||||
}
|
||||
],
|
||||
"variables": {
|
||||
"disk_size": "40G",
|
||||
"iso_checksum": "4a98e22908333dae1423e0bb4032c88aed60dbf1267addb73a6905778e9930df",
|
||||
"iso_url": "https://yum.oracle.com/templates/OracleLinux/OL8/u7/x86_64/OL8U7_x86_64-kvm-b148.qcow",
|
||||
"setup_script": "oracle8.sh",
|
||||
"vm_name": "oracle8.qcow2"
|
||||
}
|
||||
}
|
||||
|
5
packer/oracle/scripts/oracle-gns3-user.sh
Normal file
5
packer/oracle/scripts/oracle-gns3-user.sh
Normal file
@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
set -ex
|
||||
|
||||
printf "gns3\ngns3\n" | useradd -c "gns3" -G wheel gns3
|
10
packer/oracle/scripts/post_setup.sh
Normal file
10
packer/oracle/scripts/post_setup.sh
Normal file
@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
set -ex
|
||||
|
||||
# clear repository
|
||||
dnf clean all
|
||||
|
||||
# clear unused space
|
||||
echo 'Clearing unused space...'
|
||||
dd if=/dev/zero bs=1M of=/zero >/dev/null 2>&1 || true; rm -f /zero
|
||||
sync
|
7
packer/oracle/scripts/upgrade-os.sh
Normal file
7
packer/oracle/scripts/upgrade-os.sh
Normal file
@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
set -ex
|
||||
|
||||
# clear repository
|
||||
dnf clean all
|
||||
|
||||
dnf update -y
|
51
packer/ubuntu/jammy.json
Normal file
51
packer/ubuntu/jammy.json
Normal file
@ -0,0 +1,51 @@
|
||||
{
|
||||
"builders": [
|
||||
{
|
||||
"disk_compression": true,
|
||||
"disk_image": true,
|
||||
"disk_interface": "virtio-scsi",
|
||||
"disk_size": "{{user `disk_size`}}",
|
||||
"headless": true,
|
||||
"iso_checksum": "sha256:{{user `iso_checksum`}}",
|
||||
"iso_url": "{{user `iso_url`}}",
|
||||
"net_device": "virtio-net-pci",
|
||||
"qemuargs": [
|
||||
[
|
||||
"-cdrom",
|
||||
"ubuntu-cloud-init-data.iso"
|
||||
]
|
||||
],
|
||||
"shutdown_command": "sudo shutdown -P now",
|
||||
"ssh_password": "ubuntu",
|
||||
"ssh_timeout": "120s",
|
||||
"ssh_username": "ubuntu",
|
||||
"type": "qemu",
|
||||
"vm_name": "{{user `vm_name`}}"
|
||||
}
|
||||
],
|
||||
"provisioners": [
|
||||
{
|
||||
"execute_command": "sudo env {{ .Vars }} {{ .Path }}",
|
||||
"script": "scripts/{{user `setup_script`}}",
|
||||
"type": "shell"
|
||||
},
|
||||
{
|
||||
"execute_command": "sudo env {{ .Vars }} {{ .Path }}",
|
||||
"script": "scripts/upgrade-os.sh",
|
||||
"type": "shell"
|
||||
},
|
||||
{
|
||||
"execute_command": "sudo env {{ .Vars }} {{ .Path }}",
|
||||
"script": "scripts/post_setup.sh",
|
||||
"type": "shell"
|
||||
}
|
||||
],
|
||||
"variables": {
|
||||
"disk_size": "10G",
|
||||
"iso_checksum": "8ae2ebcaf1320ea5b8d7003b44f2dbcb4ecad8cc53a3170e96d9ff1bbe8f78b8",
|
||||
"iso_url": "https://cloud-images.ubuntu.com/jammy/20221219/jammy-server-cloudimg-amd64.img",
|
||||
"setup_script": "jammy.sh",
|
||||
"vm_name": "ubuntu-jammy.qcow2"
|
||||
}
|
||||
}
|
||||
|
5
packer/ubuntu/scripts/jammy.sh
Normal file
5
packer/ubuntu/scripts/jammy.sh
Normal file
@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
set -ex
|
||||
|
||||
# create GNS3 user
|
||||
printf 'gns3\ngns3\n' | adduser --gecos 'GNS3' gns3
|
14
packer/ubuntu/scripts/post_setup.sh
Normal file
14
packer/ubuntu/scripts/post_setup.sh
Normal file
@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
set -ex
|
||||
|
||||
# clear repository
|
||||
apt-get clean
|
||||
|
||||
apt-get autoremove --yes
|
||||
|
||||
rm -rf /var/lib/{apt,dpkg,cache,log}/
|
||||
|
||||
# clear unused space
|
||||
echo 'Clearing unused space...'
|
||||
dd if=/dev/zero bs=1M of=/zero >/dev/null 2>&1 || true; rm -f /zero
|
||||
sync
|
7
packer/ubuntu/scripts/upgrade-os.sh
Normal file
7
packer/ubuntu/scripts/upgrade-os.sh
Normal file
@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
set -ex
|
||||
|
||||
# clear repository
|
||||
apt update
|
||||
|
||||
apt upgrade -y
|
1
packer/ubuntu/ubuntu-cloud-init-data.iso
Symbolic link
1
packer/ubuntu/ubuntu-cloud-init-data.iso
Symbolic link
@ -0,0 +1 @@
|
||||
../../cloud-init/ubuntu-cloud/ubuntu-cloud-init-data.iso
|
@ -308,6 +308,10 @@
|
||||
"maximum": 100,
|
||||
"title": "Throttle the CPU"
|
||||
},
|
||||
"on_close": {
|
||||
"title": "Action to execute on the VM is closed",
|
||||
"enum": ["power_off", "shutdown_signal", "save_vm_state"]
|
||||
},
|
||||
"process_priority": {
|
||||
"title": "Process priority for QEMU",
|
||||
"enum": ["realtime",
|
||||
@ -347,7 +351,6 @@
|
||||
"md5sum": {
|
||||
"type": "string",
|
||||
"title": "md5sum of the file",
|
||||
"type": "string",
|
||||
"pattern": "^[a-f0-9]{32}$"
|
||||
},
|
||||
"filesize": {
|
||||
|
@ -311,6 +311,10 @@
|
||||
"maximum": 100,
|
||||
"title": "Throttle the CPU"
|
||||
},
|
||||
"on_close": {
|
||||
"title": "Action to execute on the VM is closed",
|
||||
"enum": ["power_off", "shutdown_signal", "save_vm_state"]
|
||||
},
|
||||
"process_priority": {
|
||||
"title": "Process priority for QEMU",
|
||||
"enum": ["realtime",
|
||||
@ -349,7 +353,6 @@
|
||||
"md5sum": {
|
||||
"type": "string",
|
||||
"title": "md5sum of the file",
|
||||
"type": "string",
|
||||
"pattern": "^[a-f0-9]{32}$"
|
||||
},
|
||||
"filesize": {
|
||||
|
@ -311,6 +311,10 @@
|
||||
"maximum": 100,
|
||||
"title": "Throttle the CPU"
|
||||
},
|
||||
"on_close": {
|
||||
"title": "Action to execute on the VM is closed",
|
||||
"enum": ["power_off", "shutdown_signal", "save_vm_state"]
|
||||
},
|
||||
"process_priority": {
|
||||
"title": "Process priority for QEMU",
|
||||
"enum": ["realtime",
|
||||
@ -349,7 +353,6 @@
|
||||
"md5sum": {
|
||||
"type": "string",
|
||||
"title": "md5sum of the file",
|
||||
"type": "string",
|
||||
"pattern": "^[a-f0-9]{32}$"
|
||||
},
|
||||
"filesize": {
|
||||
|
@ -362,6 +362,10 @@
|
||||
"maximum": 100,
|
||||
"title": "Throttle the CPU"
|
||||
},
|
||||
"on_close": {
|
||||
"title": "Action to execute on the VM is closed",
|
||||
"enum": ["power_off", "shutdown_signal", "save_vm_state"]
|
||||
},
|
||||
"process_priority": {
|
||||
"title": "Process priority for QEMU",
|
||||
"enum": ["realtime",
|
||||
@ -400,7 +404,6 @@
|
||||
"md5sum": {
|
||||
"type": "string",
|
||||
"title": "md5sum of the file",
|
||||
"type": "string",
|
||||
"pattern": "^[a-f0-9]{32}$"
|
||||
},
|
||||
"filesize": {
|
||||
|
514
schemas/appliance_v7.json
Normal file
514
schemas/appliance_v7.json
Normal file
@ -0,0 +1,514 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||
"type": "object",
|
||||
"title": "JSON schema validating a GNS3 appliance",
|
||||
|
||||
"definitions": {
|
||||
"dynamips_slot": {
|
||||
"enum": ["C2600-MB-2FE", "C2600-MB-1E", "PA-A1", "PA-8E", "C1700-MB-1FE", "PA-8T", "PA-2FE-TX", "PA-FE-TX", "PA-GE", "C2600-MB-2E", "C7200-IO-FE", "NM-4T", "C2600-MB-1FE", "C7200-IO-2FE", "PA-POS-OC3", "PA-4T+", "C1700-MB-WIC1", "NM-16ESW", "C7200-IO-GE-E", "NM-4E", "GT96100-FE", "NM-1FE-TX", "Leopard-2FE", "NM-1E", "PA-4E", ""]
|
||||
},
|
||||
|
||||
"dynamips_wic": {
|
||||
"enum": ["WIC-1ENET", "WIC-1T", "WIC-2T", ""]
|
||||
}
|
||||
},
|
||||
|
||||
"properties": {
|
||||
"appliance_id": {
|
||||
"title": "Appliance ID",
|
||||
"type": "string",
|
||||
"minLength": 36,
|
||||
"maxLength": 36,
|
||||
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"title": "Appliance name"
|
||||
},
|
||||
"category": {
|
||||
"enum": [
|
||||
"router",
|
||||
"multilayer_switch",
|
||||
"firewall",
|
||||
"guest"
|
||||
],
|
||||
"title": "Category of the appliance"
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"title": "Description of the appliance. Could be a marketing description"
|
||||
},
|
||||
"vendor_name": {
|
||||
"type": "string",
|
||||
"title": "Name of the vendor"
|
||||
},
|
||||
"vendor_url": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"title": "Website of the vendor"
|
||||
},
|
||||
"documentation_url": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"title": "An optional documentation for using the appliance on vendor website"
|
||||
},
|
||||
"product_name": {
|
||||
"type": "string",
|
||||
"title": "Product name"
|
||||
},
|
||||
"product_url": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"title": "An optional product url on vendor website"
|
||||
},
|
||||
"registry_version": {
|
||||
"enum": [1, 2, 3, 4, 5, 6],
|
||||
"title": "Version of the registry compatible with this appliance"
|
||||
},
|
||||
"status": {
|
||||
"enum": ["stable", "experimental", "broken"],
|
||||
"title": "Document if the appliance is working or not"
|
||||
},
|
||||
"availability": {
|
||||
"enum": ["free", "with-registration", "free-to-try", "service-contract"],
|
||||
"title": "About image availability: can be downloaded directly; download requires a free registration; paid but a trial version (time or feature limited) is available; not available publicly"
|
||||
},
|
||||
"maintainer": {
|
||||
"type": "string",
|
||||
"title": "Maintainer name"
|
||||
},
|
||||
"maintainer_email": {
|
||||
"type": "string",
|
||||
"format": "email",
|
||||
"title": "Maintainer email"
|
||||
},
|
||||
"usage": {
|
||||
"type": "string",
|
||||
"title": "How to use the appliance"
|
||||
},
|
||||
"symbol": {
|
||||
"type": "string",
|
||||
"title": "An optional symbol for the appliance"
|
||||
},
|
||||
"first_port_name": {
|
||||
"type": "string",
|
||||
"title": "Optional name of the first networking port example: eth0"
|
||||
},
|
||||
"port_name_format": {
|
||||
"type": "string",
|
||||
"title": "Optional formating of the networking port example: eth{0}"
|
||||
},
|
||||
"port_segment_size": {
|
||||
"type": "integer",
|
||||
"title": "Optional port segment size. A port segment is a block of port. For example Ethernet0/0 Ethernet0/1 is the module 0 with a port segment size of 2"
|
||||
},
|
||||
"linked_clone": {
|
||||
"type": "boolean",
|
||||
"title": "False if you don't want to use a single image for all nodes"
|
||||
},
|
||||
|
||||
"docker": {
|
||||
"type": "object",
|
||||
"title": "Docker specific options",
|
||||
"properties": {
|
||||
"adapters": {
|
||||
"type": "integer",
|
||||
"title": "Number of ethernet adapters"
|
||||
},
|
||||
"image": {
|
||||
"type": "string",
|
||||
"title": "Docker image in the Docker Hub"
|
||||
},
|
||||
"start_command": {
|
||||
"type": "string",
|
||||
"title": "Command executed when the container start. Empty will use the default"
|
||||
},
|
||||
"environment": {
|
||||
"type": "string",
|
||||
"title": "One KEY=VAR environment by line"
|
||||
},
|
||||
"console_type": {
|
||||
"enum": ["telnet", "vnc", "http", "https"],
|
||||
"title": "Type of console connection for the administration of the appliance"
|
||||
},
|
||||
"console_http_port": {
|
||||
"description": "Internal port in the container of the HTTP server",
|
||||
"type": "integer"
|
||||
},
|
||||
"console_http_path": {
|
||||
"description": "Path of the web interface",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"adapters",
|
||||
"image"
|
||||
]
|
||||
},
|
||||
"iou": {
|
||||
"type": "object",
|
||||
"title": "IOU specific options",
|
||||
"properties": {
|
||||
"ethernet_adapters": {
|
||||
"type": "integer",
|
||||
"title": "Number of ethernet adapters"
|
||||
},
|
||||
"serial_adapters": {
|
||||
"type": "integer",
|
||||
"title": "Number of serial adapters"
|
||||
},
|
||||
"nvram": {
|
||||
"type": "integer",
|
||||
"title": "Host NVRAM"
|
||||
},
|
||||
"ram": {
|
||||
"type": "integer",
|
||||
"title": "Host RAM"
|
||||
},
|
||||
"startup_config": {
|
||||
"type": "string",
|
||||
"title": "Config loaded at startup"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"ethernet_adapters",
|
||||
"serial_adapters",
|
||||
"nvram",
|
||||
"ram",
|
||||
"startup_config"
|
||||
]
|
||||
},
|
||||
"dynamips": {
|
||||
"type": "object",
|
||||
"title": "Dynamips specific options",
|
||||
"properties": {
|
||||
"chassis": {
|
||||
"title": "Chassis type",
|
||||
"enum": ["1720", "1721", "1750", "1751", "1760", "2610", "2620", "2610XM", "2620XM", "2650XM", "2621", "2611XM", "2621XM", "2651XM", "3620", "3640", "3660", ""]
|
||||
},
|
||||
"platform": {
|
||||
"title": "Platform type",
|
||||
"enum": ["c1700", "c2600", "c2691", "c3725", "c3745", "c3600", "c7200"]
|
||||
},
|
||||
"ram": {
|
||||
"title": "Amount of ram",
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"nvram": {
|
||||
"title": "Amount of nvram",
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"startup_config": {
|
||||
"type": "string",
|
||||
"title": "Config loaded at startup"
|
||||
},
|
||||
"wic0": { "$ref": "#/definitions/dynamips_wic" },
|
||||
"wic1": { "$ref": "#/definitions/dynamips_wic" },
|
||||
"wic2": { "$ref": "#/definitions/dynamips_wic" },
|
||||
"slot0": { "$ref": "#/definitions/dynamips_slot" },
|
||||
"slot1": { "$ref": "#/definitions/dynamips_slot" },
|
||||
"slot2": { "$ref": "#/definitions/dynamips_slot" },
|
||||
"slot3": { "$ref": "#/definitions/dynamips_slot" },
|
||||
"slot4": { "$ref": "#/definitions/dynamips_slot" },
|
||||
"slot5": { "$ref": "#/definitions/dynamips_slot" },
|
||||
"slot6": { "$ref": "#/definitions/dynamips_slot" },
|
||||
"midplane": { "enum": ["std", "vxr"] },
|
||||
"npe": { "enum": ["npe-100", "npe-150", "npe-175", "npe-200", "npe-225", "npe-300", "npe-400", "npe-g2"] }
|
||||
},
|
||||
"required": [
|
||||
"platform",
|
||||
"ram",
|
||||
"nvram"
|
||||
]
|
||||
},
|
||||
|
||||
"qemu": {
|
||||
"type": "object",
|
||||
"title": "Qemu specific options",
|
||||
"properties": {
|
||||
"adapter_type": {
|
||||
"enum": [
|
||||
"e1000",
|
||||
"i82550",
|
||||
"i82551",
|
||||
"i82557a",
|
||||
"i82557b",
|
||||
"i82557c",
|
||||
"i82558a",
|
||||
"i82558b",
|
||||
"i82559a",
|
||||
"i82559b",
|
||||
"i82559c",
|
||||
"i82559er",
|
||||
"i82562",
|
||||
"i82801",
|
||||
"ne2k_pci",
|
||||
"pcnet",
|
||||
"rtl8139",
|
||||
"virtio",
|
||||
"virtio-net-pci",
|
||||
"vmxnet3"
|
||||
],
|
||||
"title": "Type of network adapter"
|
||||
},
|
||||
"adapters": {
|
||||
"type": "integer",
|
||||
"title": "Number of adapters"
|
||||
},
|
||||
"custom_adapters": {
|
||||
"type": "array",
|
||||
"title": "Custom adapters",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"adapter_number": {
|
||||
"title": "Adapter number",
|
||||
"type": "integer"
|
||||
},
|
||||
"port_name": {
|
||||
"title": "Custom port name",
|
||||
"type": "string",
|
||||
"minimum": 1
|
||||
},
|
||||
"adapter_type": {
|
||||
"title": "Custom adapter type",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"e1000",
|
||||
"i82550",
|
||||
"i82551",
|
||||
"i82557a",
|
||||
"i82557b",
|
||||
"i82557c",
|
||||
"i82558a",
|
||||
"i82558b",
|
||||
"i82559a",
|
||||
"i82559b",
|
||||
"i82559c",
|
||||
"i82559er",
|
||||
"i82562",
|
||||
"i82801",
|
||||
"ne2k_pci",
|
||||
"pcnet",
|
||||
"rtl8139",
|
||||
"virtio",
|
||||
"virtio-net-pci",
|
||||
"vmxnet3"
|
||||
]
|
||||
},
|
||||
"mac_address": {
|
||||
"title": "Custom MAC address",
|
||||
"type": "string",
|
||||
"minimum": 1,
|
||||
"pattern": "^([0-9a-fA-F]{2}[:]){5}([0-9a-fA-F]{2})$"
|
||||
}
|
||||
},
|
||||
"required": ["adapter_number"]
|
||||
}
|
||||
},
|
||||
"ram": {
|
||||
"type": "integer",
|
||||
"title": "Ram allocated to the appliance (MB)"
|
||||
},
|
||||
"cpus": {
|
||||
"type": "integer",
|
||||
"title": "Number of Virtual CPU"
|
||||
},
|
||||
"hda_disk_interface": {
|
||||
"enum": ["ide", "scsi", "sd", "mtd", "floppy", "pflash", "virtio", "sata"],
|
||||
"title": "Disk interface for the installed hda_disk_image"
|
||||
},
|
||||
"hdb_disk_interface": {
|
||||
"enum": ["ide", "scsi", "sd", "mtd", "floppy", "pflash", "virtio", "sata"],
|
||||
"title": "Disk interface for the installed hdb_disk_image"
|
||||
},
|
||||
"hdc_disk_interface": {
|
||||
"enum": ["ide", "scsi", "sd", "mtd", "floppy", "pflash", "virtio", "sata"],
|
||||
"title": "Disk interface for the installed hdc_disk_image"
|
||||
},
|
||||
"hdd_disk_interface": {
|
||||
"enum": ["ide", "scsi", "sd", "mtd", "floppy", "pflash", "virtio", "sata"],
|
||||
"title": "Disk interface for the installed hdd_disk_image"
|
||||
},
|
||||
"arch": {
|
||||
"enum": ["aarch64", "alpha", "arm", "cris", "i386", "lm32", "m68k", "microblaze", "microblazeel", "mips", "mips64", "mips64el", "mipsel", "moxie", "or32", "ppc", "ppc64", "ppcemb", "s390x", "sh4", "sh4eb", "sparc", "sparc64", "tricore", "unicore32", "x86_64", "xtensa", "xtensaeb"],
|
||||
"title": "Architecture emulated"
|
||||
},
|
||||
"console_type": {
|
||||
"enum": ["telnet", "vnc", "spice"],
|
||||
"title": "Type of console connection for the administration of the appliance"
|
||||
},
|
||||
"boot_priority": {
|
||||
"enum": ["d", "c", "dc", "cd", "n", "nc", "nd", "cn", "dn"],
|
||||
"title": "Optional define the disk boot priory. Refer to -boot option in qemu manual for more details."
|
||||
},
|
||||
"kernel_command_line": {
|
||||
"type": "string",
|
||||
"title": "Command line parameters send to the kernel"
|
||||
},
|
||||
"kvm": {
|
||||
"title": "KVM requirements",
|
||||
"enum": ["require", "allow", "disable"]
|
||||
},
|
||||
"options": {
|
||||
"type": "string",
|
||||
"title": "Optional additional qemu command line options"
|
||||
},
|
||||
"cpu_throttling": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 100,
|
||||
"title": "Throttle the CPU"
|
||||
},
|
||||
"tpm": {
|
||||
"type": "boolean",
|
||||
"title": "Enable the Trusted Platform Module (TPM)"
|
||||
},
|
||||
"on_close": {
|
||||
"title": "Action to execute on the VM is closed",
|
||||
"enum": ["power_off", "shutdown_signal", "save_vm_state"]
|
||||
},
|
||||
"process_priority": {
|
||||
"title": "Process priority for QEMU",
|
||||
"enum": ["realtime",
|
||||
"very high",
|
||||
"high",
|
||||
"normal",
|
||||
"low",
|
||||
"very low",
|
||||
"null"]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"adapter_type",
|
||||
"adapters",
|
||||
"ram",
|
||||
"arch",
|
||||
"console_type",
|
||||
"kvm"
|
||||
]
|
||||
},
|
||||
"images": {
|
||||
"type": "array",
|
||||
"title": "Images for this appliance",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"title": "An image file",
|
||||
"properties": {
|
||||
"filename": {
|
||||
"type": "string",
|
||||
"title": "Filename"
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"title": "Version of the file"
|
||||
},
|
||||
"md5sum": {
|
||||
"type": "string",
|
||||
"title": "md5sum of the file",
|
||||
"pattern": "^[a-f0-9]{32}$"
|
||||
},
|
||||
"filesize": {
|
||||
"type": "integer",
|
||||
"title": "File size in bytes"
|
||||
},
|
||||
"download_url": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"title": "Download url where you can download the appliance from a browser"
|
||||
},
|
||||
"direct_download_url": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"title": "Optional. Non authenticated url to the image file where you can download the image."
|
||||
},
|
||||
"compression": {
|
||||
"enum": ["bzip2", "gzip", "lzma", "xz", "rar", "zip", "7z"],
|
||||
"title": "Optional, compression type of direct download url image."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"filename",
|
||||
"version",
|
||||
"md5sum",
|
||||
"filesize"
|
||||
]
|
||||
}
|
||||
},
|
||||
"versions": {
|
||||
"type": "array",
|
||||
"title": "Versions of the appliance",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"title": "A version of the appliance",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"title": "Name of the version"
|
||||
},
|
||||
"idlepc": {"type": "string", "pattern": "^0x[0-9a-f]{8}"},
|
||||
"images": {
|
||||
"type": "object",
|
||||
"title": "Images used for this version",
|
||||
"properties": {
|
||||
"kernel_image": {
|
||||
"type": "string",
|
||||
"title": "Kernel image"
|
||||
},
|
||||
"initrd": {
|
||||
"type": "string",
|
||||
"title": "Initrd disk image"
|
||||
},
|
||||
"image": {
|
||||
"type": "string",
|
||||
"title": "OS image"
|
||||
},
|
||||
"bios_image": {
|
||||
"type": "string",
|
||||
"title": "Bios image"
|
||||
},
|
||||
"hda_disk_image": {
|
||||
"type": "string",
|
||||
"title": "Hda disk image"
|
||||
},
|
||||
"hdb_disk_image": {
|
||||
"type": "string",
|
||||
"title": "Hdc disk image"
|
||||
},
|
||||
"hdc_disk_image": {
|
||||
"type": "string",
|
||||
"title": "Hdd disk image"
|
||||
},
|
||||
"hdd_disk_image": {
|
||||
"type": "string",
|
||||
"title": "Hdd diskimage"
|
||||
},
|
||||
"cdrom_image": {
|
||||
"type": "string",
|
||||
"title": "cdrom image"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appliance_id",
|
||||
"name",
|
||||
"category",
|
||||
"description",
|
||||
"vendor_name",
|
||||
"vendor_url",
|
||||
"product_name",
|
||||
"registry_version",
|
||||
"status",
|
||||
"maintainer",
|
||||
"maintainer_email"
|
||||
]
|
||||
}
|
Loading…
Reference in New Issue
Block a user