Skip to content

Latest commit

 

History

History
59 lines (41 loc) · 1.94 KB

INSTALL.md

File metadata and controls

59 lines (41 loc) · 1.94 KB

Installation

Holo uses unstable Rust features, so building it from the source code requires a nightly version of the Rust compiler.

Build from source

  1. Install the Rust toolchain

If you don't already have Rust in your system, the best way to install it is via rustup (be sure to choose the nightly toolchain).

  1. Clone Holo's git repositories
$ git clone https://github.com/holo-routing/holo.git
$ git clone https://github.com/holo-routing/holo-cli.git
  1. Install build dependencies:

Holo requires a few dependencies for building and embedding the libyang library. You can install them using your system's package manager. For example, on Debian-based systems:

# apt-get install build-essential cmake libpcre2-dev protobuf-compiler
  1. Build holod and holo-cli
$ cd holo/
$ cargo build --release
$ cd ../holo-cli/
$ cargo build --release
  1. Add holo user and group:
# groupadd -r holo
# mkdir /var/opt/holo
# useradd --system --shell /sbin/nologin --home-dir /var/opt/holo/ -g holo holo
  1. Installation

Copy the holod and holo-cli binaries from the target/release directories to your preferred location.

Alternatively, you can use cargo install to install these binaries into the $HOME/.cargo/bin directory.

Configuration

holod configuration consists of the following:

  • /etc/holod.toml: static configuration that can't change once the daemon starts. It's meant to configure which features are enabled, plugins parameters, among other things. Here's an example containing the default values. If this file doesn't exist, the default values will be used.
  • Running configuration: this is the normal YANG-modeled configuration that can only be changed through a northbound client (e.g. gRPC, gNMI, CLI, etc).