blob: 470ca87be1fcc65e4f63de837841a4147e717260 [file] [log] [blame]
John DeNisco06dcd452018-07-26 12:45:10 -04001.. _centos:
2
3.. toctree::
4
5Setup the fd.io Repository - Centos 7
6=====================================
7
8Update the OS
9-------------
10
John DeNiscoc64ba6d2018-08-02 15:03:15 -040011Before starting the repository setup, it is a good idea to first update and upgrade the OS.
John DeNisco06dcd452018-07-26 12:45:10 -040012
13.. code-block:: console
14
15 $ sudo yum update
16
17
18Point to the Repository
19-----------------------
20
21For CentOS based systems, there are two respositories to pull VPP binaries
22from.
23
24* CentOS NFV SIG Repository
25* Nexus Repository
26
27
28CentOS NFV SIG Repository
29^^^^^^^^^^^^^^^^^^^^^^^^^
30
31VPP is not in the official CentOS 7 distro. However, CentOS has Special
32Interest Groups (SIG), which are smaller groups within the CentOS community that
33focus on a small set of issues. The CentOS NFV (Network Function Virtualization)
34SIG was created to provide a CentOS-based stack that will serve as a platform
35for the deployment and testing of virtual network functions (VNFs). VPP has been
36included in this SIG.
37
38To install released packages from the CentOS NFV SIG Repository on an updated
39Centos 7 system, first, install the CentOS NFV SIG FIDO repo file:
40
41.. code-block:: console
42
43 $ sudo yum install centos-release-fdio
44
45then **'Install VPP RPMs'**, as described below.
46
47This will install the latest VPP version from the repository. To install an
48older version, once the CentOS NFV SIG FDIO repo file has been installed, list
49the stored versions:
50
51.. code-block:: console
52
53 $ sudo yum --showduplicates list vpp* | expand
54 Loaded plugins: fastestmirror
55 Loading mirror speeds from cached hostfile
56 * base: repos-va.psychz.net
57 * epel: download-ib01.fedoraproject.org
58 * extras: mirror.siena.edu
59 * updates: repo1.ash.innoscale.net
60 Available Packages
61 vpp.x86_64 17.10-1 centos-fdio
62 vpp.x86_64 18.01.1-1 centos-fdio
63 vpp.x86_64 18.01.2-1 centos-fdio
64 vpp.x86_64 18.04-1 centos-fdio
65 vpp-api-java.x86_64 17.10-1 centos-fdio
66 vpp-api-java.x86_64 18.01.1-1 centos-fdio
67 vpp-api-java.x86_64 18.01.2-1 centos-fdio
68 vpp-api-java.x86_64 18.04-1 centos-fdio
69 vpp-api-lua.x86_64 17.10-1 centos-fdio
70 vpp-api-lua.x86_64 18.01.1-1 centos-fdio
71 vpp-api-lua.x86_64 18.01.2-1 centos-fdio
72 vpp-api-lua.x86_64 18.04-1 centos-fdio
73 vpp-api-python.x86_64 17.10-1 centos-fdio
74 vpp-api-python.x86_64 18.01.1-1 centos-fdio
75 vpp-api-python.x86_64 18.01.2-1 centos-fdio
76 vpp-api-python.x86_64 18.04-1 centos-fdio
77 vpp-devel.x86_64 17.10-1 centos-fdio
78 vpp-devel.x86_64 18.01.1-1 centos-fdio
79 vpp-devel.x86_64 18.01.2-1 centos-fdio
80 vpp-devel.x86_64 18.04-1 centos-fdio
81 vpp-lib.x86_64 17.10-1 centos-fdio
82 vpp-lib.x86_64 18.01.1-1 centos-fdio
83 vpp-lib.x86_64 18.01.2-1 centos-fdio
84 vpp-lib.x86_64 18.04-1 centos-fdio
85 vpp-plugins.x86_64 17.10-1 centos-fdio
86 vpp-plugins.x86_64 18.01.1-1 centos-fdio
87 vpp-plugins.x86_64 18.01.2-1 centos-fdio
88 vpp-plugins.x86_64 18.04-1 centos-fdio
89 vpp-selinux-policy.x86_64 18.04-1 centos-fdio
90
91Then install a particular version:
92
93.. code-block:: console
94
95 $ sudo yum install vpp-17.10-1.x86_64
96
97
98Nexus Repository
99^^^^^^^^^^^^^^^^
100
101Build artifacts are also posted to a FD.io Nexus Repository. This includes
102official point releases, as well as nightly builds. To use any of these build
103artifacts, create a file *'/etc/yum.repos.d/fdio-release.repo'* with the
104content that points to the version needed. Below are some common examples of
105the content needed:
106
107
108VPP Latest Release
109""""""""""""""""""
110
111To allow *'yum'* access to the official VPP releases, create the file
112*'/etc/yum.repos.d/fdio-release.repo'* with the following content:
113
114.. code-block:: console
115
116 $ cat /etc/yum.repos.d/fdio-release.repo
117 [fdio-release]
118 name=fd.io release branch latest merge
119 baseurl=https://nexus.fd.io/content/repositories/fd.io.centos7/
120 enabled=1
121 gpgcheck=0
122
123The *'yum install vpp'* command will install the most recent release. To
124install older releases, run the following command to get the list of releases
125provided:
126
127.. code-block:: console
128
129 $ sudo yum --showduplicates list vpp* | expand
130
131Then choose the release to install. See **'CentOS NFV SIG Repository'** for
132sample *'yum --showduplicates list'* output and an example of installing a
133particular version of the RPMs.
134
135VPP Stable Branch
136"""""""""""""""""
137
138To allow *yum* access to the build artifacts for a VPP stable branch, create
139the file *'/etc/yum.repos.d/fdio-release.repo'* with the following content:
140
141.. code-block:: console
142
143 $ cat /etc/yum.repos.d/fdio-release.repo
144 [fdio-stable-1804]
145 name=fd.io stable/1804 branch latest merge
146 baseurl=https://nexus.fd.io/content/repositories/fd.io.stable.1804.centos7/
147 enabled=1
148 gpgcheck=0
149
150For other stable branches, replace the *'1804'* from the above content with the
151desired release. Examples: 1606, 1609, 1701, 1704, 1707, 1710, 1804, 1807
152
153The *'yum install vpp'* command will install the most recent build on the
154branch, not the latest offical release. Run the following command to get the
155list of images produce by the branch:
156
157.. code-block:: console
158
159 $ sudo yum --showduplicates list vpp* | expand
160
161Then choose the image to install. See **'CentOS NFV SIG Repository'** for
162sample *'yum --showduplicates list'* output and an example of installing a
163particular version of the RPMs.
164
165
166VPP Master Branch
167"""""""""""""""""
168
169To allow *yum* access to the nightly builds from the VPP master branch, create
170the file *'/etc/yum.repos.d/fdio-release.repo'* with the following content:
171
172.. code-block:: console
173
174 $ cat /etc/yum.repos.d/fdio-release.repo
175 [fdio-master]
176 name=fd.io master branch latest merge
177 baseurl=https://nexus.fd.io/content/repositories/fd.io.master.centos7/
178 enabled=1
179 gpgcheck=0
180
181The *'yum install vpp'* command will install the most recent build on the
182branch. Run the following command to get the list of images produce by the
183branch:
184
185.. code-block:: console
186
187 $ sudo yum --showduplicates list vpp* | expand
188
189Then choose the image to install. See **'CentOS NFV SIG Repository'** for
190sample *'yum --showduplicates list'* output and an example of installing a
191particular version of the RPMs.
192
193
194Install VPP RPMs
195================
196
197To install the VPP packet engine, run the following:
198
199.. code-block:: console
200
201 $ sudo yum install vpp
202
203The **'vpp'** RPM depend on the **'vpp-lib'** and **'vpp-selinux-policy'**
204RPMs, so they will be installed as well.
205
206.. note::
207
208 The **'vpp-selinux-policy'** will not enable SELinux on the system. It
209 will install a Custom VPP SELinux policy that will be used if SELinux is
210 enabled at any time.
211
212There are additional packages that are optional. These packages can be
213combined with the command above and installed all at once, or installed as
214needed:
215
216.. code-block:: console
217
218 $ sudo yum install vpp-plugins vpp-devel vpp-api-python vpp-api-lua vpp-api-java
219
220Starting VPP
221============
222
223Once VPP is installed on the system, to run VPP as a systemd service on CentOS,
224run:
225
226.. code-block:: console
227
228 $ sudo systemctl start vpp
229
230Then to enable VPP to start on system reboot:
231
232.. code-block:: console
233
234 $ sudo systemctl enable vpp
235
236
237Outside of running VPP as a systemd service, VPP can be started manually or
238made to run within GDB for debugging. See :ref:`running` for more details and
239ways to tailor VPP to a specific system.
240
241
242Uninstall the VPP RPMs
243======================
244
245.. code-block:: console
246
247 $ sudo yum autoremove vpp*