您的位置:首页 > 产品设计 > UI/UE

rpmbuild使用---创建nrpe,nagios-plugins软件包

2013-04-03 23:50 537 查看
nagios客户端一般需要nagios-plugins,nrpe,为了方便与puppet结合,所以最好把源码打包成软件包

spec文件内容如下:
nrpe.spec:

%define name nrpe
%define version 2.13
%define release 10
%define nsusr nagios
%define nsgrp nagios
%define nsport 5666

# Reserve option to override port setting with:
# rpm -ba|--rebuild --define 'nsport 5666'
%{?port:%define nsport %{port}}

# Macro that print mesages to syslog at package (un)install time
%define nnmmsg logger -t %{name}/rpm

Summary: Host/service/network monitoring agent for Nagios
URL: http://www.nagios.org Name: %{name}
Version: %{version}
Release: %{release}
License: GPL
Group: Application/System
Source0: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-buildroot
Prefix: %{_prefix}
Prefix: /usr/local/nagios
Requires: bash, grep, nagios-plugins,xinetd
PreReq: /usr/bin/logger, chkconfig, sh-utils, shadow-utils, sed, initscripts, fileutils, mktemp

%description
Nrpe is a system daemon that will execute various Nagios plugins
locally on behalf of a remote (monitoring) host that uses the
check_nrpe plugin.  Various plugins that can be executed by the
daemon are available at:

%prep
%setup -q

%pre
if [ $? -eq 2 ] ; then
/usr/sbin/groupadd %{nsgrp} || %nnmmsg Unexpected error adding group "%{nyysgrp}". Aborting install process.
fi

# Create `nagios' user on the system if necessary
if [ $? -eq 2 ] ; then
/usr/sbin/useradd -d %{nsgrp} -s /bin/nologin -c "%{nsusr}" -g %{nsgrp} %{nsusr} || \
%nnmmsg Unexpected error adding user "%{nsusr}". Aborting install process.
fi

%post
if [ "$1" = 1 ]; then
chown -R "%{nsusr}":"%{nsgrp}" %{_prefix}
chkconfig --add xinetd
chkconfig xinetd on
echo "nrpe         5666/tcp             #nrpe" >> /etc/services
/sbin/service xinetd restart > /dev/null 2>&1
fi

%preun
if [ "$1" = 0 ]; then
/bin/rm /etc/xinetd.d/nrpe -f
sed -i '/^nrpe.*/d' /etc/services
fi

%postun
if [ "$1" = 0 ]; then
/sbin/service xinetd restart >/dev/null 2>&1 || :
fi

%build
export PATH=$PATH:/usr/sbin
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" \
./configure \
--with-init-dir=/etc/init.d \
--with-nrpe-port=%{nsport} \
--with-nrpe-user=%{nsusr} \
--with-nrpe-group=%{nsgrp} \
--prefix=%{_prefix} \
--exec-prefix=%{_prefix}/bin \
--bindir=%{_prefix}/bin \
--sbindir=%{_prefix}/lib/nagios/cgi \
--libexecdir=%{_prefix}/libexec \
--datadir=%{_prefix}/share \
--sysconfdir=/etc/nagios \
--localstatedir=/var/log/nagios \
--enable-command-args

make all

