X-Git-Url: http://git.onelab.eu/?p=monitor.git;a=blobdiff_plain;f=Monitor.spec;h=d3bac18d7ae99a9619501f245a32ceb798d725d3;hp=fd001b13b2d886021c441e5a653111c9ee656daa;hb=bb21b17d3cc4c498a029fb68e016f447870e642d;hpb=4c04584dc1bf4c03901ea5d9dbdf2a5bc960ed02 diff --git a/Monitor.spec b/Monitor.spec index fd001b1..d3bac18 100644 --- a/Monitor.spec +++ b/Monitor.spec @@ -5,8 +5,9 @@ %define url $URL: svn+ssh://svn.planet-lab.org/svn/monitor/trunk/monitor.spec $ %define name monitor +# keep this version in sync with monitor/monitor_version.py %define version 3.0 -%define taglevel 17 +%define taglevel 28 %define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}} %global python_sitearch %( python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)" ) @@ -24,6 +25,7 @@ Packager: PlanetLab Central Distribution: PlanetLab %{plrelease} URL: %(echo %{url} | cut -d ' ' -f 2) + Summary: Monitor account initialization for the root image. Group: Applications/System @@ -54,7 +56,6 @@ Group: Applications/System Requires: python Requires: python-setuptools-devel Requires: python-peak-util-extremes -Requires: TurboGears Requires: compat-libstdc++-296 Requires: openssh-clients @@ -62,6 +63,7 @@ Requires: perl-libwww-perl Requires: perl-IO-Socket-SSL Requires: MySQL-python Requires: nmap +Requires: nc Requires: rt3 Requires: plewww-plekit @@ -81,41 +83,15 @@ Group: Applications/System Requires: python Requires: monitor-server-deps -Requires: monitor-pcucontrol Requires: PLCWWW >= 4.2 Requires: bootcd-%{pldistro}-%{_arch} >= 4.2 +Requires: pcucontrol %description server The server side include all python modules and scripts needed to fully operation, track, and interact with any third-party monitoring software, such as Zabbix DB. -######################################## RT setup - -%package rt -summary: Dependencies and default configuration for RT3 -group: applications/system -Requires: monitor-server -Requires: rt3 -Requires: rt3-mailgate - -%description rt -RT3 is a ticket tracking system. This RPM integrates RT into the MyOps -framework, and MyPLC in general. - -######################################## PCU Control - -%package pcucontrol -summary: pcu controls for monitor and plcapi -group: applications/system -requires: python -requires: OpenIPMI-tools - -%description pcucontrol -both monitor and the plcapi use a set of common commands to reboot machines -using their external or internal pcus. this package is a library of several -supported models. - ####################################### RunlevelAgent %package runlevelagent summary: the RunlevelAgent that reports node runlevels @@ -130,19 +106,13 @@ mode to actively report the observed runlevel to PLC and update the %prep %setup -q -%build -# NOTE: the build uses g++ cmdamt/ -# NOTE: TMPDIR is needed here b/c the tmpfs of the build vserver is too small. -cd pcucontrol/models/intelamt -export TMPDIR=$PWD/tmp -make -cd .. - %install rm -rf $RPM_BUILD_ROOT #################### CLIENT -install -D -m 755 monitor-client.init $RPM_BUILD_ROOT/%{_initrddir}/monitor -install -D -m 644 monitor.cron $RPM_BUILD_ROOT/%{_sysconfdir}/cron.d/monitor +#install -D -m 755 monitor-client.init $RPM_BUILD_ROOT/%{_initrddir}/monitor +#install -D -m 644 monitor.cron $RPM_BUILD_ROOT/%{_sysconfdir}/cron.d/monitor +install -D -m 755 tools/timeout.pl $RPM_BUILD_ROOT/usr/bin/timeout.pl + #################### SERVER install -d $RPM_BUILD_ROOT/usr/share/%{name} @@ -150,43 +120,39 @@ install -d $RPM_BUILD_ROOT/data/var/lib/%{name} install -d $RPM_BUILD_ROOT/data/var/lib/%{name}/archive-pdb install -d $RPM_BUILD_ROOT/var/lib/%{name} install -d $RPM_BUILD_ROOT/var/lib/%{name}/archive-pdb -install -d $RPM_BUILD_ROOT/var/www/cgi-bin/monitor/ install -d $RPM_BUILD_ROOT/var/www/html/monitorlog/ +install -d $RPM_BUILD_ROOT/etc/httpd/conf.d/ +install -d $RPM_BUILD_ROOT/%{python_sitearch}/monitor +# plc.d scripts install -D -m 644 monitor.functions $RPM_BUILD_ROOT/%{_sysconfdir}/plc.d/monitor.functions install -D -m 755 monitor-server.init $RPM_BUILD_ROOT/%{_sysconfdir}/plc.d/monitor install -D -m 755 zabbix/monitor-zabbix.init $RPM_BUILD_ROOT/%{_sysconfdir}/plc.d/zabbix -install -D -m 755 rt3/monitor-rt3.init $RPM_BUILD_ROOT/%{_sysconfdir}/plc.d/rt3 -echo " * Installing core scripts" -rsync -a --exclude www --exclude archive-pdb --exclude .svn --exclude CVS \ - ./ $RPM_BUILD_ROOT/usr/share/%{name}/ +# cron job for automated polling +install -D -m 644 monitor-server.cron $RPM_BUILD_ROOT/%{_sysconfdir}/cron.d/monitor-server.cron + +# apache configuration +install -D -m 644 web/monitorweb-httpd.conf $RPM_BUILD_ROOT/etc/httpd/conf.d/ -echo " * Installing web pages" -rsync -a www/ $RPM_BUILD_ROOT/var/www/cgi-bin/monitor/ -rsync -a log/ $RPM_BUILD_ROOT/var/www/html/monitorlog/ +# we'll install monitor in site-packages install rest to +# /usr/share/monitor +rsync -a --exclude archive-pdb --exclude .svn --exclude CVS \ + --exclude monitor/ \ + ./ $RPM_BUILD_ROOT/usr/share/%{name}/ -echo " * Installing cron job for automated polling" -install -D -m 644 monitor-server.cron $RPM_BUILD_ROOT/%{_sysconfdir}/cron.d/monitor-server.cron -echo " * TODO: Setting up Monitor account in local MyPLC" -# TODO: +# install monitor python package +rsync -a --exclude .svn ./monitor/ $RPM_BUILD_ROOT/%{python_sitearch}/monitor/ -install -d $RPM_BUILD_ROOT/%{python_sitearch}/monitor -install -d -D -m 755 monitor $RPM_BUILD_ROOT/%{python_sitearch}/monitor -# TODO: need a much better way to do this. -rsync -a monitor/ $RPM_BUILD_ROOT/%{python_sitearch}/monitor/ -#for file in __init__.py database.py config.py ; do -# install -D -m 644 monitor/$file $RPM_BUILD_ROOT/%{python_sitearch}/monitor/$file -#done -rsync -a pcucontrol/ $RPM_BUILD_ROOT/%{python_sitearch}/pcucontrol/ +# install third-party module to site-packages install -D -m 755 threadpool.py $RPM_BUILD_ROOT/%{python_sitearch}/threadpool.py -touch $RPM_BUILD_ROOT/var/www/cgi-bin/monitor/monitorconfig.php -chmod 777 $RPM_BUILD_ROOT/var/www/cgi-bin/monitor/monitorconfig.php +# TODO: +echo " * TODO: Setting up Monitor account in local MyPLC" + +#touch $RPM_BUILD_ROOT/var/www/cgi-bin/monitor/monitorconfig.php +#chmod 777 $RPM_BUILD_ROOT/var/www/cgi-bin/monitor/monitorconfig.php -install -D -m 644 rt3/rt.cron $RPM_BUILD_ROOT/%{_sysconfdir}/cron.d/rt.cron -chmod 755 $RPM_BUILD_ROOT/usr/share/%{name}/rt3/adduserstort.pl -chmod 755 $RPM_BUILD_ROOT/usr/share/%{name}/rt3/rtcron.d/*.sh #install -D -m 755 monitor-default.conf $RPM_BUILD_ROOT/etc/monitor.conf #cp $RPM_BUILD_ROOT/usr/share/%{name}/monitorconfig-default.py $RPM_BUILD_ROOT/usr/share/%{name}/monitorconfig.py @@ -210,78 +176,82 @@ rm -rf $RPM_BUILD_ROOT #%config /etc/monitor.conf /usr/share/%{name} /var/lib/%{name} -/var/www/cgi-bin/monitor +#/var/www/cgi-bin/monitor %{_sysconfdir}/cron.d/monitor-server.cron -%{python_sitearch}/threadpool.py -%{python_sitearch}/threadpool.pyc -%{python_sitearch}/threadpool.pyo -%{python_sitearch}/monitor %{_sysconfdir}/plc.d/monitor %{_sysconfdir}/plc.d/monitor.functions %{_sysconfdir}/plc.d/zabbix +%{_sysconfdir}/httpd/conf.d +%{python_sitearch} %files client %defattr(-,root,root) -%{_initrddir}/monitor -%{_sysconfdir}/cron.d/monitor - -%files rt -%defattr(-,root,root) -/usr/share/%{name}/rt3 -%{_sysconfdir}/plc.d/rt3 -%{_sysconfdir}/cron.d/rt.cron - -%files pcucontrol -%{python_sitearch}/pcucontrol +#%{_initrddir}/monitor +#%{_sysconfdir}/cron.d/monitor +/usr/bin/timeout.pl %files runlevelagent -/usr/bin/RunlevelAgent.py -/usr/bin/RunlevelAgent.pyo -/usr/bin/RunlevelAgent.pyc +/usr/bin/RunlevelAgent.py* /%{_initrddir}/monitor-runlevelagent %post server-deps -#easy_install --build-directory /var/tmp -UZ ElementTree -##easy_install --build-directory /var/tmp -UZ http://pypi.python.org/packages/2.5/E/Extremes/Extremes-1.1-py2.5.egg - - -## TODO: something is bad wrong with this approach. -easy_install --build-directory /var/tmp -UZ http://files.turbogears.org/eggs/TurboGears-1.0.7-py2.5.egg -easy_install --build-directory /var/tmp -UZ http://pypi.python.org/packages/source/S/SQLAlchemy/SQLAlchemy-0.5.3.tar.gz -easy_install --build-directory /var/tmp -UZ Elixir +# +# TODO: depend on distribution packages where feasible. +# +# it would be better to be able to depend on the distribution's +# packages for these additional python modules, but packages provided +# by fedora 8 (our current deployment) doesn't match the version +# requirements. +export TMPDIR=/var/tmp/ +easy_install -UZ http://files.turbogears.org/eggs/TurboGears-1.0.7-py2.5.egg +easy_install -UZ http://pypi.python.org/packages/source/S/SQLAlchemy/SQLAlchemy-0.5.3.tar.gz +easy_install -UZ Elixir # crazy openssl libs for racadm binary ln -s /lib/libssl.so.0.9.8b /usr/lib/libssl.so.2 -mkdir /usr/share/monitor/.ssh -chmod 700 /usr/share/monitor/.ssh +mkdir %{_datadir}/%{name}/.ssh +chmod 700 %{_datadir}/%{name}/.ssh if grep 'pam_loginuid.so' /etc/pam.d/crond ; then sed -i -e 's/^session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/crond fi -# NOTE: add the default xml stuff if it's not already in the default xml config. -if ! grep '' /etc/planetlab/default_config.xml ; then - sed -i 's|| \n Monitor Service Configuration\n Monitor\n \n \n Enabled\n true\n Enable on this machine.\n \n \n \n \n \n \n \n \n Hostname\n pl-virtual-06.cs.princeton.edu\n The fully qualified hostname.\n \n \n IP Address\n \n The IP address of the monitor server.\n \n \n \n |' /etc/planetlab/default_config.xml + +# NOTE: enable monitor by default, since we're installing it. +if ! plc-config --category plc_monitor --variable enabled ; then + plc-config --category plc_monitor --variable enabled --value true \ + --save /etc/planetlab/configs/site.xml /etc/planetlab/configs/site.xml fi -if ! grep '' /etc/planetlab/default_config.xml ; then - sed -i 's|| \n RT Configuration\n RT\n \n \n Enabled\n false\n Enable on this machine.\n \n \n Hostname\n localhost.localdomain\n The fully qualified hostname.\n \n \n IP Address\n \n The IP address of the RT server.\n \n \n \n |' /etc/planetlab/default_config.xml +if ! plc-config --category plc_monitor --variable from_email ; then + plc-config --category plc_monitor --variable from_email --value monitor@localhost.localdomain \ + --save /etc/planetlab/configs/site.xml /etc/planetlab/configs/site.xml fi -if ! grep '' /etc/planetlab/default_config.xml ; then - sed -i 's|| \n Zabbix Configuration\n Zabbix\n \n \n Enabled\n false\n Enable on this machine.\n \n \n Hostname\n localhost.localdomain\n The fully qualified hostname.\n \n \n IP Address\n \n The IP address of the Zabbix server.\n \n \n \n |' /etc/planetlab/default_config.xml +if ! plc-config --category plc_monitor --variable cc_email ; then + plc-config --category plc_monitor --variable cc_email --value monitor@localhost.localdomain \ + --save /etc/planetlab/configs/site.xml /etc/planetlab/configs/site.xml +fi +if ! plc-config --category plc_monitor --variable rt_queue ; then + plc-config --category plc_monitor --variable rt_queue --value support \ + --save /etc/planetlab/configs/site.xml /etc/planetlab/configs/site.xml fi -# NOTE: enable monitor by default, since we're installing it. -plc-config --save /etc/planetlab/default_config.xml \ - --category plc_monitor --variable enabled --value true - -%post rt -plc-config --save /etc/planetlab/default_config.xml \ - --category plc_rt --variable enabled --value true +# zabbix: +if ! plc-config --category plc_zabbix --variable enabled ; then + plc-config --category plc_zabbix --variable enabled --value false \ + --save /etc/planetlab/configs/site.xml /etc/planetlab/configs/site.xml +fi +if ! plc-config --category plc_zabbix --variable host ; then + plc-config --category plc_zabbix --variable host --value localhost.localdomain \ + --save /etc/planetlab/configs/site.xml /etc/planetlab/configs/site.xml +fi +if ! plc-config --category plc_zabbix --variable ip ; then + plc-config --category plc_zabbix --variable ip --value "" \ + --save /etc/planetlab/configs/site.xml /etc/planetlab/configs/site.xml +fi %post server # TODO: this will be nice when we have a web-based service running., such as # an API server or so on. # TODO: create real monitorconfig.py from monitorconfig-default.py -# TODO: create monitorconfig.php using phpconfig.py # TODO: create symlink in /var/lib/monitor for chroot environments # TODO: update the content of automate_pl03.sh # TODO: Use the installed version of bootcd to create custom boot images. ( or, use the api now). @@ -308,6 +278,68 @@ fi %changelog +* Thu Dec 17 2009 Baris Metin - Monitor-3.0-28 +- do not need buildrequires. a new tag to fix centos builds + +* Thu Dec 17 2009 Baris Metin - Monitor-3.0-27 +- fix rpm build issues + +* Wed Dec 16 2009 Baris Metin - Monitor-3.0-26 +- to many changes, but mostly moved stuff around. there are some small fixes here and there. + +* Fri Nov 20 2009 Stephen Soltesz - Monitor-3.0-25 +- add option for site status to include both node & pcu status +- improve ticket handling +- template gadget.xml for a site-specific google-gadget summary + +* Thu Oct 22 2009 Baris Metin - Monitor-3.0-24 +- - add install_date + +* Mon Oct 19 2009 Baris Metin - Monitor-3.0-23 +- - remove monitor-client.cron +- - remove unused monitor-client init script +- - fix UP/DOWN summary on nodes page. +- - make node page display all nodes by default +- - add boot_server field +- - add myops_ssh_key to the keychain +- - use ext_consortium_id to distinguish pending sites. + +* Fri Oct 09 2009 Baris Metin - Monitor-3.0-22 +- show/hide advance query form. + +* Thu Sep 24 2009 Stephen Soltesz - Monitor-3.0-21 +- fixed pause_penalty bug. +- fixed IPAL pcucontrol bug +- fixed bootman tunnel setup bug (occurred in rare cases) +- deprecated pcuview +- added BootmanSequenceRecords to separate config data from source code +- added get/setBootmanSequence(s) to xmlrpc API + +* Fri Sep 04 2009 Stephen Soltesz - Monitor-3.0-20 +- Major Features: +- added bm log collection and optional integration with BootManager's log Upload() +- added iptables_status +- expanded advanced query +- added differentiated bootmanager_restore actions so that actionsummary displays +- counts for each kind of bootmanager action +- added pcuerror notices (for mis-configurations) in addition to pcufailed notices +- added plain-text options for query page by adding tg_format=plain to URL +- fixed cross-module reference that prevented pcucontrol for working with RebootNodeWithPCU() api call. +- fixed a bug in determining whether comon's dir was running on a node + +* Mon Aug 17 2009 Stephen Soltesz - Monitor-3.0-19 +- Major increment - +- adds multiple features and web changes +- adds new fields to db +- improved layout +- general improvements otherwise + +* Sun Jun 28 2009 Stephen Soltesz - Monitor-3.0-18 +- bug fixes. +- improved templates and views +- cleaned controller code for web +- added IPMI requirement to pcucontrol package. + * Thu Jun 18 2009 Stephen Soltesz - Monitor-3.0-17 - added bootmanager log links - addressed root cause of IntegrityErrors ; big deal