]> git.puffer.fish Git - mirror/frr.git/commitdiff
doc: Add a section in `Building FRR` for CentOS 8
authorDonatas Abraitis <donatas.abraitis@gmail.com>
Thu, 26 Dec 2019 20:34:55 +0000 (22:34 +0200)
committerDonatas Abraitis <donatas.abraitis@gmail.com>
Fri, 27 Dec 2019 12:03:00 +0000 (14:03 +0200)
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
doc/developer/building-frr-for-centos8.rst [new file with mode: 0644]
doc/developer/building.rst
doc/developer/packaging-redhat.rst

diff --git a/doc/developer/building-frr-for-centos8.rst b/doc/developer/building-frr-for-centos8.rst
new file mode 100644 (file)
index 0000000..7751482
--- /dev/null
@@ -0,0 +1,156 @@
+CentOS 8
+========
+
+This document describes installation from source. If you want to build an RPM,
+see :ref:`packaging-redhat`.
+
+Install required packages
+-------------------------
+
+Add packages:
+
+::
+
+    sudo dnf install --enablerepo=PowerTools git autoconf pcre-devel \
+      automake libtool make readline-devel texinfo net-snmp-devel pkgconfig \
+      groff pkgconfig json-c-devel pam-devel bison flex python2-pytest \
+      c-ares-devel python2-devel systemd-devel libcap-devel
+
+.. include:: building-libyang.rst
+
+Get FRR, compile it and install it (from Git)
+---------------------------------------------
+
+**This assumes you want to build and install FRR from source and not
+using any packages**
+
+Add frr groups and user
+^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo groupadd -g 92 frr
+    sudo groupadd -r -g 85 frrvty
+    sudo useradd -u 92 -g 92 -M -r -G frrvty -s /sbin/nologin \
+      -c "FRR FRRouting suite" -d /var/run/frr frr
+
+Download Source, configure and compile it
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+(You may prefer different options on configure statement. These are just
+an example.)
+
+::
+
+    git clone https://github.com/frrouting/frr.git frr
+    cd frr
+    ./bootstrap.sh
+    ./configure \
+        --bindir=/usr/bin \
+        --sbindir=/usr/lib/frr \
+        --sysconfdir=/etc/frr \
+        --libdir=/usr/lib/frr \
+        --libexecdir=/usr/lib/frr \
+        --localstatedir=/var/run/frr \
+        --with-moduledir=/usr/lib/frr/modules \
+        --enable-snmp=agentx \
+        --enable-multipath=64 \
+        --enable-user=frr \
+        --enable-group=frr \
+        --enable-vty-group=frrvty \
+       --enable-systemd=yes \
+        --disable-exampledir \
+        --disable-ldpd \
+        --enable-fpm \
+        --with-pkg-git-version \
+        --with-pkg-extra-version=-MyOwnFRRVersion \
+       SPHINXBUILD=/usr/bin/sphinx-build
+    make
+    make check
+    sudo make install
+
+Create empty FRR configuration files
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo mkdir /var/log/frr
+    sudo mkdir /etc/frr
+    sudo touch /etc/frr/zebra.conf
+    sudo touch /etc/frr/bgpd.conf
+    sudo touch /etc/frr/ospfd.conf
+    sudo touch /etc/frr/ospf6d.conf
+    sudo touch /etc/frr/isisd.conf
+    sudo touch /etc/frr/ripd.conf
+    sudo touch /etc/frr/ripngd.conf
+    sudo touch /etc/frr/pimd.conf
+    sudo touch /etc/frr/nhrpd.conf
+    sudo touch /etc/frr/eigrpd.conf
+    sudo touch /etc/frr/babeld.conf
+    sudo chown -R frr:frr /etc/frr/
+    sudo touch /etc/frr/vtysh.conf
+    sudo chown frr:frrvty /etc/frr/vtysh.conf
+    sudo chmod 640 /etc/frr/*.conf
+
+Install daemon config file
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo install -p -m 644 redhat/daemons /etc/frr/
+    sudo chown frr:frr /etc/frr/daemons
+
+Edit /etc/frr/daemons as needed to select the required daemons
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Look for the section with ``watchfrr_enable=...`` and ``zebra=...`` etc.
+Enable the daemons as required by changing the value to ``yes``
+
+Enable IP & IPv6 forwarding
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Create a new file ``/etc/sysctl.d/90-routing-sysctl.conf`` with the
+following content:
+
+::
+
+    # Sysctl for routing
+    #
+    # Routing: We need to forward packets
+    net.ipv4.conf.all.forwarding=1
+    net.ipv6.conf.all.forwarding=1
+
+Load the modified sysctl's on the system:
+
+::
+
+    sudo sysctl -p /etc/sysctl.d/90-routing-sysctl.conf
+
+Install frr Service and redhat init files
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo install -p -m 644 redhat/frr.service /usr/lib/systemd/system/frr.service
+    sudo install -p -m 755 redhat/frr.init /usr/lib/frr/frr
+
+Register the systemd files
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo systemctl preset frr.service
+
+Enable required frr at startup
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo systemctl enable frr
+
+Reboot or start FRR manually
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo systemctl start frr
index c13fb10ffc290da4e88d4b4a2615f3b056431a61..b99667124f825075cc7586769a85c5900c714359 100644 (file)
@@ -10,6 +10,7 @@ Building FRR
    building-frr-for-alpine
    building-frr-for-centos6
    building-frr-for-centos7
+   building-frr-for-centos8
    building-frr-for-debian8
    building-frr-for-debian9
    building-frr-for-fedora
index d3440461485c1fbe27e72ff7dec0dd342733774b..7bc6b6e2a80cc696bcef72362e3b863fd09c072e 100644 (file)
@@ -3,7 +3,7 @@
 Packaging Red Hat
 =================
 
-Tested on CentOS 6, CentOS 7 and Fedora 24.
+Tested on CentOS 6, CentOS 7, CentOS 8 and Fedora 24.
 
 1. On CentOS 6, refer to :ref:`building-centos6` for details on installing
    sufficiently up-to-date package versions to enable building FRR.
@@ -22,8 +22,26 @@ Tested on CentOS 6, CentOS 7 and Fedora 24.
 
       yum install systemd-devel
 
+   .. note::
+
+     For CentOS 8 you need to install ``platform-python-devel`` package
+     to provide ``/usr/bin/pathfix.py``::
+
+       yum install platform-python-devel
+
+   .. warning::
+
+     ``python2-sphinx`` is not shipped for CentOS 8.
+     Development reached the end of life for Python 2.
+     We need to install it using ```pip``::
+
+        pip2 install sphinx
+
    If ``yum`` is not present on your system, use ``dnf`` instead.
 
+   You should enable ``PowerTools`` repo if using CentOS 8 which
+   is disabled by default.
+
 3. Checkout FRR::
 
       git clone https://github.com/frrouting/frr.git frr