summaryrefslogtreecommitdiffstats
path: root/docs/gettingstarted/installing/centos.rst
blob: dae24f6b4c840cf4c6d72fb8b58e1a732030bcd3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
.. _centos:

.. toctree::

Setup the fd.io Repository - Centos 7
=====================================

Update the OS
-------------

Before starting the repository setup, it is a good idea to first update and upgrade
the OS; run the following command to update the OS:

.. 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

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 by running the
following command:

.. 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 command:

.. code-block:: console

   $ sudo yum install vpp

The *vpp* RPM depends 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 the following command:

.. code-block:: console

   $ sudo systemctl start vpp

Then to enable VPP to start on system reboot, run the following command:

.. 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
======================

To uninstall a VPP RPM, run the following command:

.. code-block:: console

   $ sudo yum autoremove vpp*