diff options
| author | wangmenglan <[email protected]> | 2022-12-22 19:31:14 +0800 |
|---|---|---|
| committer | 付明卫 <[email protected]> | 2022-12-23 03:29:40 +0000 |
| commit | 0eee6a54c494f9dbfb570ce631295ade4dd444a4 (patch) | |
| tree | 21f53d3ad17759ec571f769e09ce62ac6791dbe4 /tools | |
| parent | 51d771ba3c77dd7555261e15816f2939e32ad323 (diff) | |
✨ feat(TSG-12762): TSG-OS自动构建虚拟硬盘
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/mk-kvm-gns3a.sh | 59 | ||||
| -rw-r--r-- | tools/mk-kvm.sh | 65 | ||||
| -rw-r--r-- | tools/onie-base-kvm.img | bin | 0 -> 25624576 bytes | |||
| -rw-r--r-- | tools/upload.sh | 3 |
4 files changed, 127 insertions, 0 deletions
diff --git a/tools/mk-kvm-gns3a.sh b/tools/mk-kvm-gns3a.sh new file mode 100644 index 00000000..854551d1 --- /dev/null +++ b/tools/mk-kvm-gns3a.sh @@ -0,0 +1,59 @@ +#!/bin/sh + +set -x + +OS_PATH_NAME=$1 +GNS3_TEMPLATE_FILE=$2 + +OS_NAME=$(basename ${OS_PATH_NAME}) +OS_MD5=$(md5sum ${OS_PATH_NAME} | awk '{print $1}') +OS_SIZE=$(wc -c < ${OS_PATH_NAME}) +OS_VERSION=$(echo ${OS_NAME} | grep -Eo "[0-9]+\.[0-9]+") + +if [ -z "${OS_VERSION}" ]; then + OS_VERSION=1.1 +fi + +cat <<EOF > ${GNS3_TEMPLATE_FILE} +{ + "name": "TSG-X", + "category": "guest", + "description": "TSG-X 0906", + "vendor_name": "", + "vendor_url": "", + "documentation_url": "", + "product_name": "TSG-X", + "registry_version": 3, + "status": "stable", + "maintainer": "GNS3 Team", + "maintainer_email": "[email protected]", + "qemu": { + "adapter_type": "virtio-net-pci", + "adapters": 4, + "ram": 32768, + "cpus": 4, + "hda_disk_interface": "virtio", + "arch": "x86_64", + "console_type": "vnc", + "kvm": "require", + "options": "-nographic -cpu host" + }, + "images": [ + { + "filename": "${OS_NAME}", + "version": "${OS_VERSION}", + "md5sum": "${OS_MD5}", + "filesize": ${OS_SIZE} + } + ], + "versions": [ + { + "name": "${OS_VERSION}", + "images": { + "hda_disk_image": "${OS_NAME}" + } + } + ] +} +EOF + diff --git a/tools/mk-kvm.sh b/tools/mk-kvm.sh new file mode 100644 index 00000000..b2b361ed --- /dev/null +++ b/tools/mk-kvm.sh @@ -0,0 +1,65 @@ +#!/bin/sh + +# Copyright (C) 2014 Curt Brune <[email protected]> +# +# SPDX-License-Identifier: GPL-2.0 +set -xe + +MEM=16384 +DISK=$1 + +# Path to ONIE installer .iso image +CDROM="onie-uefi-kvm_x86_64.iso" + +# Path to OVMF firmware for qemu +# Download OVMF from http://www.tianocore.org/ovmf/ +OVMF="OVMF.fd" + +# VM will listen on telnet port $KVM_PORT +KVM_PORT=9000 + +# VNC display to use +VNC_PORT=0 + +# set mode=disk to boot from hard disk +mode=disk + +# set mode=cdrom to boot from the CDROM +# mode=cdrom + +# set mode=net to boot from network adapters +# mode=net + +# set firmware=uefi to boot with UEFI firmware, otherwise the system +# will boot into legacy mode. +# firmware=uefi + +boot=c +if [ "$mode" = "cdrom" ] ; then + boot="order=cd,once=d" + cdrom="-cdrom $CDROM" +elif [ "$mode" = "net" ] ; then + boot="order=cd,once=n,menu=on" +fi + +if [ "$firmware" = "uefi" ] ; then + [ -r "$OVMF" ] || { + echo "ERROR: Cannot find the OVMF firmware for UEFI: $OVMF" + echo "Please make sure to install the OVMF.fd in the expected directory" + exit 1 + } + bios="-bios $OVMF" +fi + +/usr/libexec/qemu-kvm -m $MEM \ + -name "onie" \ + -smp 4,cores=2,threads=1,sockets=2 \ + $bios \ + -boot $boot $cdrom \ + -device e1000,netdev=onienet \ + -netdev user,id=onienet,hostfwd=:0.0.0.0:3040-:22 \ + -nographic \ + -no-reboot \ + -drive file=$DISK,media=disk,if=virtio,index=0 + +exit 0 diff --git a/tools/onie-base-kvm.img b/tools/onie-base-kvm.img Binary files differnew file mode 100644 index 00000000..60e7c667 --- /dev/null +++ b/tools/onie-base-kvm.img diff --git a/tools/upload.sh b/tools/upload.sh index eec64916..75141983 100644 --- a/tools/upload.sh +++ b/tools/upload.sh @@ -8,6 +8,9 @@ if [ -n "${UPLOAD_TO_FILE_REPO}" ]; then #python3 ~/file_upload_tools.py ${PULP3_FILE_REPO_NAME} ${PULP3_FILE_DIST_NAME} ./images/*.sha256sum.txt if [ "${PROFILE_LIST}" == "SERVER" ]; then python3 ~/file_upload_tools_to_share_repo.py ${FILE_REPO_PATH} ./images/*.tar + elif [ "${PROFILE_LIST}" == "KVM" ]; then + python3 ~/file_upload_tools_to_share_repo.py ${FILE_REPO_PATH} ./images/*.img + python3 ~/file_upload_tools_to_share_repo.py ${FILE_REPO_PATH} ./images/*.gns3a else python3 ~/file_upload_tools_to_share_repo.py ${FILE_REPO_PATH} ./images/*.bin fi |
