updates to install2.md to replace install docs
This commit is contained in:
parent
e283c5ec7d
commit
5d23be4a9d
1 changed files with 126 additions and 4 deletions
130
docs/install2.md
130
docs/install2.md
|
@ -1,4 +1,7 @@
|
||||||
# Installing CORE
|
# CORE Installation
|
||||||
|
|
||||||
|
* Table of Contents
|
||||||
|
{:toc}
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
|
@ -14,6 +17,11 @@ The following tools will be leveraged during installation:
|
||||||
|invoke|used to run provided tasks (install, daemon, gui, tests, etc)|
|
|invoke|used to run provided tasks (install, daemon, gui, tests, etc)|
|
||||||
|poetry|used to install the managed python virtual environment for running CORE|
|
|poetry|used to install the managed python virtual environment for running CORE|
|
||||||
|
|
||||||
|
## Required Hardware
|
||||||
|
|
||||||
|
Any computer capable of running Linux should be able to run CORE. Since the physical machine will be hosting numerous
|
||||||
|
containers, as a general rule you should select a machine having as much RAM and CPU resources as possible.
|
||||||
|
|
||||||
## Supported Linux Distributions
|
## Supported Linux Distributions
|
||||||
|
|
||||||
Plan is to support recent Ubuntu and CentOS LTS releases.
|
Plan is to support recent Ubuntu and CentOS LTS releases.
|
||||||
|
@ -28,16 +36,130 @@ Verified:
|
||||||
> **NOTE:** CentOS 8 does not provide legacy ebtables support, WLAN will not
|
> **NOTE:** CentOS 8 does not provide legacy ebtables support, WLAN will not
|
||||||
> function properly
|
> function properly
|
||||||
|
|
||||||
## Running Installation
|
## Utility Requirements
|
||||||
|
|
||||||
|
* iproute2 4.5+ is a requirement for bridge related commands
|
||||||
|
* ebtables not backed by nftables
|
||||||
|
|
||||||
|
## Automated Installation
|
||||||
|
|
||||||
|
> **NOTE:** installs OSPF MDR
|
||||||
|
> **NOTE:** sets up script files using the prefix provided
|
||||||
|
> **NOTE:** install a systemd service file to /lib/systemd/system/core-daemon.service
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# clone CORE repo
|
# clone CORE repo
|
||||||
git clone https://github.com/coreemu/core.git
|
git clone https://github.com/coreemu/core.git
|
||||||
cd core
|
cd core
|
||||||
git checkout enhancement/poetry-invoke
|
|
||||||
|
|
||||||
# run install script
|
# run install script
|
||||||
./install2.sh
|
# script usage: install.sh [-d] [-v]
|
||||||
|
#
|
||||||
|
# -v enable verbose install
|
||||||
|
# -d enable developer install
|
||||||
|
# -p install prefix, defaults to /usr/local
|
||||||
|
./install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Manual Installation
|
||||||
|
|
||||||
|
> **NOTE:** install OSPF MDR by manual instructions below
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# clone CORE repo
|
||||||
|
git clone https://github.com/coreemu/core.git
|
||||||
|
cd core
|
||||||
|
|
||||||
|
# install python3 and venv support
|
||||||
|
# ubuntu
|
||||||
|
sudo apt install -y python3-pip python3-venv
|
||||||
|
# centos
|
||||||
|
sudo yum install -y python3-pip
|
||||||
|
|
||||||
|
# install system dependencies
|
||||||
|
# ubuntu
|
||||||
|
sudo apt install -y automake pkg-config gcc libev-dev ebtables iproute2 \
|
||||||
|
ethtool tk python3-tk
|
||||||
|
# centos
|
||||||
|
sudo yum install -y automake pkgconf-pkg-config gcc gcc-c++ libev-devel \
|
||||||
|
iptables-ebtables iproute python3-devel python3-tkinter tk ethtool \
|
||||||
|
make kernel-modules-extra
|
||||||
|
|
||||||
|
# install grpcio-tools
|
||||||
|
python3 -m pip install --user grpcio==1.27.2 grpcio-tools==1.27.2
|
||||||
|
|
||||||
|
# build core
|
||||||
|
./bootstrap.sh
|
||||||
|
./configure
|
||||||
|
make
|
||||||
|
sudo make install
|
||||||
|
|
||||||
|
# install pipx, may need to restart terminal after ensurepath
|
||||||
|
python3 -m pip install --user pipx
|
||||||
|
python3 -m pipx ensurepath
|
||||||
|
|
||||||
|
# install poetry
|
||||||
|
pipx install poetry
|
||||||
|
|
||||||
|
# install poetry virtual environment
|
||||||
|
cd daemon
|
||||||
|
poetry install --no-dev
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# install invoke to run helper tasks
|
||||||
|
pipx install invoke
|
||||||
|
|
||||||
|
# install core scripts leveraging poetry virtual environment
|
||||||
|
inv install-scripts
|
||||||
|
|
||||||
|
# optionally install systemd service file
|
||||||
|
inv install-service
|
||||||
|
```
|
||||||
|
|
||||||
|
## Manually Install OSPF MDR (Routing Support)
|
||||||
|
|
||||||
|
Virtual networks generally require some form of routing in order to work (e.g. to automatically populate routing
|
||||||
|
tables for routing packets from one subnet to another.) CORE builds OSPF routing protocol configurations by
|
||||||
|
default when the blue router node type is used.
|
||||||
|
|
||||||
|
* [OSPF MANET Designated Routers](https://github.com/USNavalResearchLaboratory/ospf-mdr) (MDR) - the Quagga routing
|
||||||
|
suite with a modified version of OSPFv3, optimized for use with mobile wireless networks. The **mdr** node type
|
||||||
|
(and the MDR service) requires this variant of Quagga.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# system dependencies
|
||||||
|
# ubuntu
|
||||||
|
sudo apt install -y libtool gawk libreadline-dev
|
||||||
|
# centos
|
||||||
|
sudo yum install -y libtool gawk readline-devel
|
||||||
|
|
||||||
|
# build and install
|
||||||
|
git clone https://github.com/USNavalResearchLaboratory/ospf-mdr
|
||||||
|
cd ospf-mdr
|
||||||
|
./bootstrap.sh
|
||||||
|
./configure --disable-doc --enable-user=root --enable-group=root --with-cflags=-ggdb \
|
||||||
|
--sysconfdir=/usr/local/etc/quagga --enable-vtysh \
|
||||||
|
--localstatedir=/var/run/quagga
|
||||||
|
make
|
||||||
|
sudo make install
|
||||||
|
```
|
||||||
|
|
||||||
|
## Manually Install EMANE
|
||||||
|
|
||||||
|
EMANE can be installed from deb or RPM packages or from source. See the
|
||||||
|
[EMANE GitHub](https://github.com/adjacentlink/emane) for full details.
|
||||||
|
|
||||||
|
Here are quick instructions for installing all EMANE packages for Ubuntu 18.04:
|
||||||
|
```shell
|
||||||
|
# install dependencies
|
||||||
|
# ubuntu
|
||||||
|
sudo apt-get install libssl-dev libxml-libxml-perl libxml-simple-perl
|
||||||
|
wget https://adjacentlink.com/downloads/emane/emane-1.2.5-release-1.ubuntu-18_04.amd64.tar.gz
|
||||||
|
tar xzf emane-1.2.5-release-1.ubuntu-18_04.amd64.tar.gz
|
||||||
|
# install base emane packages
|
||||||
|
sudo dpkg -i emane-1.2.5-release-1/deb/ubuntu-18_04/amd64/emane*.deb
|
||||||
|
# install python3 bindings
|
||||||
|
sudo dpkg -i emane-1.2.5-release-1/deb/ubuntu-18_04/amd64/python3*.deb
|
||||||
```
|
```
|
||||||
|
|
||||||
## Using Invoke Tasks
|
## Using Invoke Tasks
|
||||||
|
|
Loading…
Add table
Reference in a new issue