仙台の山奥で自転車に乗ったり転んだり

愛車の GIOS でサイクリングしたりポタリングしたり、それをブログに記録してみたり。ロードバイクや自転車や坂のことを書いてみたり。ときたまプログラムのことを忘れないようにメモってみたり。

PHPの依存関係を調整してCactiをインストール

RPMforgeリポジトリをつかえばCactiのパッケージをyumから管理できるけど、NagiosのパッケージがPHP5.1依存していて、RPMforgeリポジトリからインストール済みのPHP5.3パッケージと干渉してしまう。
Cactiをインストールするときの依存関係チェック以外では問題なさそうなので、CactiRPMをRPMforgeからダウンロードして依存関係を無視してインストールする。

モニタリングするサーバにSNMPデーモンをインストールしておく。

#!/bin/sh

set -e
set -u

CONF_FILE="/etc/snmp/snmpd.conf"

yum -q -y install yum rrdtool net-snmp net-snmp-utils

mv ${CONF_FILE} "${CONF_FILE}.org"
cp "${CONF_FILE}.org" ${CONF_FILE}

sed -i \
    -e 's/^com2sec/#com2sec/gi' \
    -e 's/^group/#group/gi' \
    -e 's/^view/#view/gi' \
    -e 's/^access/#access/gi' \
    -e 's/^syslocation/#syslocation/gi' \
    -e 's/^syscontact/#syscontact/gi' \
    "${CONF_FILE}"

echo    "" >> $CONF_FILE
echo -e "com2sec\tlocalnet\tlocalhost\tlocal"  >> $CONF_FILE
echo -e "com2sec\tprivatenet\t192.168.0.0/16\tprivate" >> $CONF_FILE
echo    "" >> $CONF_FILE
echo -e "group\tLocalNetworkGroup\tusm\tlocalnet" >> $CONF_FILE
echo -e "group\tLocalNetworkGroup\tv2c\tlocalnet" >> $CONF_FILE
echo -e "group\tLocalNetworkGroup\tv1\tlocalnet" >> $CONF_FILE
echo -e "group\tLocalNetworkGroup\tusm\tprivatenet" >> $CONF_FILE
echo -e "group\tLocalNetworkGroup\tv2c\tprivatenet" >> $CONF_FILE
echo -e "group\tLocalNetworkGroup\tv1\tprivatenet" >> $CONF_FILE
echo    "" >> $CONF_FILE
echo -e "view\tview_all\tincluded\t.1" >> $CONF_FILE
echo    "" >> $CONF_FILE
echo -e "access\tLocalNetworkGroup\t\"\"\tany\tnoauth\texact\tview_all\tnone\tnone" >> $CONF_FILE
echo "" >> $CONF_FILE
echo "syslocation CentOS" >> $CONF_FILE
echo "syscontact company admin@example.com" >> $CONF_FILE
echo "" >> $CONF_FILE

/sbin/chkconfig --level 2345 snmpd on
/etc/rc.d/init.d/snmpd start

echo "done."

必要なパッケージをyumでインストールしてから、CactiのパッケージをRPMコマンドから依存関係無視でインストールする。

#!/bin/sh

set -e
set -u

TMPDIR=/tmp/rpm-cacti.$$

trap "exit 1" HUP INT PIPE QUIT TERM
trap "rm -f ${TMPDIR}/*; rmdir ${TMPDIR}" EXIT

yum -q -y install net-snmp net-snmp-utils
yum --enablerepo=rpmforge -q -y install rrdtool

mkdir -p $TMPDIR

yumdownloader --enablerepo=rpmforge --destdir=${TMPDIR} cacti

for RPM in `ls ${TMPDIR}/*.rpm`
do
    rpm -ivh --nodeps ${RPM}
    rm -f ${RPM}
done

rmdir ${TMPDIR}

mysql -u $MYSQLUSER -p $MYSQLPASS -e "CREATE DATABASE cacti;"
mysql -u $MYSQLUSER -p $MYSQLPASS -e "GRANT ALL ON cacti.* TO cacti@'192.168.0.0/255.255.0.0' IDENTIFIED BY 'password';"
mysql -u $MYSQLUSER -p $MYSQLPASS -e "FLUSH PRIVILEGES;"
mysql -u $MYSQLUSER -p $MYSQLPASS -D cacti < /var/www/cacti/cacti.sql"


echo "done."