mirror of
https://github.com/GNS3/gns3-registry.git
synced 2024-12-19 21:07:55 +00:00
move NETem packer files to tinycore-linux
This commit is contained in:
parent
a24cfae748
commit
30a7e86bd7
@ -23,19 +23,19 @@
|
|||||||
},
|
},
|
||||||
"images": [
|
"images": [
|
||||||
{
|
{
|
||||||
"filename": "NETem-v3.qcow2",
|
"filename": "NETem-v4.qcow2",
|
||||||
"version": "0.3",
|
"version": "0.4",
|
||||||
"md5sum": "88297839b5f014ac15a434053f51690f",
|
"md5sum": "e678698c97804901c7a53f6b68c8b861",
|
||||||
"filesize": 23461888,
|
"filesize": 26476544,
|
||||||
"download_url": "http://bernhard-ehlers.de/projects/netem/NETem-v3.qcow2",
|
"download_url": "http://bernhard-ehlers.de/projects/netem/index.html",
|
||||||
"direct_download_url": "http://bernhard-ehlers.de/projects/netem/NETem-v3.qcow2"
|
"direct_download_url": "http://bernhard-ehlers.de/projects/netem/NETem-v4.qcow2"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"versions": [
|
"versions": [
|
||||||
{
|
{
|
||||||
"name": "0.3",
|
"name": "0.4",
|
||||||
"images": {
|
"images": {
|
||||||
"hda_disk_image": "NETem-v3.qcow2"
|
"hda_disk_image": "NETem-v4.qcow2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -1,60 +0,0 @@
|
|||||||
{
|
|
||||||
"variables": {
|
|
||||||
"tc_iso_url": "http://distro.ibiblio.org/tinycorelinux/6.x/x86/archive/6.4/Core-6.4.iso",
|
|
||||||
"tc_iso_checksum": "c8e04e26de234e5528e6eac8ecb1bdda",
|
|
||||||
"vm_name": "NETem.qcow2",
|
|
||||||
"setup_script": "NETem.sh",
|
|
||||||
"upload_dir": "uploads",
|
|
||||||
"disk_size": "32"
|
|
||||||
},
|
|
||||||
"builders": [
|
|
||||||
{
|
|
||||||
"type": "qemu",
|
|
||||||
"iso_url": "{{user `tc_iso_url`}}",
|
|
||||||
"iso_checksum": "{{user `tc_iso_checksum`}}",
|
|
||||||
"iso_checksum_type": "md5",
|
|
||||||
"shutdown_command": "sudo poweroff",
|
|
||||||
"format": "qcow2",
|
|
||||||
"headless": false,
|
|
||||||
"ssh_username": "gns3",
|
|
||||||
"ssh_password": "gns3",
|
|
||||||
"accelerator": "none",
|
|
||||||
"vm_name": "{{user `vm_name`}}",
|
|
||||||
"disk_interface": "ide",
|
|
||||||
"disk_size": "{{user `disk_size`}}",
|
|
||||||
"net_device": "e1000",
|
|
||||||
"http_directory": "http",
|
|
||||||
"boot_wait": "5s",
|
|
||||||
"boot_command": [
|
|
||||||
"mc user=gns3<enter><wait10><wait10><wait10><wait10><wait10><wait10>",
|
|
||||||
"sudo passwd gns3<enter>gns3<enter>gns3<enter>",
|
|
||||||
"tce-load -wi openssh<enter><wait10>",
|
|
||||||
"cd /usr/local/etc/ssh; [ -f sshd_config.example ] && sudo cp -a sshd_config.example sshd_config; cd<enter>",
|
|
||||||
"sudo /usr/local/etc/init.d/openssh start<enter>"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"provisioners": [
|
|
||||||
{
|
|
||||||
"type": "shell",
|
|
||||||
"script": "scripts/hd-install.sh"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "shell",
|
|
||||||
"script": "scripts/serial.sh"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "file",
|
|
||||||
"source": "{{user `upload_dir`}}/",
|
|
||||||
"destination": "/tmp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "shell",
|
|
||||||
"script": "scripts/{{user `setup_script`}}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "shell",
|
|
||||||
"script": "scripts/post_setup.sh"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,43 +0,0 @@
|
|||||||
# Install tinycore on harddisk
|
|
||||||
|
|
||||||
set -x
|
|
||||||
|
|
||||||
# format harddisk
|
|
||||||
echo -e 'n\np\n1\n\n\na\n1\nw' | sudo fdisk -H16 -S32 /dev/sda
|
|
||||||
sudo mkfs.ext2 /dev/sda1
|
|
||||||
|
|
||||||
# copy system to harddisk
|
|
||||||
sudo mkdir /mnt/sda1
|
|
||||||
sudo mount /dev/sda1 /mnt/sda1
|
|
||||||
sudo mount /mnt/sr0
|
|
||||||
sudo cp -a /mnt/sr0/boot /mnt/sda1/
|
|
||||||
sudo umount /mnt/sr0
|
|
||||||
|
|
||||||
# modify bootloader config
|
|
||||||
sudo mv /mnt/sda1/boot/isolinux /mnt/sda1/boot/extlinux
|
|
||||||
cd /mnt/sda1/boot/extlinux
|
|
||||||
sudo rm boot.cat isolinux.bin
|
|
||||||
sudo mv isolinux.cfg extlinux.conf
|
|
||||||
sudo sed -i -e '/append / s/$/ user=gns3/' -e 's/timeout .*/timeout 1/' extlinux.conf
|
|
||||||
cd
|
|
||||||
|
|
||||||
# make disk bootable
|
|
||||||
tce-load -wi syslinux
|
|
||||||
sudo sh -c 'cat /usr/local/share/syslinux/mbr.bin > /dev/sda'
|
|
||||||
sudo /usr/local/sbin/extlinux --install /mnt/sda1/boot/extlinux
|
|
||||||
|
|
||||||
# create extensions directory
|
|
||||||
sudo mkdir /mnt/sda1/tce
|
|
||||||
sudo chgrp staff /mnt/sda1/tce
|
|
||||||
sudo chmod 775 /mnt/sda1/tce
|
|
||||||
|
|
||||||
# change tcedir to harddisk
|
|
||||||
mv /etc/sysconfig/tcedir /etc/sysconfig/tcedir.bak
|
|
||||||
ln -s /mnt/sda1/tce /etc/sysconfig/tcedir
|
|
||||||
rm -rf /usr/local/tce.installed/*
|
|
||||||
|
|
||||||
# base system modifications
|
|
||||||
sudo sed -i -e '/^\/opt\/bootlocal/ i' /opt/bootsync.sh
|
|
||||||
echo -e "\nusername 'gns3', password 'gns3'\n" >> /etc/issue
|
|
||||||
echo 'etc/issue' >> /opt/.filetool.lst
|
|
||||||
echo 'etc/shadow' >> /opt/.filetool.lst
|
|
@ -1,9 +0,0 @@
|
|||||||
# post-installation script
|
|
||||||
set -x
|
|
||||||
|
|
||||||
# save changes
|
|
||||||
rm -f .ash_history
|
|
||||||
filetool.sh -b sda1
|
|
||||||
|
|
||||||
# write 0, not really necessary
|
|
||||||
#sudo dd if=/dev/zero of=/mnt/sda1/zero ; sudo rm -f /mnt/sda1/zero
|
|
@ -1,21 +0,0 @@
|
|||||||
# Add serial console support
|
|
||||||
|
|
||||||
set -x
|
|
||||||
|
|
||||||
# Boot configuration
|
|
||||||
# Serial interface is secondary console, the vga console remains main console
|
|
||||||
# To change that, swap the two 'console=' boot parameter
|
|
||||||
sudo sed -i -e '1 i serial 0 38400' -e '/label microcore/,/append / s/\(append .*\)/\1 console=ttyS0,38400 console=tty0/' /mnt/sda1/boot/extlinux/extlinux.conf
|
|
||||||
|
|
||||||
# /etc/inittab
|
|
||||||
sudo sed -i -e '/tty6/ a ttyS0::respawn:/sbin/getty 38400 ttyS0 xterm' /etc/inittab
|
|
||||||
|
|
||||||
# /etc/securetty
|
|
||||||
sudo sed -i -e 's/^# *ttyS0/ttyS0/' /etc/securetty
|
|
||||||
|
|
||||||
# reload inittab on startup
|
|
||||||
sudo sed -i -e '/^\/opt\/bootlocal/ i # reload inittab' -e '/^\/opt\/bootlocal/ i kill -HUP 1' -e '/^\/opt\/bootlocal/ i' /opt/bootsync.sh
|
|
||||||
|
|
||||||
# add modified files to backup list
|
|
||||||
echo 'etc/inittab' >> /opt/.filetool.lst
|
|
||||||
echo 'etc/securetty' >> /opt/.filetool.lst
|
|
@ -1,26 +0,0 @@
|
|||||||
. /etc/init.d/tc-functions
|
|
||||||
|
|
||||||
# default LANG=C.UTF-8
|
|
||||||
[ ! -f /etc/sysconfig/language ] || [ "`cat /etc/sysconfig/language`" = "LANG=C" ] && \
|
|
||||||
echo "LANG=C.UTF-8" > /etc/sysconfig/language
|
|
||||||
|
|
||||||
# Configure network interfaces only when boot parameter "nodhcp" is used
|
|
||||||
if grep -q -w nodhcp /proc/cmdline; then
|
|
||||||
echo -en "${BLUE}Configuring network interfaces... ${NORMAL}"
|
|
||||||
|
|
||||||
# This waits until all devices have registered
|
|
||||||
/sbin/udevadm settle --timeout=10
|
|
||||||
|
|
||||||
ip link add name br0 type bridge
|
|
||||||
ip link set dev eth0 promisc on
|
|
||||||
ip link set dev eth0 mtu 2000
|
|
||||||
ip link set dev eth0 up
|
|
||||||
ip link set dev eth0 master br0
|
|
||||||
ip link set dev eth1 promisc on
|
|
||||||
ip link set dev eth1 mtu 2000
|
|
||||||
ip link set dev eth1 up
|
|
||||||
ip link set dev eth1 master br0
|
|
||||||
ip link set dev br0 up
|
|
||||||
|
|
||||||
echo -e "${GREEN}Done.${NORMAL}"
|
|
||||||
fi
|
|
5
packer/tinycore-linux/NETem.json
Normal file
5
packer/tinycore-linux/NETem.json
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"vm_name": "NETem.qcow2",
|
||||||
|
"setup_script": "NETem.sh",
|
||||||
|
"disk_size": "32"
|
||||||
|
}
|
@ -47,6 +47,16 @@ An appliance for simulating a domestic modem. eth0 as a dhcp and eth1 should be
|
|||||||
packer build -var-file=core-linux-internet.json core-linux.json
|
packer build -var-file=core-linux-internet.json core-linux.json
|
||||||
|
|
||||||
|
|
||||||
|
NETem
|
||||||
|
''''''
|
||||||
|
|
||||||
|
A build of Core with the NETem (Network link emulator) preinstalled.
|
||||||
|
|
||||||
|
.. code:: bash
|
||||||
|
|
||||||
|
packer build -var-file=NETem.json core-linux.json
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Tiny Core Linux installation
|
Tiny Core Linux installation
|
||||||
****************************
|
****************************
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
"http_directory": "http",
|
"http_directory": "http",
|
||||||
"boot_wait": "5s",
|
"boot_wait": "5s",
|
||||||
"boot_command": [
|
"boot_command": [
|
||||||
"mc user=gns3<enter><wait10><wait10><wait10><wait10><wait10><wait10><wait10>",
|
"mc user=gns3 http={{ .HTTPIP }}:{{ .HTTPPort }}<enter><wait10><wait10><wait10><wait10><wait10><wait10><wait10>",
|
||||||
"sudo udhcpc<enter>",
|
"sudo udhcpc<enter>",
|
||||||
"sudo passwd gns3<enter>gns3<enter>gns3<enter>",
|
"sudo passwd gns3<enter>gns3<enter>gns3<enter>",
|
||||||
"tce-load -wi openssh<enter><wait10>",
|
"tce-load -wi openssh<enter><wait10>",
|
||||||
|
@ -1,10 +1,6 @@
|
|||||||
set -e
|
set -e
|
||||||
set -x
|
set -x
|
||||||
|
|
||||||
# get TinyCore mirror
|
|
||||||
. /etc/init.d/tc-functions
|
|
||||||
getMirror
|
|
||||||
|
|
||||||
# TCE directory back to ramdisk
|
# TCE directory back to ramdisk
|
||||||
mv /etc/sysconfig/tcedir /etc/sysconfig/tcedir.hd
|
mv /etc/sysconfig/tcedir /etc/sysconfig/tcedir.hd
|
||||||
ln -s /tmp/tce /etc/sysconfig/tcedir
|
ln -s /tmp/tce /etc/sysconfig/tcedir
|
||||||
@ -66,21 +62,14 @@ echo "net-bridging-$KERNEL.tcz" >> /etc/sysconfig/tcedir/onboot.lst
|
|||||||
tce-load -w net-sched-$KERNEL
|
tce-load -w net-sched-$KERNEL
|
||||||
echo "net-sched-$KERNEL.tcz" >> /etc/sysconfig/tcedir/onboot.lst
|
echo "net-sched-$KERNEL.tcz" >> /etc/sysconfig/tcedir/onboot.lst
|
||||||
|
|
||||||
# iproute2 without db library
|
|
||||||
# Bug in TinyCore 6.x, which makes arpd non-working:
|
|
||||||
# There is a mismatch of the library version between arpd and the db library.
|
|
||||||
# Therefore loading the db library has no advantage, it uses only disk space.
|
|
||||||
wget $MIRROR/iproute2.tcz
|
|
||||||
wget $MIRROR/iproute2.tcz.md5.txt
|
|
||||||
cp -p iproute2.tcz* /etc/sysconfig/tcedir/optional/
|
|
||||||
echo 'iproute2.tcz' >> /etc/sysconfig/tcedir/onboot.lst
|
|
||||||
|
|
||||||
# clean up build environment
|
# clean up build environment
|
||||||
cd ..
|
cd ..
|
||||||
rm -r build
|
rm -r build
|
||||||
|
|
||||||
# NETem menu system
|
# NETem menu system
|
||||||
mv /tmp/netem-conf.py .
|
. /etc/init.d/tc-functions
|
||||||
|
http=http://`getbootparam http`
|
||||||
|
wget $http/NETem/netem-conf.py
|
||||||
chmod +x netem-conf.py
|
chmod +x netem-conf.py
|
||||||
|
|
||||||
# autologin on serial console
|
# autologin on serial console
|
||||||
@ -103,10 +92,41 @@ EOF
|
|||||||
sudo sed -i -e '/label microcore/,/append / s/\(append .*\)/\1 nodhcp/' /mnt/sda1/boot/extlinux/extlinux.conf
|
sudo sed -i -e '/label microcore/,/append / s/\(append .*\)/\1 nodhcp/' /mnt/sda1/boot/extlinux/extlinux.conf
|
||||||
|
|
||||||
# set locale and configure network at startup
|
# set locale and configure network at startup
|
||||||
|
sed -i -e '3,$ d' /opt/bootlocal.sh
|
||||||
sed -n -e '1,/^\/opt\/bootlocal/ p' /opt/bootsync.sh | head -n -1 > /tmp/bootsync.head
|
sed -n -e '1,/^\/opt\/bootlocal/ p' /opt/bootsync.sh | head -n -1 > /tmp/bootsync.head
|
||||||
sed -n -e '/^\/opt\/bootlocal/,$ p' /opt/bootsync.sh > /tmp/bootsync.tail
|
sed -n -e '/^\/opt\/bootlocal/,$ p' /opt/bootsync.sh > /tmp/bootsync.tail
|
||||||
cat /tmp/bootsync.head > /opt/bootsync.sh
|
cat /tmp/bootsync.head > /opt/bootsync.sh
|
||||||
cat /tmp/boot_script >> /opt/bootsync.sh; echo >> /opt/bootsync.sh
|
cat >> /opt/bootsync.sh <<'EOF'
|
||||||
|
. /etc/init.d/tc-functions
|
||||||
|
|
||||||
|
# default LANG=C.UTF-8
|
||||||
|
[ ! -f /etc/sysconfig/language ] || [ "`cat /etc/sysconfig/language`" = "LANG=C" ] && \
|
||||||
|
echo "LANG=C.UTF-8" > /etc/sysconfig/language
|
||||||
|
|
||||||
|
# Configure network interfaces only when boot parameter "nodhcp" is used
|
||||||
|
if grep -q -w nodhcp /proc/cmdline; then
|
||||||
|
echo -en "${BLUE}Configuring network interfaces... ${NORMAL}"
|
||||||
|
|
||||||
|
# This waits until all devices have registered
|
||||||
|
/sbin/udevadm settle --timeout=10
|
||||||
|
|
||||||
|
ip link add name br0 type bridge
|
||||||
|
sysctl -q -w net.ipv6.conf.br0.disable_ipv6=1
|
||||||
|
sysctl -q -w net.ipv6.conf.eth0.disable_ipv6=1
|
||||||
|
ip link set dev eth0 promisc on
|
||||||
|
ip link set dev eth0 mtu 2000
|
||||||
|
ip link set dev eth0 up
|
||||||
|
ip link set dev eth0 master br0
|
||||||
|
sysctl -q -w net.ipv6.conf.eth1.disable_ipv6=1
|
||||||
|
ip link set dev eth1 promisc on
|
||||||
|
ip link set dev eth1 mtu 2000
|
||||||
|
ip link set dev eth1 up
|
||||||
|
ip link set dev eth1 master br0
|
||||||
|
ip link set dev br0 up
|
||||||
|
|
||||||
|
echo -e "${GREEN}Done.${NORMAL}"
|
||||||
|
fi
|
||||||
|
EOF
|
||||||
cat /tmp/bootsync.tail >> /opt/bootsync.sh
|
cat /tmp/bootsync.tail >> /opt/bootsync.sh
|
||||||
|
|
||||||
# Done
|
# Done
|
Loading…
Reference in New Issue
Block a user