X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=Monitor.spec;h=941419da18460a87ab8fd9c9e3c9b5cdb2122841;hb=5684d125af2ff554c960c402447cf871396108c6;hp=c5578a640beeeb29e866246d8d4a9225cb5e5995;hpb=5c41a475f7d198274e46f2c5e6f033f06794288b;p=monitor.git diff --git a/Monitor.spec b/Monitor.spec index c5578a6..941419d 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 15 +%define taglevel 32 %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,27 +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: bootcd-%{pldistro}-%{fcdistro}-%{_arch} >= 5.0 +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. -######################################## PCU Control - -%package pcucontrol -summary: pcu controls for monitor and plcapi -group: applications/system -requires: python - -%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 @@ -116,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} @@ -136,36 +120,38 @@ 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 -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 -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/ +# apache configuration +install -D -m 644 web/monitorweb-httpd.conf $RPM_BUILD_ROOT/etc/httpd/conf.d/ -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: +# 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}/ -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 monitor python package +rsync -a --exclude .svn ./monitor/ $RPM_BUILD_ROOT/%{python_sitearch}/monitor/ + +# 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 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 @@ -190,60 +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 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 - -# 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 - -## 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 ! 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 ! 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 +# 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). @@ -264,8 +272,103 @@ chkconfig monitor on %post runlevelagent chkconfig --add monitor-runlevelagent chkconfig monitor-runlevelagent on +if [ "$PL_BOOTCD" != "1" ] ; then + service monitor-runlevelagent restart +fi + %changelog +* Tue Apr 20 2010 Thierry Parmentelat - Monitor-3.0-32 +- from this version, suitable for 5.0 +- requires bootcd with the new 5.0 naming style 3-part nodefamily + +* Mon Apr 12 2010 Stephen Soltesz - Monitor-3.0-31 +- added fix for node delete/add causing conflicts in MyOps db. +- added statistics scripts + +* Thu Jan 21 2010 Talip Baris Metin - Monitor-3.0-30 +- * fix paths for automate script + +* Tue Dec 22 2009 Baris Metin - Monitor-3.0-29 +- - separate pcucontrol as an svn module +- - restore easy_instal back into post install stage of server-deps +- - template imporovements for web interface + +* 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 +- adjusted templates to accomodate fix for IntegrityErrors +- added session.flush() to bootman.py to write out ActionsRecords +- fixed policy to either pause penalties or apply them ; not both. + +-* Wed Jun 17 2009 Stephen Soltesz - Monitor-3.0-16 +-- Added Rpyc from 1.0 branch. +-- add pcuhistory +-- add setup-agent for password protected keys. +-- other minor improvements. + * Wed Jun 17 2009 Stephen Soltesz - Monitor-3.0-15 - automate install - auto-close tickets