86 Commits

Author SHA1 Message Date
pnetlabrepo
5d87b347db Update version 2023-01-27 20:29:07 -03:00
pnetlabrepo
934e4a3b6f Update CHANGELOG.md 2023-01-27 20:26:57 -03:00
pnetlabrepo
f0e44eac89 Update README.md 2023-01-27 20:19:40 -03:00
pnetlabrepo
33a005a668 Update ishare2 2023-01-27 20:17:45 -03:00
pnetlabrepo
34e3e04b28 Add files via upload 2023-01-27 19:48:23 -03:00
pnetlabrepo
0842c81b1f Add files via upload 2023-01-27 19:10:30 -03:00
pnetlabrepo
027998440a Add files via upload 2023-01-26 18:56:51 -03:00
pnetlabrepo
d19f216c96 Delete app.zip 2023-01-26 18:56:41 -03:00
pnetlabrepo
059a95ef96 Add files via upload 2023-01-25 16:55:59 -03:00
pnetlabrepo
f2a5162a71 Add files via upload 2023-01-25 14:51:27 -03:00
pnetlabrepo
2cae70f6d3 Create README.md 2023-01-25 14:51:06 -03:00
pnetlabrepo
6616343ebb Update version 2023-01-25 10:24:51 -03:00
pnetlabrepo
c38c7d518b Update CHANGELOG.md 2023-01-25 10:24:19 -03:00
pnetlabrepo
ae2e4a3a1b Update ishare2 2023-01-25 10:23:07 -03:00
pnetlabrepo
e644c77731 Update README.md 2023-01-25 10:19:44 -03:00
pnetlabrepo
6d55a60719 Delete ads 2023-01-25 10:17:43 -03:00
pnetlabrepo
3a50933fb9 Create README.md 2023-01-25 10:17:21 -03:00
pnetlabrepo
697415da91 Create upgrade.sh 2023-01-25 10:15:46 -03:00
pnetlabrepo
46eee30a56 Create ads 2023-01-25 10:13:30 -03:00
pnetlabrepo
7126b540ff Update version 2023-01-24 16:59:30 -03:00
pnetlabrepo
82426a19e4 Update CHANGELOG.md 2023-01-23 07:00:49 -03:00
pnetlabrepo
b93c32b443 Update README.md 2023-01-23 06:59:25 -03:00
pnetlabrepo
05ea74636a Update ishare2 2023-01-23 06:51:34 -03:00
pnetlabrepo
9b6e235b74 Create README.md 2023-01-23 01:40:26 -03:00
pnetlabrepo
8f67c9087e Delete asdsa 2023-01-23 01:38:29 -03:00
pnetlabrepo
4b1515d762 Create upgrade.sh 2023-01-23 01:38:15 -03:00
pnetlabrepo
2651570efc Create asdsa 2023-01-23 01:32:29 -03:00
pnetlabrepo
d3e618759b Update CHANGELOG.md 2023-01-23 01:02:04 -03:00
pnetlabrepo
c75ee783b6 Update version 2023-01-23 00:56:12 -03:00
pnetlabrepo
d880061a22 Update ishare2 2023-01-23 00:55:59 -03:00
Alex
0fa229324a Fixed download link
Updated 5.2.8 update package link to new index's link
Added --content-disposition to wget since the new index's direct download link requires that to work
2023-01-22 21:06:31 -06:00
pnetlabrepo
3cdd326596 Update CHANGELOG.md 2023-01-22 18:09:19 -03:00
pnetlabrepo
bd7a8eaf18 Update version 2023-01-22 18:08:12 -03:00
pnetlabrepo
487446ec42 Update ishare2 2023-01-22 18:08:01 -03:00
pnetlabrepo
a6546abc42 Update version 2023-01-22 10:21:52 -03:00
pnetlabrepo
2fb6cd534d Update CHANGELOG.md 2023-01-22 10:21:41 -03:00
pnetlabrepo
a97f3fee59 Update ishare2 2023-01-22 10:20:20 -03:00
pnetlabrepo
b36474aca9 Update version 2023-01-22 10:10:50 -03:00
pnetlabrepo
6cd98dfb9b Update README.md 2023-01-22 10:10:44 -03:00
pnetlabrepo
98b7d04a48 Update CHANGELOG.md 2023-01-22 10:08:22 -03:00
pnetlabrepo
6d69a62109 Update ishare2 2023-01-22 10:06:35 -03:00
pnetlabrepo
ab582418d5 Update README.md 2023-01-22 10:01:52 -03:00
pnetlabrepo
66f9a76e92 Create upgrade.sh 2023-01-22 09:59:19 -03:00
pnetlabrepo
a0cd572e1b Update README.md 2023-01-22 09:53:18 -03:00
pnetlabrepo
3a7ab5c2af Create README.md 2023-01-22 09:51:58 -03:00
pnetlabrepo
2cd63c44a2 Create winserver.yml 2023-01-22 09:05:52 -03:00
pnetlabrepo
b2c1c5f554 Update CHANGELOG.md 2023-01-22 04:44:20 -03:00
pnetlabrepo
640d4d776d Update CHANGELOG.md 2023-01-22 04:00:47 -03:00
pnetlabrepo
5e07400e5c Update version 2023-01-22 03:59:07 -03:00
pnetlabrepo
76d95d9bd0 Update ishare2 2023-01-22 03:58:34 -03:00
pnetlabrepo
aa8769b7dd Update CHANGELOG.md 2023-01-21 10:51:11 -03:00
pnetlabrepo
7b73156b1c Update CHANGELOG.md 2023-01-19 07:16:25 -03:00
pnetlabrepo
e5da554158 Update version 2023-01-19 07:14:10 -03:00
pnetlabrepo
e7492cbf67 Update ishare2 2023-01-19 07:13:38 -03:00
pnetlabrepo
6d9f45b56b Update upgrade.sh 2023-01-18 02:43:03 -03:00
pnetlabrepo
89b8e808ed Update README.md 2023-01-18 02:34:21 -03:00
pnetlabrepo
c61e8398e4 Update README.md 2023-01-18 02:33:11 -03:00
pnetlabrepo
27a7e2de7b Update upgrade.sh 2023-01-18 02:30:42 -03:00
pnetlabrepo
c76b832ac6 Update upgrade.sh 2023-01-18 02:29:10 -03:00
pnetlabrepo
bfd2377c8a Update upgrade.sh 2023-01-18 02:19:39 -03:00
pnetlabrepo
3064fdcab2 Update upgrade.sh 2023-01-18 02:19:38 -03:00
pnetlabrepo
3503add54c Update upgrade.sh 2023-01-18 02:11:52 -03:00
pnetlabrepo
cab7df20ff Update upgrade.sh 2023-01-18 02:09:33 -03:00
pnetlabrepo
1b30909d0b Update upgrade.sh 2023-01-18 02:09:15 -03:00
pnetlabrepo
71e9cae4fa Update README.md 2023-01-17 03:47:19 -03:00
pnetlabrepo
dbe22ff781 Update ishare2 2023-01-17 02:14:43 -03:00
pnetlabrepo
95ef408d04 Update version 2023-01-17 02:12:21 -03:00
pnetlabrepo
2c81ae0673 Update ishare2 2023-01-17 02:11:50 -03:00
pnetlabrepo
d5c5869aa8 Update README.md 2023-01-17 02:10:10 -03:00
pnetlabrepo
2fdd1ce655 Update README.md 2023-01-17 02:09:42 -03:00
pnetlabrepo
7bd23fb5db Update CHANGELOG.md 2023-01-17 02:04:54 -03:00
pnetlabrepo
142144bf2e Update CHANGELOG.md 2023-01-17 02:04:29 -03:00
pnetlabrepo
d21fff1c08 Update ishare2 2023-01-17 02:02:44 -03:00
pnetlabrepo
820ddfe905 Update CHANGELOG.md 2023-01-16 09:33:26 -03:00
pnetlabrepo
c517e64850 Update version 2023-01-16 09:29:31 -03:00
pnetlabrepo
646a913ccb Update ishare2 2023-01-16 09:29:14 -03:00
pnetlabrepo
ff3e77b47b Update id_list 2023-01-16 08:06:16 -03:00
pnetlabrepo
06e0a62a51 Update CHANGELOG.md 2023-01-16 08:03:55 -03:00
pnetlabrepo
04980423d3 Update CHANGELOG.md 2023-01-16 07:46:06 -03:00
pnetlabrepo
612bfbabfb Update version 2023-01-16 07:40:50 -03:00
pnetlabrepo
65d40b1b15 Update ishare2 2023-01-16 07:40:31 -03:00
pnetlabrepo
d40caaf705 Update CHANGELOG.md 2023-01-14 02:20:34 -03:00
pnetlabrepo
890c44303e Update CHANGELOG.md 2023-01-13 06:23:53 -03:00
pnetlabrepo
bf585fa7f7 Update version 2023-01-13 06:20:08 -03:00
pnetlabrepo
6e142e9244 Update ishare2 2023-01-13 06:19:41 -03:00
pnetlabrepo
bc6463681b Create android.yml 2023-01-12 15:07:54 -03:00
19 changed files with 744 additions and 110 deletions

