6 changed files with 146 additions and 28 deletions
@ -1,28 +0,0 @@
|
||||
# -*- mode: ruby -*- |
||||
# vi: set ft=ruby : |
||||
|
||||
$script = <<SCRIPT |
||||
ln -s /vagrant /home/vagrant/mini-ndn |
||||
|
||||
# Check if install.sh is present or someone just copied the Vagrantfile directly |
||||
if [[ -f /home/vagrant/mini-ndn/install.sh ]]; then |
||||
pushd /home/vagrant/mini-ndn |
||||
else |
||||
# Remove the symlink |
||||
rm /home/vagrant/mini-ndn |
||||
git clone --depth 1 https://github.com/named-data/mini-ndn.git |
||||
pushd mini-ndn |
||||
fi |
||||
./install.sh -qa |
||||
|
||||
SCRIPT |
||||
|
||||
Vagrant.configure(2) do |config| |
||||
config.vm.box = "ubuntu/bionic64" |
||||
config.vm.provision "shell", privileged: false, inline: $script |
||||
config.vm.provider "virtualbox" do |vb| |
||||
vb.name = "mini-ndn_box" |
||||
vb.memory = 4096 |
||||
vb.cpus = 4 |
||||
end |
||||
end |
@ -0,0 +1,47 @@
|
||||
|
||||
[comments]: The original author of Mini-NDN docker is Md Ashiqur Rahman (marahman@email.arizona.edu) |
||||
|
||||
| :exclamation: Mini-NDN docker is in experimental phase, it uses older version of Mini-NDN and is incompatible with the current version | |
||||
|-----------------------------------------------------------------------------------------------------------------------------------------| |
||||
|
||||
### `docker build` or `docker pull` |
||||
|
||||
The [Dockerfile](https://github.com/ashiqopu/docker-minindn/blob/master/Dockerfile) can be used directly to `build` an image from scratch. |
||||
|
||||
* Build with `Dockerfile`: |
||||
* Open terminal and use the following command: |
||||
```bash |
||||
git clone https://github.com/ashiqopu/docker-minindn |
||||
cd docker-minindn |
||||
``` |
||||
* Type and enter. |
||||
```bash |
||||
docker build -t minindn . |
||||
``` |
||||
* You can then access the container through shell with, |
||||
```bash |
||||
docker run -m 4g --cpus=4 -it --rm --privileged \ |
||||
-v /lib/modules:/lib/modules \ |
||||
minindn bin/bash |
||||
``` |
||||
|
||||
* Pull from hub: |
||||
* Open a terminal and type: |
||||
```bash |
||||
docker pull marahman/minindn:v0.2 |
||||
``` |
||||
|
||||
* You can then access the container through shell with, |
||||
```bash |
||||
docker run -m 4g --cpus=4 -it --rm --privileged -e DISPLAY \ |
||||
-v /tmp/.X11-unix:/tmp/.X11-unix \ |
||||
-v /lib/modules:/lib/modules \ |
||||
marahman/minindn:v0.2 bin/bash |
||||
``` |
||||
|
||||
### Notes: |
||||
|
||||
* Memory (-m), CPU (--cpus) are recommended by Mini-NDN. |
||||
* `--privileged` is mandatory for underlying [Mininet](http://mininet.org/) to utilize virtual switch |
||||
* Root directory on `run` is `/mini-ndn` containing the installation and examples. |
||||
* GUI may not work for now due to docker and xterm setup issues and is independent from Mini-NDN. |
@ -0,0 +1,73 @@
|
||||
# Mini-NDN in [VirtualBox](https://www.virtualbox.org/) using [vagrant](https://www.vagrantup.com/). |
||||
|
||||
### [RECOMMENDED] Mini-NDN Vagrant Box |
||||
|
||||
We have a Mini-NDN pre-installed in a vagrant box. The box can be found [here](https://app.vagrantup.com/sdulal/boxes/mini-ndn). For suggested Mini-NDN resource allocation, |
||||
Here's an example [`Vagrantfile`](https://gerrit.named-data.net/c/mini-ndn/+/6426/18/vagrant/Vagrantfile): |
||||
```ruby |
||||
# -*- mode: ruby -*- |
||||
# vi: set ft=ruby : |
||||
Vagrant.configure("2") do |config| |
||||
config.vm.box = "sdulal/mini-ndn" |
||||
config.vm.provider "virtualbox" do |vb| |
||||
vb.memory = "4096" |
||||
vb.cpus = "4" |
||||
vb.name = "mini-ndn-box" |
||||
end |
||||
end |
||||
``` |
||||
---- |
||||
|
||||
### [NOT RECOMMENDED] Building from scratch with `vagrant` and VirtualBox containing Mini-NDN |
||||
|
||||
* Download and install VirtualBox and Vagrant |
||||
* https://www.vagrantup.com/downloads |
||||
* https://www.virtualbox.org/wiki/Downloads |
||||
* To create and start fresh virtual machine: |
||||
* Create a file called "Vagrantfile" with this basic setup: |
||||
```ruby |
||||
# -*- mode: ruby -*- |
||||
# vi: set ft=ruby : |
||||
Vagrant.configure("2") do |config| |
||||
config.vm.box = "bento/ubuntu-20.04" |
||||
config.disksize.size = '40GB' |
||||
config.vm.provider "virtualbox" do |vb| |
||||
vb.memory = 4096 |
||||
vb.cpus = 4 |
||||
vb.name = "mini-ndn-box" |
||||
end |
||||
end |
||||
``` |
||||
* Open your terminal or command line in the directory that has Vagrantfile |
||||
* Start the virtual machine with, |
||||
`$ vagrant up` |
||||
* (If required) The username/password for the vm are both `vagrant`. |
||||
|
||||
* To install Mini-NDN, use the following commands: |
||||
```bash |
||||
git clone https://github.com/named-data/mini-ndn.git |
||||
cd mini-ndn |
||||
./install.sh --source |
||||
``` |
||||
* To test mini-ndn: |
||||
* while still in the `mini-ndn` directory, enter |
||||
```bash |
||||
sudo python examples/mnndn.py |
||||
``` |
||||
* If it worked, You will see the Mini-NDN CLI. Enter `exit` to close the CLI. |
||||
|
||||
(Additional optional "not really needed" steps) |
||||
* To clean and export vm as Vagrant Box: |
||||
* while in vm, enter these to clean: |
||||
```bash |
||||
cd |
||||
sudo apt-get clean |
||||
sudo dd if=/dev/zero of=/EMPTY bs=1M |
||||
sudo rm -f /EMPTY |
||||
cat /dev/null > ~/.bash_history && history -c && exit |
||||
``` |
||||
* Close the vm window and open a terminal in the same directory as the `Vagrantfile`. |
||||
* In the terminal, type this command where `vb_name` is the name of the vm defined in `Vagrantfile`, and `box_name` any name for the output `.box` file |
||||
```bash |
||||
vagrant package --base vb_name --output box_name.box |
||||
``` |
@ -0,0 +1,16 @@
|
||||
# -*- mode: ruby -*- |
||||
# vi: set ft=ruby : |
||||
|
||||
# This vagrant box is built with Ubuntu 20.04 basebox from bento. Mini-NDN is |
||||
# pre-installed in this box. Recommended resource allocation for mini NDN: |
||||
# memory = "4096" cpus = "4". However, modifiy the memory, cups and other |
||||
# configuration as per your need. |
||||
|
||||
Vagrant.configure("2") do |config| |
||||
config.vm.box = "sdulal/mini-ndn" |
||||
config.vm.provider "virtualbox" do |vb| |
||||
vb.memory = "4096" |
||||
vb.cpus = "4" |
||||
vb.name = "mini-ndn-box" |
||||
end |
||||
end |
Loading…
Reference in new issue