NagiosPlugins

From T2B Wiki
Revision as of 12:28, 26 August 2015 by Maintenance script (talk | contribs) (Created page with " == HOWTO pack the nagios plugins into an RPM == PageOutline === Building the RPM === *The plugins are gathered in an RPM for easy distribution over all nagios mo...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

HOWTO pack the nagios plugins into an RPM

PageOutline


Building the RPM

  • The plugins are gathered in an RPM for easy distribution over all nagios monitored hosts.
  • The RPM is build on egon.
  • A script can create the rpm
    • Execute as follows
cd /root/nagiosPlugins/
version=1.10
./makeRPM.sh $version
    • It will make $version rpm of the directory nagios-plugins-dedicated
    • therefore, all the executables you need to distribute, also need to be place into /root/nagiosPlugins/nagios-plugins-dedicated
    • all will be distributed to /usr/lib64/nagios/plugins/
    • Copy the file to ccq3, via ccq:
scp /root/rpmbuild/RPMS/noarch/nagios-plugins-dedicated-$version-1.noarch.rpm ccq:/root/Joris
  • Here are the commands to be executed to make the rpm w/o the script
    • First a tar ball is made containing all the scripts
cd /root/nagiosPlugins
tar -cjf nagios-plugins-dedicated-A.B.tar.gz nagios-plugins-dedicated-A.B/
    • The building of the RPM happens as follows
cd /root/rpmbuild
cp ../nagiosPlugins/nagios-plugins-dedicated-A.B.tar.gz SOURCES/
rpmbuild -ba SPECS/nagios-plugins-dedicated.spec 
    • IMPORTANT: don't forget to adapt the spec file to rpm-ize the correct version A.B


Uploading the RPM to the BEgrid repo

  • As a final step you have to upload the rpm to the begrid repo like this
    • the directory for uploading on ccq3:
/opt/CB5/tmp/src/begrid/cb-client/cb-client-swrep/rpm-nagios
scp ccq:/root/Joris/nagios-plugins-dedicated-A.B-1.noarch.rpm .
    • The command executed to upload to the repo:
./swrep.py --debug --mode=up --plat x86_64_sl5_5X,/sl5/sl54/updates --dir=/opt/CB5/tmp/src/begrid/cb-client/cb-client-swrep/rpm-nagios/
  • Don't forget to add the correct line to the repo template file and include somewhere this rpm so that it gets installed on the machine


Tutorial to build an rpm

  • The aim of this section is to provide a minimal working example to build your own RPM
  • It is a mixture of the tutorials listed in the links section. Please have a closer look there on the meaning of the section (with a %) in the file as well on the directory structure of the rpm package.
  • For this example I have put the directory tree in a specific directory and added a line in .rpmmacros to point to it.
/root/rpmbuild/
cat ~/.rpmmacros 
%_topdir /root/rpmbuild/
  • It should be noted that RPMs should not be built with root privileges.
  • Example spec file located in the SPEC directory:
Summary: a test for helloworld
Name: testhello
License: GPL
Version: 1.1
Source: test.tar.gz
Release: 1
Group: Applications
#BuildRoot: /tmp/rpm-buildroot-%{name}-%{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildArch: noarch"

%description
This is a description for the testhello

%prep
echo "1." $PWD
ls -l

%setup
echo "2." $PWD
ls -l

%build
echo "3." $PWD
ls -l
gcc -o test test.c

echo "rm -rf %{buildroot}"
rm -rf %{buildroot}
echo "mkdir -p %{buildroot}%{_bindir}"
mkdir -p %{buildroot}%{_bindir}
echo "cp test.c %{buildroot}%{_bindir}/test.c"
cp test.c %{buildroot}%{_bindir}/test.c

%clean
rm -rf %{buildroot}

##or alternatively 
##make test

#echo "%{buildroot}"
#ls -l /var/tmp
#ls -l %{buildroot}
#echo %{_bindir}

%files
%defattr(-,root,root,-)
%{_bindir}/test.c

%changelog

*Thu Apr 7 2011 Joris Maes <jmmaes@cern.ch> 1.1-1
- initial package for testing

  • Be careful to create a tar ball with a top directory. I.e. the test.c is put in a directory called testhello-1.1 which then tarred
tar cvf test.tar.gz testhello-1.1/
  • To finally build the rpm execute the following line:
rpmbuild -ba  testhello.spec


Template:TracNotice