View File

@@ -1,5 +1,69 @@
# Changelog
All notable changes to this project will be documented in this file. You can upgrade ishare2 to the latest version using `ishare2 upgrade`
All notable changes to this project will be documented in this file. You can upgrade ishare2 to the latest version using `ishare2 upgrade` and then selecting `option 1`
## [v1.5.7] - 2023-Jan-27
1) Added: A new feature has been added to ishare2: It is a web app to use ishare2 in browser and it is called `ishare2 GUI`. You can download it by using `ishare2 gui download` and then start it with `ishare2 gui start`. Open your web browser using http://localhost:5000, http://127.0.01:5000 or http://pnetlab_ip_address:5000 to access. Also, it can be stopped by using `ishare2 gui stop` and restarted with `ishare2 gui restart`
## [v1.5.6] - 2023-Jan-25
1) Added: A new option was added to `ishare2 upgrade` > `option 2`: Now, it is possible to upgrade PNETLab from almost any version to v5.3.0 (Not possible for this case: 6.x to 5.3.0)
## [v1.5.5] - 2023-Jan-23
1) Added: A new option was added to `ishare2 upgrade` > `option 2`: Now, it is possible to upgrade PNETLab from almost any version to v5.2.9 (Not possible for this case: 6.x to 5.2.9)
## [v1.5.4] - 2023-Jan-23
1) Modified: Changes were made in set_yml_template_folder_location() function. Now, this function support the following PNETLab versions:
For `/opt/unetlab/html/templates/`: 4.2.10 and 5.0.1
For `/opt/unetlab/html/templates/intel/` or `/opt/unetlab/html/templates/amd/`: 5.2.x, 5.3.x and 6.x
5.3.x is not implemented yet (Change made in case it is needed in the future)
## [v1.5.3] - 2023-Jan-22
1) Modified: --content-disposition was added in order to download images from other repo
## [v1.5.2] - 2023-Jan-22
1) Modified: Some strings were modified when using this option: `ishare2 upgrade` > `option 2`. Now, it looks better for users
## [v1.5.1] - 2023-Jan-22
1) Added: A new option was added to `ishare2 upgrade` > `option 2`: Now, it is possible to upgrade PNETLab from almost any version to v5.2.8 (Not possible for this case: 6.x to 5.2.8)
## [v1.5.0] - 2023-Jan-22
1) Added: Some code has been added to ishare2 to support PNETLab upgrade to v5.2.8 (Same as v5.2.7 fix: AMD and Intel folders at html/templates/). PNETLab users from v4.2.10 should not have any problem
## [v1.4.9] - 2023-Jan-19
1) Added: This version adds support to PNETLab 6.x related to yml template location (AMD and Intel folders)
## [v1.4.8] - 2023-Jan-17
1) Added: A menu was added into the `ishare2 upgrade` command. This menu allows users to upgrade ishare2 and PNETLab to their latest versions
## [v1.4.7] - 2023-Jan-16
1) Added: A function called set_url_constants() was added to the code and to the main() execution. This function contains all of the URL needed in the project.
2) Modified: Function called set_color_variables() was renamed to set_color_constants()
## [v1.4.6] - 2023-Jan-16
1) Modified: Minor changes in code: A function called set_color_variables() was created to define all color variables in there. Added to main() execution
2) Deleted: Minor changes in code: Every definition of those variables was removed to get a cleaner code
Note: This update does not change how the code works in any way
## [v1.4.5] - 2023-Jan-13
1) Modified: Minor changes in code: A line was changed from: ls -lh -R /opt/unetlab/addons/iol/bin to: ls -lh -R /opt/unetlab/addons/iol/bin/
2) Deleted: Minor changes in code: A comment stating "# Main code" was deleted from the code
Note: This update does not change how the code works in any way
## [v1.4.4] - 2023-Jan-11

View File