%install
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
install -d -m 0755 ${RPM_BUILD_ROOT}/etc/xinetd.d
install -c -m 0755 -d ${RPM_BUILD_ROOT}/usr/local/nagios/libexec
install -c -m 0755 src/check_nrpe ${RPM_BUILD_ROOT}/usr/local/nagios/libexec
install -c -m 0755 -d ${RPM_BUILD_ROOT}/usr/local/nagios/bin
install -c -m 0755 src/nrpe ${RPM_BUILD_ROOT}/usr/local/nagios/bin
install -c -m 0755 -d ${RPM_BUILD_ROOT}/usr/local/nagios/etc
install -c -m 0755 sample-config/nrpe.cfg ${RPM_BUILD_ROOT}/usr/local/nagios/etc/nrpe.cfg
install -c -m 0644 sample-config/nrpe.xinetd ${RPM_BUILD_ROOT}/etc/xinetd.d/nrpe
sed -i 's#server_args.*#server_args     = -c %{_prefix}/etc/nrpe.cfg --inetd#' ${RPM_BUILD_ROOT}/etc/xinetd.d/nrpe
%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(755,root,root)
%{_prefix}/bin/nrpe
%defattr(644,root,root)
%config(noreplace) /usr/local/nagios/etc/*.cfg
%config(noreplace) /etc/xinetd.d/nrpe
%defattr(755,%{nsusr},%{nsgrp})
%doc Changelog LEGAL README
%doc %{_prefix}/libexec

%changelog
* Wed Apr 3 2013 xxx build - 2.13-10 <xxx@xxx.com>
- fixed nrpe.cfg relocation to sample-config

nagios-plugins.spec

# Macros
%define isaix %(test "`uname -s`" = "AIX" && echo "1" || echo "0")
%define islinux %(test "`uname -s`" = "Linux" && echo "1" || echo "0")
%define isredhatfamily %(test -f /etc/redhat-release && echo "1" || echo "0")

%if %{isaix}
%define _prefix /usr/local/nagios
#   %define _defaultdocdir %{_datadir}/doc
%else
%define _libexecdir %{_exec_prefix}/libexec
%endif
%define _sysconfdir /usr/local/nagios/etc

%define npusr nagios
%define nphome /home/nagios
%define npgrp nagios

Name: nagios-plugins
Version: 1.4.16
Release: 10
Summary: Host/service/network monitoring program plugins for Nagios

Group: Applications/System
License: GPL
URL: http://nagiosplug.sourceforge.net/ Source0: http://dl.sf.net/sourceforge/nagiosplug/%{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

%define npdir %{_builddir}/%{name}-%{version}

%if %{isaix}
Prefix: %{_prefix}
%else
Prefix: %{_prefix}/lib/nagios/plugins
%endif
Packager: Karl DeBisschop <kdebisschop@users.sourceforge.net>
Vendor: Nagios Plugin Development Group
Provides: nagios-plugins

%{!?custom:%global custom 0}
Obsoletes: nagios-plugins-custom nagios-plugins-extras

# Requires
%if %{isaix}
Requires:   fping
Requires:   gawk
Requires:   net-snmp
Requires:   net-snmp-perl
Requires:   net-snmp-utils
Requires:   openldap
Requires:   openssl
Requires:   perl
Requires:   python
Requires:   openssl
BuildRequires:  fping
BuildRequires:  gawk
BuildRequires:  net-snmp
BuildRequires:  net-snmp-perl
BuildRequires:  net-snmp-utils
BuildRequires:  openldap-devel
%endif
%if %{isredhatfamily}
Requires:   bind-utils
Requires:   coreutils
Requires:   fping
Requires:   gawk
Requires:   grep
Requires:   iputils
Requires:   mysql
Requires:   net-snmp-utils
Requires:   ntp
Requires:   openldap
Requires:   openssl
Requires:   openssh-clients
Requires:   perl
Requires:   postgresql-libs
Requires:   procps
Requires:   python
Requires:   samba-client
Requires:   shadow-utils
Requires:   traceroute
Requires:   /usr/bin/mailq
BuildRequires:  bind-utils
BuildRequires:  coreutils
BuildRequires:  iputils
BuildRequires:  mysql-devel
BuildRequires:  net-snmp-utils
BuildRequires:  net-tools
BuildRequires:  ntp
BuildRequires:  openldap-devel
BuildRequires:  openssh-clients
BuildRequires:  openssl-devel
BuildRequires:  postgresql-devel
BuildRequires:  procps
BuildRequires:  samba-client
BuildRequires:  /usr/bin/mailq
%endif

%description

Nagios is a program that will monitor hosts and services on your
network, and to email or page you when a problem arises or is
resolved. Nagios runs on a unix server as a background or daemon
process, intermittently running checks on various services that you
specify. The actual service checks are performed by separate "plugin"
programs which return the status of the checks to Nagios. This package
contains those plugins.

%prep
%setup -q

%build
%{?isaix: MAKE=gmake} ./configure \
--prefix=%{_prefix} \
--exec-prefix=%{_exec_prefix} \
--libexecdir=%{_libexecdir} \
--sysconfdir=%{_sysconfdir} \
--datadir=%{_datadir} \
#--with-cgiurl=/nagios/cgi-bin
ls -1 %{npdir}/plugins > %{npdir}/ls-plugins-before
ls -1 %{npdir}/plugins-root > %{npdir}/ls-plugins-root-before
ls -1 %{npdir}/plugins-scripts > %{npdir}/ls-plugins-scripts-before
make %{?_smp_mflags}
ls -1 %{npdir}/plugins > %{npdir}/ls-plugins-after
ls -1 %{npdir}/plugins-root > %{npdir}/ls-plugins-root-after
ls -1 %{npdir}/plugins-scripts > %{npdir}/ls-plugins-scripts-after
%pre
# Create `nagios' group on the system if necessary
%if %{isaix}
lsgroup %{npgrp} > /dev/null 2> /dev/null
if [ $? -eq 2 ] ; then
mkgroup %{npgrp} || %nnmmsg Unexpected error adding group "%{npgrp}". Aborting install process.
fi
%endif
%if %{islinux}
getent group %{npgrp} > /dev/null 2> /dev/null
if [ $? -ne 0 ] ; then
groupadd %{npgrp} || %nnmmsg Unexpected error adding group "%{npgrp}". Aborting install process.
fi
%endif

# Create `nagios' user on the system if necessary
%if %{isaix}
lsuser %{npusr} > /dev/null 2> /dev/null
if [ $? -eq 2 ] ; then
useradd -d %{nphome} -s /bin/nologin -c "%{npusr}" -g %{npgrp} %{npusr} || \
%nnmmsg Unexpected error adding user "%{npusr}". Aborting install process.
fi
%endif
%if %{islinux}
getent passwd %{npusr} > /dev/null 2> /dev/null
if [ $? -ne 0 ] ; then
useradd -r -d %{nphome} -s /bin/nologin -c "%{npusr}" -g %{npgrp} %{npusr} || \
%nnmmsg Unexpected error adding user "%{npusr}". Aborting install process.
fi
%endif

%post
chown -R "%{npusr}":"%{npgrp}" %{_prefix}

%install
rm -rf $RPM_BUILD_ROOT
make AM_INSTALL_PROGRAM_FLAGS="" DESTDIR=${RPM_BUILD_ROOT} install
build-aux/install-sh -c  -d ${RPM_BUILD_ROOT}%{_sysconfdir}
build-aux/install-sh -c  -m 664 command.cfg ${RPM_BUILD_ROOT}%{_sysconfdir}
%find_lang %{name}
echo "%defattr(755,%{npusr},%{npgrp})" >> %{name}.lang
comm -13 %{npdir}/ls-plugins-before %{npdir}/ls-plugins-after | egrep -v "\.o$|^\." | gawk -v libexecdir=%{_libexecdir} '{printf( "%s/%s\n", libexecdir, $0);}' >> %{name}.lang
echo "%defattr(755,root,root)" >> %{name}.lang
comm -13 %{npdir}/ls-plugins-root-before %{npdir}/ls-plugins-root-after | egrep -v "\.o$|^\." | gawk -v libexecdir=%{_libexecdir} '{printf( "%s/%s\n", libexecdir, $0);}' >> %{name}.lang
echo "%defattr(755,%{npusr},%{npgrp})" >> %{name}.lang
comm -13 %{npdir}/ls-plugins-scripts-before %{npdir}/ls-plugins-scripts-after | egrep -v "\.o$|^\." | gawk -v libexecdir=%{_libexecdir} '{printf( "%s/%s\n", libexecdir, $0);}' >> %{name}.lang
echo "%{_libexecdir}/utils.pm" >> %{name}.lang
echo "%{_libexecdir}/utils.sh" >> %{name}.lang

%clean
rm -rf $RPM_BUILD_ROOT

%files -f %{name}.lang
%doc CODING COPYING FAQ INSTALL LEGAL README REQUIREMENTS SUPPORT THANKS
%doc ChangeLog
%if ! %{isaix}
%{_datadir}/locale/de/LC_MESSAGES/nagios-plugins.mo
%{_datadir}/locale/fr/LC_MESSAGES/nagios-plugins.mo
/usr/local/nagios/libexec/check_ldaps
/usr/local/nagios/etc/command.cfg
%endif

%changelog
* Wed Apr 3 2013 xxx build   - 1.4.16-10 <xxx@xxx.com>
- Initial Package


本文出自 “TNT、运维之路” 博客,请务必保留此出处http://tntdba.blog.51cto.com/1199791/1170475
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: