| .. _centos: |
| |
| .. toctree:: |
| |
| Setup the fd.io Repository - Centos 7 |
| ===================================== |
| |
| Update the OS |
| ------------- |
| |
| It is probably a good idea to update and upgrade the OS before starting: |
| |
| .. code-block:: console |
| |
| $ sudo yum update |
| |
| |
| Point to the Repository |
| ----------------------- |
| |
| For CentOS based systems, there are two respositories to pull VPP binaries |
| from. |
| |
| * CentOS NFV SIG Repository |
| * Nexus Repository |
| |
| |
| CentOS NFV SIG Repository |
| ^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| VPP is not in the official CentOS 7 distro. However, CentOS has Special |
| Interest Groups (SIG), which are smaller groups within the CentOS community that |
| focus on a small set of issues. The CentOS NFV (Network Function Virtualization) |
| SIG was created to provide a CentOS-based stack that will serve as a platform |
| for the deployment and testing of virtual network functions (VNFs). VPP has been |
| included in this SIG. |
| |
| To install released packages from the CentOS NFV SIG Repository on an updated |
| Centos 7 system, first, install the CentOS NFV SIG FIDO repo file: |
| |
| .. code-block:: console |
| |
| $ sudo yum install centos-release-fdio |
| |
| then **'Install VPP RPMs'**, as described below. |
| |
| This will install the latest VPP version from the repository. To install an |
| older version, once the CentOS NFV SIG FDIO repo file has been installed, list |
| the stored versions: |
| |
| .. code-block:: console |
| |
| $ sudo yum --showduplicates list vpp* | expand |
| Loaded plugins: fastestmirror |
| Loading mirror speeds from cached hostfile |
| * base: repos-va.psychz.net |
| * epel: download-ib01.fedoraproject.org |
| * extras: mirror.siena.edu |
| * updates: repo1.ash.innoscale.net |
| Available Packages |
| vpp.x86_64 17.10-1 centos-fdio |
| vpp.x86_64 18.01.1-1 centos-fdio |
| vpp.x86_64 18.01.2-1 centos-fdio |
| vpp.x86_64 18.04-1 centos-fdio |
| vpp-api-java.x86_64 17.10-1 centos-fdio |
| vpp-api-java.x86_64 18.01.1-1 centos-fdio |
| vpp-api-java.x86_64 18.01.2-1 centos-fdio |
| vpp-api-java.x86_64 18.04-1 centos-fdio |
| vpp-api-lua.x86_64 17.10-1 centos-fdio |
| vpp-api-lua.x86_64 18.01.1-1 centos-fdio |
| vpp-api-lua.x86_64 18.01.2-1 centos-fdio |
| vpp-api-lua.x86_64 18.04-1 centos-fdio |
| vpp-api-python.x86_64 17.10-1 centos-fdio |
| vpp-api-python.x86_64 18.01.1-1 centos-fdio |
| vpp-api-python.x86_64 18.01.2-1 centos-fdio |
| vpp-api-python.x86_64 18.04-1 centos-fdio |
| vpp-devel.x86_64 17.10-1 centos-fdio |
| vpp-devel.x86_64 18.01.1-1 centos-fdio |
| vpp-devel.x86_64 18.01.2-1 centos-fdio |
| vpp-devel.x86_64 18.04-1 centos-fdio |
| vpp-lib.x86_64 17.10-1 centos-fdio |
| vpp-lib.x86_64 18.01.1-1 centos-fdio |
| vpp-lib.x86_64 18.01.2-1 centos-fdio |
| vpp-lib.x86_64 18.04-1 centos-fdio |
| vpp-plugins.x86_64 17.10-1 centos-fdio |
| vpp-plugins.x86_64 18.01.1-1 centos-fdio |
| vpp-plugins.x86_64 18.01.2-1 centos-fdio |
| vpp-plugins.x86_64 18.04-1 centos-fdio |
| vpp-selinux-policy.x86_64 18.04-1 centos-fdio |
| |
| Then install a particular version: |
| |
| .. code-block:: console |
| |
| $ sudo yum install vpp-17.10-1.x86_64 |
| |
| |
| Nexus Repository |
| ^^^^^^^^^^^^^^^^ |
| |
| Build artifacts are also posted to a FD.io Nexus Repository. This includes |
| official point releases, as well as nightly builds. To use any of these build |
| artifacts, create a file *'/etc/yum.repos.d/fdio-release.repo'* with the |
| content that points to the version needed. Below are some common examples of |
| the content needed: |
| |
| |
| VPP Latest Release |
| """""""""""""""""" |
| |
| To allow *'yum'* access to the official VPP releases, create the file |
| *'/etc/yum.repos.d/fdio-release.repo'* with the following content: |
| |
| .. code-block:: console |
| |
| $ cat /etc/yum.repos.d/fdio-release.repo |
| [fdio-release] |
| name=fd.io release branch latest merge |
| baseurl=https://nexus.fd.io/content/repositories/fd.io.centos7/ |
| enabled=1 |
| gpgcheck=0 |
| |
| The *'yum install vpp'* command will install the most recent release. To |
| install older releases, run the following command to get the list of releases |
| provided: |
| |
| .. code-block:: console |
| |
| $ sudo yum --showduplicates list vpp* | expand |
| |
| Then choose the release to install. See **'CentOS NFV SIG Repository'** for |
| sample *'yum --showduplicates list'* output and an example of installing a |
| particular version of the RPMs. |
| |
| VPP Stable Branch |
| """"""""""""""""" |
| |
| To allow *yum* access to the build artifacts for a VPP stable branch, create |
| the file *'/etc/yum.repos.d/fdio-release.repo'* with the following content: |
| |
| .. code-block:: console |
| |
| $ cat /etc/yum.repos.d/fdio-release.repo |
| [fdio-stable-1804] |
| name=fd.io stable/1804 branch latest merge |
| baseurl=https://nexus.fd.io/content/repositories/fd.io.stable.1804.centos7/ |
| enabled=1 |
| gpgcheck=0 |
| |
| For other stable branches, replace the *'1804'* from the above content with the |
| desired release. Examples: 1606, 1609, 1701, 1704, 1707, 1710, 1804, 1807 |
| |
| The *'yum install vpp'* command will install the most recent build on the |
| branch, not the latest offical release. Run the following command to get the |
| list of images produce by the branch: |
| |
| .. code-block:: console |
| |
| $ sudo yum --showduplicates list vpp* | expand |
| |
| Then choose the image to install. See **'CentOS NFV SIG Repository'** for |
| sample *'yum --showduplicates list'* output and an example of installing a |
| particular version of the RPMs. |
| |
| |
| VPP Master Branch |
| """"""""""""""""" |
| |
| To allow *yum* access to the nightly builds from the VPP master branch, create |
| the file *'/etc/yum.repos.d/fdio-release.repo'* with the following content: |
| |
| .. code-block:: console |
| |
| $ cat /etc/yum.repos.d/fdio-release.repo |
| [fdio-master] |
| name=fd.io master branch latest merge |
| baseurl=https://nexus.fd.io/content/repositories/fd.io.master.centos7/ |
| enabled=1 |
| gpgcheck=0 |
| |
| The *'yum install vpp'* command will install the most recent build on the |
| branch. Run the following command to get the list of images produce by the |
| branch: |
| |
| .. code-block:: console |
| |
| $ sudo yum --showduplicates list vpp* | expand |
| |
| Then choose the image to install. See **'CentOS NFV SIG Repository'** for |
| sample *'yum --showduplicates list'* output and an example of installing a |
| particular version of the RPMs. |
| |
| |
| Install VPP RPMs |
| ================ |
| |
| To install the VPP packet engine, run the following: |
| |
| .. code-block:: console |
| |
| $ sudo yum install vpp |
| |
| The **'vpp'** RPM depend on the **'vpp-lib'** and **'vpp-selinux-policy'** |
| RPMs, so they will be installed as well. |
| |
| .. note:: |
| |
| The **'vpp-selinux-policy'** will not enable SELinux on the system. It |
| will install a Custom VPP SELinux policy that will be used if SELinux is |
| enabled at any time. |
| |
| There are additional packages that are optional. These packages can be |
| combined with the command above and installed all at once, or installed as |
| needed: |
| |
| .. code-block:: console |
| |
| $ sudo yum install vpp-plugins vpp-devel vpp-api-python vpp-api-lua vpp-api-java |
| |
| Starting VPP |
| ============ |
| |
| Once VPP is installed on the system, to run VPP as a systemd service on CentOS, |
| run: |
| |
| .. code-block:: console |
| |
| $ sudo systemctl start vpp |
| |
| Then to enable VPP to start on system reboot: |
| |
| .. code-block:: console |
| |
| $ sudo systemctl enable vpp |
| |
| |
| Outside of running VPP as a systemd service, VPP can be started manually or |
| made to run within GDB for debugging. See :ref:`running` for more details and |
| ways to tailor VPP to a specific system. |
| |
| |
| Uninstall the VPP RPMs |
| ====================== |
| |
| .. code-block:: console |
| |
| $ sudo yum autoremove vpp* |