@@ -18,7 +18,7 @@ Apply this command using the terminal
wget -O /usr/sbin/ishare2 https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/ishare2 > /dev/null 2>&1 && chmod +x /usr/sbin/ishare2 && ishare2
```
Note: There is no need to be in the same directory where *ishare2* file is installed in order to execute it
`Note: There is no need to be in the same directory where ishare2 file is installed in order to execute it`
## ✅ Syntax
@@ -31,8 +31,9 @@ Note: There is no need to be in the same directory where *ishare2* file is insta
labs : Show labs on server and download images for those labs
mylabs : Same as labs command but using a customized path to labs
relicense : Generate a new iourc license for bin images
upgrade : Upgrade ishare2 code to the latest version
upgrade : Retrieves a menu that allows users to upgrade ishare2 and PNETLab VM
changelog : Show the latest changes made to ishare2
gui : Web app to use ishare2 in browser
help : Show useful information
param1:
@@ -94,6 +95,12 @@ Note: There is no need to be in the same directory where *ishare2* file is insta
- ishare2 mylabs <path> <number>
- ishare2 mylabs <path> all
## 💎 GUI
- ishare2 gui download
- ishare2 gui start
- ishare2 gui stop
- ishare2 gui restart
## 💎 Extras
- ishare2 relicense
- ishare2 upgrade
@@ -104,7 +111,7 @@ Note: There is no need to be in the same directory where *ishare2* file is insta
* For problems, use our Telegram Channel describing your problem and sending a screenshot and/or a video
* For new files to be uploaded, you can also use our Telegram Channel: In this case, you can send or ask for new images to be uploaded
* Using ishare2 upgrade will result in upgrading this utility (ishare2). It will not upgrade your PNETLab Ubuntu VM version
* Using ishare2 upgrade will display a menu that allows users to upgrade ishare2 and PNETLab.
* If CiscoIOUKeygen.py, iourc and/or keepalive.pl files in /opt/unetlab/addons/iol/bin/ are deleted, you can recover them by using ishare2 relicense. This will not affect images in there
Also, this command when used, will generate a new license file called "iourc", needed for bin files
@@ -121,7 +128,12 @@ Note: There is no need to be in the same directory where *ishare2* file is insta
- Upgrade from v4.2.10 to v5.0.1: [Instructions](https://github.com/pnetlabrepo/ishare2/tree/main/upgrades/from_4.2.10_to_5.0.1)
- Upgrade from v4.2.10 to v5.2.7: [Instructions](https://github.com/pnetlabrepo/ishare2/tree/main/upgrades/from_4.2.10_to_5.2.7)
- Upgrade from v5.0.1 to v5.2.7: [Instructions](https://github.com/pnetlabrepo/ishare2/tree/main/upgrades/from_5.0.1_to_5.2.7)
- Upgrade from v5.0.1 to v5.2.7: [Instructions](https://github.com/pnetlabrepo/ishare2/tree/main/upgrades/from_5.0.1_to_5.2.7)
- Upgrade from any to v5.2.8: [Instructions](https://github.com/pnetlabrepo/ishare2/tree/main/upgrades/from_any_to_5.2.8)
- Upgrade from any to v5.2.9: [Instructions](https://github.com/pnetlabrepo/ishare2/tree/main/upgrades/from_any_to_5.2.9)
- Upgrade from any to v5.3.0: [Instructions](https://github.com/pnetlabrepo/ishare2/tree/main/upgrades/from_any_to_5.3.0)
Note: You can also upgrade PNETLab using `ishare2 upgrade`, then using the `option 2` and finally selecting an option from the displayed list
## Known limitations

1
gui/README.md Normal file
View File

@@ -0,0 +1 @@
Complete this README.md

BIN
gui/app.zip Normal file

Binary file not shown.

63
gui/requirements.txt Normal file
View File

@@ -0,0 +1,63 @@
anyio==3.6.2
asgiref==3.4.1
blinker==1.4
certifi==2018.1.18
chardet==3.0.4
click==8.0.4
cloud-init==20.2
colorama==0.3.7
command-not-found==0.3
configobj==5.0.6
constantly==15.1.0
contextlib2==21.6.0
contextvars==2.4
cryptography==2.1.4
dataclasses==0.8
distro-info===0.18ubuntu0.18.04.1
fastapi==0.83.0
h11==0.13.0
httplib2==0.9.2
hyperlink==17.3.1
idna==3.4
immutables==0.19
importlib-metadata==4.8.3
incremental==16.10.1
Jinja2==2.10
jsonpatch==1.16
jsonpointer==1.10
jsonschema==2.6.0
language-selector==0.1
MarkupSafe==1.0
netifaces==0.10.4
oauthlib==2.0.6
PAM==0.4.2
pexpect==4.2.1
pyasn1==0.4.2
pyasn1-modules==0.2.1
pydantic==1.9.2
PyGObject==3.26.1
PyJWT==1.5.3
pyOpenSSL==17.5.0
pyserial==3.4
python-apt==1.6.5+ubuntu0.5
python-debian==0.1.32
PyYAML==3.12
requests==2.18.4
requests-unixsocket==0.1.5
service-identity==16.0.0
six==1.11.0
sniffio==1.2.0
ssh-import-id==5.7
starlette==0.19.1
systemd-python==234
Twisted==17.9.0
typing_extensions==4.1.1
ufw==0.36
unattended-upgrades==0.1
urllib3==1.22
uvicorn==0.16.0
uvloop==0.14.0
watchgod==0.7
websockets==9.1
zipp==3.6.0
zope.interface==4.3.2

View File

@@ -2,4 +2,3 @@ GOOGLE=2PACX-1vR-RCxKCkhzzW2ZDDQOUIAxq2QTPwcCJZXuFyGD0hvXDC60TMU0_Yx1fx02S1_H9h7
BIN=0
QEMU=647866092
DYNAMIPS=1118397071
CREDENTIALS=1957719637

317
ishare2
View File

@@ -1,12 +1,36 @@
#!/bin/bash
#October, 2022
function set_color_constants() {
RED='\033[31m'
YELLOW='\033[1;33m'
GREEN='\033[32m'
NO_COLOR='\033[0m'
}
function set_url_constants() {
URL_ID_LIST=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/id_list
URL_VERSION=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/version
URL_ISHARE2=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/ishare2
URL_CHANGELOG_MD=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/CHANGELOG.md
URL_CISCO_IOU_KEYGEN_PY=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/iol/bin/CiscoIOUKeygen.py
URL_KEEPALIVE_PL=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/iol/bin/keepalive.pl
URL_I86BI_LINUX_L2_YML=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/templates/i86bi_linux_l2/i86bi_linux_l2.yml
URL_I86BI_LINUX_L3_YML=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/templates/i86bi_linux_l3/i86bi_linux_l3.yml
URL_C2600_YML=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/templates/cisco/c2600.yml
URL_C1760_YML=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/templates/cisco/c1760.yml
URL_UPGRADE_PNETLAB_FROM_4_2_10_TO_5_0_1=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/upgrades/from_4.2.10_to_5.0.1/upgrade.sh
URL_UPGRADE_PNETLAB_FROM_4_2_10_TO_5_2_7=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/upgrades/from_4.2.10_to_5.2.7/upgrade.sh
URL_UPGRADE_PNETLAB_FROM_5_0_1_TO_5_2_7=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/upgrades/from_5.0.1_to_5.2.7/upgrade.sh
URL_UPGRADE_PNETLAB_FROM_any_TO_5_2_8=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/upgrades/from_any_to_5.2.8/upgrade.sh
URL_UPGRADE_PNETLAB_FROM_any_TO_5_2_9=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/upgrades/from_any_to_5.2.9/upgrade.sh
URL_UPGRADE_PNETLAB_FROM_any_TO_5_3_0=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/upgrades/from_any_to_5.3.0/upgrade.sh
URL_GUI_APP_ZIP=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/gui/app.zip
URL_REQUIREMENTS_GUI_APP=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/gui/requirements.txt
}
function check_user_is_root() {
user=$(whoami)
RED='\033[31m'
NO_COLOR='\033[0m'
if [[ "$user" != "root" ]]; then
echo -e "${RED}[!] Current user ($user) is not root, please change user as root to execute this script${NO_COLOR}"
exit 1
@@ -14,7 +38,7 @@ function check_user_is_root() {
}
function get_initial_information() {
ID_LIST="$(curl -s https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/id_list)"
ID_LIST="$(curl -s $URL_ID_LIST)"
GOOGLE_SHEETS_ID=$( echo "$ID_LIST" | awk -F= '/^GOOGLE/ { print $2 }' )
BIN_GID=$( echo "$ID_LIST" | awk -F= '/^BIN/ { print $2 }' )
@@ -29,21 +53,27 @@ function get_initial_information() {
DYNAMIPS_URL=$URL_PREFIX$DYNAMIPS_GID$URL_POSTFIX
}
function get_server_platform() {
grep -q vmx /proc/cpuinfo && echo -n vmx > /opt/unetlab/platform
grep -q svm /proc/cpuinfo && echo -n svm > /opt/unetlab/platform
platform=$(cat /opt/unetlab/platform)
if [[ $platform == "vmx" ]]; then YML_DIR="/opt/unetlab/html/templates/intel/" ; fi
if [[ $platform == "svm" ]]; then YML_DIR="/opt/unetlab/html/templates/amd/" ; fi
}
function set_yml_template_folder_location() {
data=$(mysql -uroot -ppnetlab -D pnetlab_db -e "SELECT control_value FROM control WHERE control_value>1;" 2>/dev/null)
data_array=($data)
pnetlab_version=${data_array[1]}
if [[ $pnetlab_version == "4.2.10" ]]; then YML_DIR="/opt/unetlab/html/templates/" ; fi
if [[ $pnetlab_version == "5.2.5" ]] || [[ $pnetlab_version == "5.2.6" ]] || [[ $pnetlab_version == "5.2.7" ]]; then
grep -q vmx /proc/cpuinfo && echo -n vmx > /opt/unetlab/platform
grep -q svm /proc/cpuinfo && echo -n svm > /opt/unetlab/platform
platform=$(cat /opt/unetlab/platform)
if [[ $platform == "vmx" ]]; then YML_DIR="/opt/unetlab/html/templates/intel/" ; fi
if [[ $platform == "svm" ]]; then YML_DIR="/opt/unetlab/html/templates/amd/" ; fi
if [[ $pnetlab_version == "4.2.10" ]] || [[ $pnetlab_version == "5.0.1" ]]; then
YML_DIR="/opt/unetlab/html/templates/"
fi
if [[ $pnetlab_version == *5.2* ]] || [[ $pnetlab_version == *5.3* ]] || [[ $pnetlab_version == *6.* ]]; then
get_server_platform
fi
}
@@ -161,13 +191,9 @@ function mylabs_install_lab_images_just_for_only_readable_labs() {
if [[ $NUMBER -gt $counter_for_readable_labs || $NUMBER -le 0 ]]; then
if [[ $counter_for_readable_labs -eq 1 ]]; then
STR="Last parameter must be 1 because you have only one lab"
YELLOW='\033[1;33m'
NO_COLOR='\033[0m'
echo -e "${YELLOW}$STR${NO_COLOR}"
else
STR="Last parameter must be a number between 1 and $counter_for_readable_labs"
YELLOW='\033[1;33m'
NO_COLOR='\033[0m'
echo -e "${YELLOW}$STR${NO_COLOR}"
fi
@@ -217,9 +243,6 @@ function mylabs_install_lab_images_just_for_only_readable_labs() {
echo -e "\nImages found on lab\n"
GREEN='\033[32m'
NO_COLOR='\033[0m'
echo -e "${GREEN}--- bin images ---${NO_COLOR}"
if [[ BIN_FLAG -eq 1 ]]; then
echo No bin images found
@@ -459,13 +482,9 @@ function install_lab_images_just_for_only_readable_labs() {
if [[ $NUMBER -gt $counter_for_readable_labs || $NUMBER -le 0 ]]; then
if [[ $counter_for_readable_labs -eq 1 ]]; then
STR="Last parameter must be 1 because you have only one lab"
YELLOW='\033[1;33m'
NO_COLOR='\033[0m'
echo -e "${YELLOW}$STR${NO_COLOR}"
else
STR="Last parameter must be a number between 1 and $counter_for_readable_labs"
YELLOW='\033[1;33m'
NO_COLOR='\033[0m'
echo -e "${YELLOW}$STR${NO_COLOR}"
fi
@@ -515,9 +534,6 @@ function install_lab_images_just_for_only_readable_labs() {
echo -e "\nImages found on lab"
GREEN='\033[32m'
NO_COLOR='\033[0m'
echo -e "${GREEN}--- bin images ---${NO_COLOR}"
if [[ BIN_FLAG -eq 1 ]]; then
echo No bin images found
@@ -724,8 +740,6 @@ function download_lab_iol_images() {
if [[ $FLAG -eq 0 ]]; then
STR="(BIN) WARNING: Image $BIN_NAME has not been found"
YELLOW='\033[1;33m'
NO_COLOR='\033[0m'
echo -e "${YELLOW}$STR${NO_COLOR}"
fi
done < $filename1
@@ -761,8 +775,6 @@ function download_lab_dynamips_images() {
if [[ $FLAG -eq 0 ]]; then
STR="(DYNAMIPS) WARNING: Image $DYNAMIPS_NAME has not been found"
YELLOW='\033[1;33m'
NO_COLOR='\033[0m'
echo -e "${YELLOW}$STR${NO_COLOR}"
fi
done < $filename1
@@ -802,8 +814,6 @@ function download_lab_qemu_images() {
if [[ $FLAG -eq 0 ]]; then
STR="(QEMU) WARNING: Image $QEMU_NAME has not been found"
YELLOW='\033[1;33m'
NO_COLOR='\033[0m'
echo -e "${YELLOW}$STR${NO_COLOR}"
fi
done < $filename1
@@ -811,10 +821,6 @@ function download_lab_qemu_images() {
}
function check_docker_service_status() {
RED='\033[31m'
GREEN='\033[32m'
NO_COLOR='\033[0m'
if service docker status | grep -q "active (running)"; then
return 0 # 0 means "no failures"
fi
@@ -926,13 +932,13 @@ function download_lab_docker_images() {
function check_ishare2_version_file_exists() {
if ! [[ -e /usr/sbin/ishare2_version ]]; then
echo -n "$(curl -s https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/version)" >> /usr/sbin/ishare2_version
echo -n "$(curl -s $URL_VERSION)" >> /usr/sbin/ishare2_version
fi
}
function upgrade_ishare2() {
LOCAL_VALUE=$(cat /usr/sbin/ishare2_version)
REMOTE_VALUE=$(curl -s https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/version)
REMOTE_VALUE=$(curl -s $URL_VERSION)
if [[ $LOCAL_VALUE == "$REMOTE_VALUE" ]]; then
echo "ishare2 $REMOTE_VALUE is currently the newest version available"
@@ -940,7 +946,7 @@ function upgrade_ishare2() {
fi
rm /usr/sbin/ishare2
wget -O /usr/sbin/ishare2 https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/ishare2 > /dev/null 2>&1
wget -O /usr/sbin/ishare2 $URL_ISHARE2 > /dev/null 2>&1
chmod +x /usr/sbin/ishare2
echo "ishare2 was upgraded from $LOCAL_VALUE to $REMOTE_VALUE"
@@ -948,16 +954,150 @@ function upgrade_ishare2() {
echo "$REMOTE_VALUE" >> /usr/sbin/ishare2_version
}
function menu_ishare2_upgrade_pnetlab() {
prompt="Please, select an option: "
options=(
"Upgrade PNETLab: from 4.2.10 to 5.0.1"
"Upgrade PNETLab: from 4.2.10 to 5.2.7"
"Upgrade PNETLab: from 5.0.1 to 5.2.7"
"Upgrade PNETLab: from any version to 5.2.8"
"Upgrade PNETLab: from any version to 5.2.9"
"Upgrade PNETLab: from any version to 5.3.0"
)
PS3="$prompt"
select opt in "${options[@]}" "Exit"; do
case "$REPLY" in
1)
wget -O upgrade.sh $URL_UPGRADE_PNETLAB_FROM_4_2_10_TO_5_0_1 > /dev/null 2>&1
chmod +x upgrade.sh
bash upgrade.sh
break
;;
2)
wget -O upgrade.sh $URL_UPGRADE_PNETLAB_FROM_4_2_10_TO_5_2_7 > /dev/null 2>&1
chmod +x upgrade.sh
bash upgrade.sh
break
;;
3)
wget -O upgrade.sh $URL_UPGRADE_PNETLAB_FROM_5_0_1_TO_5_2_7 > /dev/null 2>&1
chmod +x upgrade.sh
bash upgrade.sh
break
;;
4)
wget -O upgrade.sh $URL_UPGRADE_PNETLAB_FROM_any_TO_5_2_8 > /dev/null 2>&1
chmod +x upgrade.sh
bash upgrade.sh
break
;;
5)
wget -O upgrade.sh $URL_UPGRADE_PNETLAB_FROM_any_TO_5_2_9 > /dev/null 2>&1
chmod +x upgrade.sh
bash upgrade.sh
break
;;
6)
wget -O upgrade.sh $URL_UPGRADE_PNETLAB_FROM_any_TO_5_3_0 > /dev/null 2>&1
chmod +x upgrade.sh
bash upgrade.sh
break
;;
$((${#options[@]}+1)))
break
;;
*)
STR="Invalid option: Select a number from 1 to 7"
echo -e "${RED}$STR${NO_COLOR}"
continue
;;
esac
done
}
function menu_ishare2_upgrade() {
prompt="Please, select an option: "
options=(
"Upgrade ishare2"
"Upgrade PNETLab"
)
PS3="$prompt"
select opt in "${options[@]}" "Exit"; do
case "$REPLY" in
1)
upgrade_ishare2
break
;;
2)
menu_ishare2_upgrade_pnetlab
break
;;
$((${#options[@]}+1)))
break
;;
*)
STR="Invalid option: Select a number from 1 to 3"
echo -e "${RED}$STR${NO_COLOR}"
continue
;;
esac
done
}
function show_changelog() {
FILE=/root/CHANGELOG.md
if [[ -e $FILE ]]; then rm $FILE ; fi
CHANGELOG_URL=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/CHANGELOG.md
DATA="$(wget -q $CHANGELOG_URL -P /root)"
DATA="$(wget -q $URL_CHANGELOG_MD -P /root)"
head -n 15 $FILE
rm $FILE
}
function ishare2_gui_download() {
rm -rf /root/app
wget -q $URL_GUI_APP_ZIP -P /root
unzip /root/app.zip -d /root > /dev/null 2>&1
rm /root/app.zip
curl https://bootstrap.pypa.io/pip/3.6/get-pip.py -o /root/get-pip.py > /dev/null 2>&1
python3 /root/get-pip.py > /dev/null 2>&1
rm /root/get-pip.py
wget -q $URL_REQUIREMENTS_GUI_APP -P /root
pip install -r /root/requirements.txt > /dev/null 2>&1
rm /root/requirements.txt
echo -e "${GREEN}GUI has been downloaded and installed. Now, you can start it by using: ishare2 gui start${NO_COLOR}"
}
function ishare2_gui_start() {
DIR="/root/app/"
if ! [[ -d "$DIR" ]]; then
ishare2 gui download
fi
ip_address="$(ip route get 1.2.3.4 | awk '{print $7}')"
echo -e "Use http://$ip_address:5000\n"
cd /root/app && python3 /root/app/main.py &
}
function ishare2_gui_stop() {
array_of_pids="$(ps -a | grep python3 | awk '{ print $1 }')"
for i in "${array_of_pids[@]}"
do
kill -9 $i > /dev/null 2>&1
done
}
function ishare2_gui_restart() {
ishare2 gui stop
ishare2 gui start
}
function general_available_list() {
TYPE=$1
FILENAME=$2
@@ -984,11 +1124,11 @@ function generate_a_new_license() {
if [[ -e $PYTHON_FILE ]]; then rm $PYTHON_FILE ; fi
wget -O $PYTHON_FILE https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/iol/bin/CiscoIOUKeygen.py > /dev/null 2>&1
wget -O $PYTHON_FILE $URL_CISCO_IOU_KEYGEN_PY > /dev/null 2>&1
python $PYTHON_FILE > /dev/null 2>&1
if ! [[ -e $PERL_FILE ]]; then
wget -O $PERL_FILE https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/iol/bin/keepalive.pl > /dev/null 2>&1
wget -O $PERL_FILE $URL_KEEPALIVE_PL > /dev/null 2>&1
fi
echo "Done"
}
@@ -1008,11 +1148,11 @@ function download_1_file_bin_or_dynamips() {
echo -e "$SIZE $UNIT\n"
if [[ $TYPE = "dynamips" ]]; then
wget -q --show-progress -O /opt/unetlab/addons/dynamips/"$NAME" "$LINK"
wget --content-disposition -q --show-progress -O /opt/unetlab/addons/dynamips/"$NAME" "$LINK"
fi
if [[ $TYPE = "bin" ]]; then
wget -q --show-progress -O /opt/unetlab/addons/iol/bin/"$NAME" "$LINK"
wget --content-disposition -q --show-progress -O /opt/unetlab/addons/iol/bin/"$NAME" "$LINK"
fi
}
@@ -1029,7 +1169,7 @@ function download_1_file_qemu() {
echo -e "\n\033[33mFolder requested:\033[0m $FOLDERNAME (""$SIZE"" ""$UNIT"")"
echo -e "\nFile requested:\n $NAME - $SIZE $UNIT\n"
wget -q --show-progress -O "$NAME" "$LINK"
wget --content-disposition -q --show-progress -O "$NAME" "$LINK"
}
function download_multiple_files_qemu() {
@@ -1046,7 +1186,7 @@ function download_multiple_files_qemu() {
for (( c=1; c<=FILES_COUNTER; c++ ))
do
echo -e "\nFile $c/$FILES_COUNTER"
wget -q --connect-timeout 5 --show-progress -P /opt/unetlab/addons/qemu/"$FOLDERNAME" "${myArray[c-1]}"
wget --content-disposition -q --connect-timeout 5 --show-progress -P /opt/unetlab/addons/qemu/"$FOLDERNAME" "${myArray[c-1]}"
done
}
@@ -1236,13 +1376,10 @@ function pull_bin() {
}
function show_help_info() {
YELLOW='\033[1;33m'
NO_COLOR='\033[0m'
echo -e "1) For problems, use our Telegram Channel describing your problem and sending a screenshot and/or a video"
echo -e "\n2) For new files to be uploaded, you can use our Telegram Channel too"
echo -e "In this case, you can send or ask for new images to be uploaded"
echo -e "\n3) Using \033[32mishare2 upgrade\033[0m will result in upgrading this utility (ishare2). It will \033[31mnot\033[0m upgrade your PNETLab Ubuntu VM version"
echo -e "\n3) Using \033[32mishare2 upgrade\033[0m will display a menu that allows users to upgrade ishare2 and PNETLab."
echo -e "\n4) If CiscoIOUKeygen.py, iourc and/or keepalive.pl files in /opt/unetlab/addons/iol/bin/ are deleted, you can recover them by using \033[32mishare2 relicense\033[0m. This will not affect images in there."
echo -e "Also, this command when used, will generate a new license file called iourc, needed for bin files"
echo -e "\n5) Don't cancell a download. In case you do it, you will have to remove incomplete files or folders manually"
@@ -1254,12 +1391,9 @@ function show_ishare2_usage() {
# For ishare2
ISHARE2_VERSION_USAGE=$(cat /usr/sbin/ishare2_version)
YELLOW='\033[1;33m'
NO_COLOR='\033[0m'
STR=""
LOCAL_VALUE=$ISHARE2_VERSION_USAGE
REMOTE_VALUE=$(curl -s https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/version)
REMOTE_VALUE=$(curl -s $URL_VERSION)
if ! [[ $LOCAL_VALUE == "$REMOTE_VALUE" ]]; then
STR="New ishare2 version available: $REMOTE_VALUE"
@@ -1285,8 +1419,9 @@ action:
labs : Show labs on server and download images for those labs
mylabs : Same as labs command but using a customized path to labs
relicense : Generate a new iourc license for bin images
upgrade : Upgrade ishare2 code to the latest version
upgrade : Retrieves a menu that allows users to upgrade ishare2 and PNETLab VM
changelog : Show the latest changes made to ishare2
gui : Web app to use ishare2 in browser
help : Show useful information
param1:
@@ -1339,6 +1474,11 @@ Examples:
- ishare2 mylabs <path> <number>
- ishare2 mylabs <path> all
- ishare2 gui download
- ishare2 gui start
- ishare2 gui stop
- ishare2 gui restart
- ishare2 relicense
- ishare2 upgrade
- ishare2 changelog
@@ -1621,7 +1761,7 @@ function corrections_for_iol_images() {
FILE="$YML_DIR"i86bi_linux_l2.yml
if ! [[ -e $FILE ]]; then
wget -O $FILE https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/templates/i86bi_linux_l2/i86bi_linux_l2.yml > /dev/null 2>&1
wget -O $FILE $URL_I86BI_LINUX_L2_YML > /dev/null 2>&1
fi
fi
@@ -1630,7 +1770,7 @@ function corrections_for_iol_images() {
FILE="$YML_DIR"i86bi_linux_l3.yml
if ! [[ -e $FILE ]]; then
wget -O $FILE https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/templates/i86bi_linux_l3/i86bi_linux_l3.yml > /dev/null 2>&1
wget -O $FILE $URL_I86BI_LINUX_L3_YML > /dev/null 2>&1
fi
fi
}
@@ -1699,13 +1839,13 @@ function corrections_for_dynamips_images() {
SUBSTRING="c2600"
if [[ "$NAME" == *"$SUBSTRING"* ]]; then
FILE="$YML_DIR"c2600.yml
wget -O $FILE https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/templates/cisco/c2600.yml > /dev/null 2>&1
wget -O $FILE $URL_C2600_YML > /dev/null 2>&1
fi
SUBSTRING="c1760"
if [[ "$NAME" == *"$SUBSTRING"* ]]; then
FILE="$YML_DIR"c1760.yml
wget -O $FILE https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/templates/cisco/c1760.yml > /dev/null 2>&1
wget -O $FILE $URL_C1760_YML > /dev/null 2>&1
fi
}
@@ -1943,7 +2083,6 @@ function filter_qemu() {
rm "$(pwd)"/new.csv > /dev/null 2>&1
}
# Main code
function selector() {
if [[ "$1" = "search" ]]; then # ishare2 search
if [[ "$2" = "all" ]]; then # ishare2 search all
@@ -1979,9 +2118,6 @@ function selector() {
pull_qemu "$3"
else
STR="Last parameter not detected"
RED='\033[31m'
YELLOW='\033[1;33m'
NO_COLOR='\033[0m'
echo -e "${RED}$STR${NO_COLOR}"
echo -e "Syntax: ishare2 pull qemu ${YELLOW}<number>${NO_COLOR}"
fi
@@ -1990,9 +2126,6 @@ function selector() {
pull_dynamips "$3"
else
STR="Last parameter not detected"
RED='\033[31m'
YELLOW='\033[1;33m'
NO_COLOR='\033[0m'
echo -e "${RED}$STR${NO_COLOR}"
echo -e "Syntax: ishare2 pull dynamips ${YELLOW}<number>${NO_COLOR}"
fi
@@ -2001,9 +2134,6 @@ function selector() {
pull_bin "$3"
else
STR="Last parameter not detected"
RED='\033[31m'
YELLOW='\033[1;33m'
NO_COLOR='\033[0m'
echo -e "${RED}$STR${NO_COLOR}"
echo -e "Syntax: ishare2 pull bin ${YELLOW}<number>${NO_COLOR}"
fi
@@ -2016,9 +2146,6 @@ function selector() {
elif [[ "$1" = "installed" ]]; then # ishare2 installed
if [[ "$2" ]]; then
if [[ "$2" = "all" ]]; then
GREEN='\033[32m'
NO_COLOR='\033[0m'
echo -e "${GREEN}----- QEMU -----${NO_COLOR}"
ishare2 installed qemu
echo -e "${GREEN}----- DYNAMIPS -----${NO_COLOR}"
@@ -2037,20 +2164,16 @@ function selector() {
echo -e
elif [[ "$2" = "bin" ]]; then
echo -e
ls -lh -R /opt/unetlab/addons/iol/bin
ls -lh -R /opt/unetlab/addons/iol/bin/
echo -e
elif [[ "$2" = "docker" ]]; then
list_dockers
count_dockers
else
YELLOW='\033[1;33m'
NO_COLOR='\033[0m'
echo -e "Syntax:\n\nishare2 installed <type>"
echo -e "${YELLOW}type: all, bin, qemu, dynamips or docker${NO_COLOR}"
fi
else
YELLOW='\033[1;33m'
NO_COLOR='\033[0m'
echo -e "Syntax:\n\nishare2 installed ${YELLOW}<type>${NO_COLOR}"
echo -e "type: all, bin, qemu, dynamips or docker"
fi
@@ -2075,9 +2198,6 @@ function selector() {
mylabs_install_lab_images_just_for_only_readable_labs $2 $3
else
STR="The last parameter must be a number"
RED='\033[31m'
YELLOW='\033[1;33m'
NO_COLOR='\033[0m'
echo -e "${RED}$STR${NO_COLOR}"
echo -e "ishare2 mylabs <path> ${YELLOW}<number>${NO_COLOR}"
fi
@@ -2093,9 +2213,34 @@ function selector() {
elif [[ "$1" = "relicense" ]]; then # ishare2 relicense
generate_a_new_license
elif [[ "$1" = "upgrade" ]]; then # ishare2 upgrade
upgrade_ishare2
menu_ishare2_upgrade
elif [[ "$1" = "changelog" ]]; then # ishare2 changelog
show_changelog
elif [[ "$1" = "gui" ]]; then # ishare2 gui
if [[ "$2" ]]; then
if [[ "$2" == "download" ]]; then # ishare2 gui download
ishare2_gui_download
elif [[ "$2" == "start" ]]; then # ishare2 gui start
ishare2_gui_start
elif [[ "$2" == "stop" ]]; then # ishare2 gui stop
ishare2_gui_stop
elif [[ "$2" == "restart" ]]; then # ishare2 gui restart
ishare2_gui_restart
else
echo -e "${RED}Bad last argument${NO_COLOR}"
echo -e "Syntax:\n\nishare2 gui <option>\n"
echo "ishare2 gui download"
echo -e "ishare2 gui start"
echo -e "ishare2 gui stop"
echo -e "ishare2 gui restart"
fi
else
echo -e "Syntax:\n\nishare2 gui <option>\n"
echo "ishare2 gui download"
echo -e "ishare2 gui start"
echo -e "ishare2 gui stop"
echo -e "ishare2 gui restart"
fi
elif [[ "$1" = "help" ]]; then # ishare2 help
show_help_info
else # when no args are passed to ishare2
@@ -2104,6 +2249,8 @@ function selector() {
}
function main(){
set_color_constants
set_url_constants
check_user_is_root
get_initial_information
set_yml_template_folder_location

View File

@@ -0,0 +1,41 @@
# Copyright (c) 2016, Andrea Dainese
# Copyright (c) 2018, Alain Degreffe
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the UNetLab Ltd nor the name of EVE-NG Ltd nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---
type: qemu
description: Android VM
name: Tablet
cpulimit: 1
icon: Tablet.png
cpu: 2
ram: 4096
ethernet: 1
console: vnc
shutdown: 1
qemu_arch: x86_64
qemu_version: 2.4.0
qemu_nic: e1000
qemu_options: -machine type=pc,accel=kvm -vga std -usbdevice tablet -boot order=cd
...

View File

@@ -0,0 +1,41 @@
# Copyright (c) 2016, Andrea Dainese
# Copyright (c) 2018, Alain Degreffe
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the UNetLab Ltd nor the name of EVE-NG Ltd nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---
type: qemu
name: Winserver
description: Windows Server
cpulimit: 1
icon: Server.png
cpu: 1
ram: 4096
ethernet: 1
console: vnc
shutdown: 1
qemu_arch: x86_64
qemu_version: 2.0.2
qemu_options: -machine type=pc-1.0,accel=kvm -cpu qemu64,+fsgsbase -vga std -usbdevice
tablet -boot order=dc -drive file=/opt/qemu/share/qemu/virtio-win-drivers.img,index=1,if=floppy,readonly
...

View File

@@ -4,6 +4,12 @@
# Requirement: Having PNETLab 4.2.10 installed for being able to upgrade it to 5.0.1
# This script avoids to make this upgrade process twice
# CONSTANTS
GREEN='\033[32m'
NO_COLOR='\033[0m'
URL_ZIP_FILE=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/upgrades/from_4.2.10_to_5.0.1/5.0.1.zip
# Getting PNETLab version from db
data=$(mysql -uroot -ppnetlab -D pnetlab_db -e "SELECT control_value FROM control WHERE control_value>1;" 2>/dev/null)
pnetlab_info=($data)
pnetlab_version=${pnetlab_info[1]}
@@ -18,13 +24,22 @@ if ! [[ $pnetlab_version == "4.2.10" ]]; then
exit 0
fi
echo "Upgrading to v5.0.1"
wget -O /tmp/5.0.1.zip https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/upgrades/from_4.2.10_to_5.0.1/5.0.1.zip > /dev/null 2>&1
cd /tmp
rm -rf upgrade
echo -e "${GREEN}Downloading 5.0.1.zip file...${NO_COLOR}"
wget -O /tmp/5.0.1.zip $URL_ZIP_FILE > /dev/null 2>&1
echo -e "${GREEN}Zip file has been downloaded successfully${NO_COLOR}"
cd /tmp && rm -rf upgrade
echo -e "${GREEN}Unzipping zip file...${NO_COLOR}"
unzip 5.0.1.zip -d ./upgrade > /dev/null 2>&1
echo -e "${GREEN}Zip file has been unzipped successfully...${NO_COLOR}"
chmod 755 -R upgrade
find upgrade -type f -print0 | xargs -0 dos2unix > /dev/null 2>&1
echo -e "${GREEN}Upgrading to v5.0.1...${NO_COLOR}"
./upgrade/upgrade
echo -e "${GREEN}Upgrade to v5.0.1 has been done successfully${NO_COLOR}"
rm -rf upgrade
rm 5.0.1.zip

View File

@@ -4,8 +4,13 @@
# Requirement: Having PNETLab 4.2.10 installed for being able to upgrade it to NEW_PNETLAB_VERSION
# This script avoids to make this upgrade process twice
# CONSTANTS
NEW_PNETLAB_VERSION=5.2.7
GREEN='\033[32m'
NO_COLOR='\033[0m'
URL_ZIP_FILE=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/upgrades/from_4.2.10_to_$NEW_PNETLAB_VERSION/$NEW_PNETLAB_VERSION.zip
# Getting PNETLab version from db
data=$(mysql -uroot -ppnetlab -D pnetlab_db -e "SELECT control_value FROM control WHERE control_value>1;" 2>/dev/null)
pnetlab_info=($data)
pnetlab_version=${pnetlab_info[1]}
@@ -19,22 +24,27 @@ if ! [[ $pnetlab_version == "4.2.10" ]]; then
echo "You need to have the v4.2.10 to upgrade to the v$NEW_PNETLAB_VERSION"
exit 0
fi
GREEN='\033[32m'
NO_COLOR='\033[0m'
echo -e "${GREEN}Downloading $NEW_PNETLAB_VERSION zip file...${NO_COLOR}"
wget -q --show-progress -O /root/$NEW_PNETLAB_VERSION.zip https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/upgrades/from_4.2.10_to_$NEW_PNETLAB_VERSION/$NEW_PNETLAB_VERSION.zip
wget -q --show-progress -O /root/$NEW_PNETLAB_VERSION.zip $URL_ZIP_FILE
echo -e "${GREEN}$NEW_PNETLAB_VERSION zip file has been downloaded successfully${NO_COLOR}"
cd /root
rm -rf upgrade
cd /root && rm -rf upgrade
echo -e "${GREEN}Unzipping zip file...${NO_COLOR}"
unzip $NEW_PNETLAB_VERSION.zip -d ./upgrade > /dev/null 2>&1
echo -e "${GREEN}Zip file has been unzipped successfully...${NO_COLOR}"
chmod 755 -R upgrade
find upgrade -type f -print0 | xargs -0 dos2unix > /dev/null 2>&1
echo -e "${GREEN}Upgrading to v$NEW_PNETLAB_VERSION...${NO_COLOR}"
./upgrade/upgrade
echo -e "${GREEN}Upgrade to v$NEW_PNETLAB_VERSION has been done successfully${NO_COLOR}"
rm -rf upgrade
#rm $NEW_PNETLAB_VERSION.zip
echo -e "${GREEN}PNETLab VM will be rebooted now${NO_COLOR}"
echo -e "${GREEN}PNETLab VM will be rebooted right now...${NO_COLOR}"
echo -e "${GREEN}Try to connect again in about a minute${NO_COLOR}"
reboot

View File

@@ -4,8 +4,13 @@
# Requirement: Having PNETLab 5.0.1 installed for being able to upgrade it to NEW_PNETLAB_VERSION
# This script avoids to make this upgrade process twice
# CONSTANTS
NEW_PNETLAB_VERSION=5.2.7
GREEN='\033[32m'
NO_COLOR='\033[0m'
URL_ZIP_FILE=https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/upgrades/from_5.0.1_to_$NEW_PNETLAB_VERSION/$NEW_PNETLAB_VERSION.zip
# Getting PNETLab version from db
data=$(mysql -uroot -ppnetlab -D pnetlab_db -e "SELECT control_value FROM control WHERE control_value>1;" 2>/dev/null)
pnetlab_info=($data)
pnetlab_version=${pnetlab_info[1]}
@@ -19,22 +24,27 @@ if ! [[ $pnetlab_version == "5.0.1" ]]; then
echo "You need to have the v5.0.1 to upgrade to the v$NEW_PNETLAB_VERSION"
exit 0
fi
GREEN='\033[32m'
NO_COLOR='\033[0m'
echo -e "${GREEN}Downloading $NEW_PNETLAB_VERSION zip file...${NO_COLOR}"
wget -q --show-progress -O /root/$NEW_PNETLAB_VERSION.zip https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/upgrades/from_5.0.1_to_$NEW_PNETLAB_VERSION/$NEW_PNETLAB_VERSION.zip
wget -q --show-progress -O /root/$NEW_PNETLAB_VERSION.zip $URL_ZIP_FILE
echo -e "${GREEN}$NEW_PNETLAB_VERSION zip file has been downloaded successfully${NO_COLOR}"
cd /root
rm -rf upgrade
cd /root && rm -rf upgrade
echo -e "${GREEN}Unzipping zip file...${NO_COLOR}"
unzip $NEW_PNETLAB_VERSION.zip -d ./upgrade > /dev/null 2>&1
echo -e "${GREEN}Zip file has been unzipped successfully...${NO_COLOR}"
chmod 755 -R upgrade
find upgrade -type f -print0 | xargs -0 dos2unix > /dev/null 2>&1
echo -e "${GREEN}Upgrading to v$NEW_PNETLAB_VERSION...${NO_COLOR}"
./upgrade/upgrade
echo -e "${GREEN}Upgrade to v$NEW_PNETLAB_VERSION has been done successfully${NO_COLOR}"
rm -rf upgrade
#rm $NEW_PNETLAB_VERSION.zip
echo -e "${GREEN}PNETLab VM will be rebooted now${NO_COLOR}"
echo -e "${GREEN}PNETLab VM will be rebooted right now...${NO_COLOR}"
echo -e "${GREEN}Try to connect again in about a minute${NO_COLOR}"
reboot

View File

@@ -0,0 +1,27 @@
```linux
This script allows to upgrade PNETLab from almost any version to v5.2.8
It cannot be used when version is 6.x
File 5.2.8.zip will be downloaded from unetlab.cloud
```
## upgrade.sh
`This script cannot be used in cases where PNETLab version is 6.x: An error message will be displayed and the script execution will be finished`
`Also, this script detects if you already have PNETLab v5.2.8 in your system and avoids to upgrade twice`
### Upgrade
Apply this command using the terminal
```linux
wget -O upgrade.sh https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/upgrades/from_any_to_5.2.8/upgrade.sh > /dev/null 2>&1 && chmod +x upgrade.sh && bash upgrade.sh
```
After a few seconds, the upgrade will be done.
Note: This upgrade does not use ishare2:
When you execute the command from above, the steps are as follows:
1) A file called [upgrade.sh](https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/upgrades/from_any_to_5.2.8/upgrade.sh) will be downloaded from this repository
2) Execution permissions will be made to this file
3) This script will be executed in order to make the upgrade

View File

@@ -0,0 +1,50 @@
#!/bin/bash
# Script designed to upgrade PNETLab from almost any version to NEW_PNETLAB_VERSION version
# Requirement: Not having PNETLab 6.x installed for being able to upgrade to NEW_PNETLAB_VERSION
# This script avoids to make this upgrade process twice
# CONSTANTS
NEW_PNETLAB_VERSION=5.2.8
GREEN='\033[32m'
NO_COLOR='\033[0m'
URL_ZIP_FILE=https://unetlab.cloud/api/raw/?path=/UNETLAB%20I/upgrades_pnetlab/from_any_to_5.2.8/5.2.8.zip
# Getting PNETLab version from db
data=$(mysql -uroot -ppnetlab -D pnetlab_db -e "SELECT control_value FROM control WHERE control_value>1;" 2>/dev/null)
pnetlab_info=($data)
pnetlab_version=${pnetlab_info[1]}
if [[ $pnetlab_version == $NEW_PNETLAB_VERSION ]]; then
echo "PNETLab already upgraded to v$NEW_PNETLAB_VERSION. You can´t upgrade twice"
exit 0
fi
if [[ $pnetlab_version == *6.* ]]; then
echo "It is not possible to upgrade to $NEW_PNETLAB_VERSION having version 6.x"
exit 0
fi
echo -e "${GREEN}Downloading $NEW_PNETLAB_VERSION zip file...${NO_COLOR}"
wget --content-disposition -q --show-progress -O /root/$NEW_PNETLAB_VERSION.zip $URL_ZIP_FILE
echo -e "${GREEN}$NEW_PNETLAB_VERSION zip file has been downloaded successfully${NO_COLOR}"
cd /root && rm -rf upgrade
echo -e "${GREEN}Unzipping zip file...${NO_COLOR}"
unzip $NEW_PNETLAB_VERSION.zip -d ./upgrade > /dev/null 2>&1
echo -e "${GREEN}Zip file has been unzipped successfully...${NO_COLOR}"
chmod 755 -R upgrade
find upgrade -type f -print0 | xargs -0 dos2unix > /dev/null 2>&1
echo -e "${GREEN}Upgrading to v$NEW_PNETLAB_VERSION...${NO_COLOR}"
./upgrade/upgrade
echo -e "${GREEN}Upgrade to v$NEW_PNETLAB_VERSION has been done successfully${NO_COLOR}"
rm -rf upgrade
#rm $NEW_PNETLAB_VERSION.zip
echo -e "${GREEN}PNETLab VM will be rebooted right now...${NO_COLOR}"
echo -e "${GREEN}Try to connect again in about a minute${NO_COLOR}"
reboot

View File

@@ -0,0 +1,27 @@
```linux
This script allows to upgrade PNETLab from almost any version to v5.2.9
It cannot be used when version is 6.x
File 5.2.9.zip will be downloaded from unetlab.cloud
```
## upgrade.sh
`This script cannot be used in cases where PNETLab version is 6.x: An error message will be displayed and the script execution will be finished`
`Also, this script detects if you already have PNETLab v5.2.9 in your system and avoids to upgrade twice`
### Upgrade
Apply this command using the terminal
```linux
wget -O upgrade.sh https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/upgrades/from_any_to_5.2.9/upgrade.sh > /dev/null 2>&1 && chmod +x upgrade.sh && bash upgrade.sh
```
After a few seconds, the upgrade will be done.
Note: This upgrade does not use ishare2:
When you execute the command from above, the steps are as follows:
1) A file called [upgrade.sh](https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/upgrades/from_any_to_5.2.9/upgrade.sh) will be downloaded from this repository
2) Execution permissions will be made to this file
3) This script will be executed in order to make the upgrade

View File

@@ -0,0 +1,50 @@
#!/bin/bash
# Script designed to upgrade PNETLab from almost any version to NEW_PNETLAB_VERSION version
# Requirement: Not having PNETLab 6.x installed for being able to upgrade to NEW_PNETLAB_VERSION
# This script avoids to make this upgrade process twice
# CONSTANTS
NEW_PNETLAB_VERSION=5.2.9
GREEN='\033[32m'
NO_COLOR='\033[0m'
URL_ZIP_FILE=https://unetlab.cloud/api/raw/?path=/UNETLAB%20I/upgrades_pnetlab/from_any_to_5.2.9/5.2.9.zip
# Getting PNETLab version from db
data=$(mysql -uroot -ppnetlab -D pnetlab_db -e "SELECT control_value FROM control WHERE control_value>1;" 2>/dev/null)
pnetlab_info=($data)
pnetlab_version=${pnetlab_info[1]}
if [[ $pnetlab_version == $NEW_PNETLAB_VERSION ]]; then
echo "PNETLab already upgraded to v$NEW_PNETLAB_VERSION. You can´t upgrade twice"
exit 0
fi
if [[ $pnetlab_version == *6.* ]]; then
echo "It is not possible to upgrade to $NEW_PNETLAB_VERSION having version 6.x"
exit 0
fi
echo -e "${GREEN}Downloading $NEW_PNETLAB_VERSION zip file...${NO_COLOR}"
wget --content-disposition -q --show-progress -O /root/$NEW_PNETLAB_VERSION.zip $URL_ZIP_FILE
echo -e "${GREEN}$NEW_PNETLAB_VERSION zip file has been downloaded successfully${NO_COLOR}"
cd /root && rm -rf upgrade
echo -e "${GREEN}Unzipping zip file...${NO_COLOR}"
unzip $NEW_PNETLAB_VERSION.zip -d ./upgrade > /dev/null 2>&1
echo -e "${GREEN}Zip file has been unzipped successfully...${NO_COLOR}"
chmod 755 -R upgrade
find upgrade -type f -print0 | xargs -0 dos2unix > /dev/null 2>&1
echo -e "${GREEN}Upgrading to v$NEW_PNETLAB_VERSION...${NO_COLOR}"
./upgrade/upgrade
echo -e "${GREEN}Upgrade to v$NEW_PNETLAB_VERSION has been done successfully${NO_COLOR}"
rm -rf upgrade
#rm $NEW_PNETLAB_VERSION.zip
echo -e "${GREEN}PNETLab VM will be rebooted right now...${NO_COLOR}"
echo -e "${GREEN}Try to connect again in about a minute${NO_COLOR}"
reboot

View File

@@ -0,0 +1,27 @@
```linux
This script allows to upgrade PNETLab from almost any version to v5.3.0
It cannot be used when version is 6.x
File 5.3.0.zip will be downloaded from unetlab.cloud
```
## upgrade.sh
`This script cannot be used in cases where PNETLab version is 6.x: An error message will be displayed and the script execution will be finished`
`Also, this script detects if you already have PNETLab v5.3.0 in your system and avoids to upgrade twice`
### Upgrade
Apply this command using the terminal
```linux
wget -O upgrade.sh https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/upgrades/from_any_to_5.3.0/upgrade.sh > /dev/null 2>&1 && chmod +x upgrade.sh && bash upgrade.sh
```
After a few seconds, the upgrade will be done.
Note: This upgrade does not use ishare2:
When you execute the command from above, the steps are as follows:
1) A file called [upgrade.sh](https://raw.githubusercontent.com/pnetlabrepo/ishare2/main/upgrades/from_any_to_5.3.0/upgrade.sh) will be downloaded from this repository
2) Execution permissions will be made to this file
3) This script will be executed in order to make the upgrade

View File

@@ -0,0 +1,50 @@
#!/bin/bash
# Script designed to upgrade PNETLab from almost any version to NEW_PNETLAB_VERSION version
# Requirement: Not having PNETLab 6.x installed for being able to upgrade to NEW_PNETLAB_VERSION
# This script avoids to make this upgrade process twice
# CONSTANTS
NEW_PNETLAB_VERSION=5.3.0
GREEN='\033[32m'
NO_COLOR='\033[0m'
URL_ZIP_FILE=https://unetlab.cloud/api/raw/?path=/UNETLAB%20I/upgrades_pnetlab/from_any_to_5.3.0/5.3.0.zip
# Getting PNETLab version from db
data=$(mysql -uroot -ppnetlab -D pnetlab_db -e "SELECT control_value FROM control WHERE control_value>1;" 2>/dev/null)
pnetlab_info=($data)
pnetlab_version=${pnetlab_info[1]}
if [[ $pnetlab_version == $NEW_PNETLAB_VERSION ]]; then
echo "PNETLab already upgraded to v$NEW_PNETLAB_VERSION. You can´t upgrade twice"
exit 0
fi
if [[ $pnetlab_version == *6.* ]]; then
echo "It is not possible to upgrade to $NEW_PNETLAB_VERSION having version 6.x"
exit 0
fi
echo -e "${GREEN}Downloading $NEW_PNETLAB_VERSION zip file...${NO_COLOR}"
wget --content-disposition -q --show-progress -O /root/$NEW_PNETLAB_VERSION.zip $URL_ZIP_FILE
echo -e "${GREEN}$NEW_PNETLAB_VERSION zip file has been downloaded successfully${NO_COLOR}"
cd /root && rm -rf upgrade
echo -e "${GREEN}Unzipping zip file...${NO_COLOR}"
unzip $NEW_PNETLAB_VERSION.zip -d ./upgrade > /dev/null 2>&1
echo -e "${GREEN}Zip file has been unzipped successfully...${NO_COLOR}"
chmod 755 -R upgrade
find upgrade -type f -print0 | xargs -0 dos2unix > /dev/null 2>&1
echo -e "${GREEN}Upgrading to v$NEW_PNETLAB_VERSION...${NO_COLOR}"
./upgrade/upgrade
echo -e "${GREEN}Upgrade to v$NEW_PNETLAB_VERSION has been done successfully${NO_COLOR}"
rm -rf upgrade
#rm $NEW_PNETLAB_VERSION.zip
echo -e "${GREEN}PNETLab VM will be rebooted right now...${NO_COLOR}"
echo -e "${GREEN}Try to connect again in about a minute${NO_COLOR}"
reboot

View File

@@ -1 +1 @@
v1.4.4
v1.5.7