Skip to main content

Commands used in Dockefile - Part4

  Docker is an opensource tool used for virtualization and deliver software in the form of packages called Containers. It is one of the most important tools used in networking domain.  Dockerfile  is a template for building the image which contains commands needed to package the software. In this post, I am going to explain the commands ADD & COPY used in  Dockerfile .   ADD Command:   ADD command is used to copy files, directories or files from remote URLS to destination path in the image. The source paths can contain wildcards.   If the destination has relative path, it is relative to the Working directory of the image. Note that source path is always relative to the Docker build context.   ADD command will not support authentication. So, if there are any protected files to be added in  Dockerfile  building, use other tools like curl or  wget   Dockerfile  copying Single & Multiple files, directory using ADD inst...

Introduction to NetConf Server Installation and its installation

Netopeer is a stack of open source tools built on the top of the libnetconf library. It is used to control and connect to the devices that supports Netconf protocol.

Libnetconf:
It is a library implemented in C language to support the usage of netopeer server & client. It has functions for both the server and client to communicate via Netconf messages.

Installing Netopeer:
Always, installing a software has a lot of dependencies. The dependencies for the Netopeer installation are: 
  • Building Libnetconf 
  • Building Netopeer Server 
Building Libnetconf:
Libnetconf code is opensource and is available through Github. You can click here to get the URL for cloning the libnetconf. After cloning, install the below software which are dependencies for building libnetconf. Use apt-get to install the below packages.
  • libtool 
  • libtool-bin 
  • libxml2-dev 
  • libxslt1-dev 
  • libcurl4-openssl-dev 
  • xsltproc 
  • python-setuptools 
  • cmake 
  • python 
  • zlib1g-dev 
  • libssl-dev 
  • pkg-config 
  • libreadline-dev 
  • libssh2-1-dev 

Also, there is one software tool name pyang which can be cloned from Github and is used for configuring modules of the netopeer server. You can click here to get the URL for cloning pyang. Then navigate to pyang and python file setup.py with install as a command-line argument. The commands to install pyang are as below: 

git clone https://github.com/mbj4668/pyang.git  
cd pyang && python setup.py install 

Then clone the libnetconf repository using below command 
git clone https://github.com/CESNET/libnetconf.git  

Then run cd libnetconf && ./configure && make && make install which builds libnetconf on your system 
Building NetConf Server: 
Choose the same version of netopeer from Github for compatibility issue with libnetconf. The dependencies for Netopeer-server installation are as below: 
  • python-libxml2 
  • Libssh-dev 
  • libdus-1-dev 
  • SSH Server 
Then clone the Netopeer repository of the same branch of libnetconf and clone it. After that install install the netopeer-server. 
The commands for this purpose are as below: 
git clone https://github.com/CESNET/netopeer.git  
cd netopeer/server && ./configure && make && make install 
Starting Netopeer Server: 
To start Netopeer Server. System dbus must be restarted. After that run the netopeer server. 
service dbus --full-restart 
cd <Installation-of-netopeer-server-path> && netopeer-server -v 0 1 2 3 > netopeer-server.log & 

Note: -v is followed by verbose levels namely errors, warnings, verbose and debug

Automated Script to install & run the netopeer server 
You can use the below code which installs the above-mentioned dependencies & build libnetconf and netopeer-server. 

Code: 
#Assume the path for installation is /home/user/softwares

#Dependencies for Libnetconf 
apt-get update && apt-get install python python3 -y 
apt-get update && apt-get install libtool libtool-bin libxml2-dev libxslt1-dev libcurl4-openssl-dev xsltproc python-setuptools cmake zlib1g-dev libssl-dev pkg-config libreadline-dev libssh2-1-dev git -y 
  
#Install Pyang 
cd /home/user/softwares && git clone https://github.com/mbj4668/pyang.git && cd pyang && python setup.py install 
  
#Install Libnetconf of version 0.7.X 
cd /home/user/softwares && git clone -b 0.7.x https://github.com/CESNET/libnetconf.git && cd libnetconf && ./configure && make && make install 
  
#Dependeny for Netopeer-Server 
apt-get update && apt install python-libxml2 libssh-dev wget libdbus-1-dev –y 

#Install Netopeer with same version  of libnetconf - For Compatibility 
cd /home/user/softwares && git clone -b libnetconf-0.7.x https://github.com/CESNET/netopeer.git && cd netopeer/server && ./configure && make && make install && cd .. 
  
#Restart Dbus - Run Netopeer-Server 
service dbus --full-restart 
cd /home/user/softwares && netopeer-server -v 0 1 2 3 > netopeer-server.log & 

Note: The commands or script mentioned in the post should be run as sudo user due to the permissions constraints In Linux Operating system

Comments

Popular posts from this blog

Notes on IPv4, IPv6 and MAC representations

  In companies related to networking domain, “ Explain IPv4, IPv6 and MAC ” is one of the common questions asked in technical interview. This post provides overview of these concepts. IP: IP is the protocol used in Networking layer. It is responsible for the delivering packets from source to destination based on the identifier known as IP address of the device. There are two popular ways of representing the devices in the network. They are: IPv4  (Internet  Protocol version 4) IPv6 (Internet Protocol version6) IPv4:   This version of IP uses 32-bit addresses to identify the device on the network.  Therefore,  the total number of addresses possible with IPv4 is 2 32 . These  32-bit  addresses are divided into 4 octets (batch of 8 bits) with each octet represented in decimal numbers and octets are separated by dot. In IPv4 the loopback address of a device is  127.0.0.1 . IPv4 supports unicasting, broadcasting and multicasting. To map IPv4 addre...

Commands used in Dockefile - Part4

  Docker is an opensource tool used for virtualization and deliver software in the form of packages called Containers. It is one of the most important tools used in networking domain.  Dockerfile  is a template for building the image which contains commands needed to package the software. In this post, I am going to explain the commands ADD & COPY used in  Dockerfile .   ADD Command:   ADD command is used to copy files, directories or files from remote URLS to destination path in the image. The source paths can contain wildcards.   If the destination has relative path, it is relative to the Working directory of the image. Note that source path is always relative to the Docker build context.   ADD command will not support authentication. So, if there are any protected files to be added in  Dockerfile  building, use other tools like curl or  wget   Dockerfile  copying Single & Multiple files, directory using ADD inst...

Commands used in Dockerfile - Part3

  Docker is an opensource tool used for virtualization and deliver software in the form of packages called Containers. It is one of the most important tools used in networking domain.  Dockerfile  is a template for building the image which contains commands needed to package the software. In this post, I am going to explain the commands WORKDIR & HEALTHCHECK used in  Dockerfile .   WORKDIR Command:   WORKDIR command is used to set the directory of the image on which the commands like RUN, COPY, ADD, ENTRYPOINT, CMD operates.   The command usage is WORKDIR < Path_To_Dir >. If the directory not exists, it will be created. If the relative path is given to WORKDIR, that path will be relative to the previous WORKDIR command’s path.    In Ubuntu, by default the WORKDIR will be  / . Please find the below sample  Dockerfile  to get clear picture of WORKDIR command:   FROM  ubuntu: 16.04   WORKDIR  /root ...