Главная > CentOS > Установка Network’s Operation Centers (NOC) на CentOS 6.4

Установка Network’s Operation Centers (NOC) на CentOS 6.4

В продолжение поста Установка Network Documentation Tool добрался до установки NOC.

Устанавливать я буду на чистый CentOS 6.4 minimal. Саму установку я описывать не буду.
Для начала подключаем репозитории и обновляем ОС

rpm -Uvh http://download3.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm -Uvh http://yum.postgresql.org/9.2/redhat/rhel-6-x86_64/pgdg-centos92-9.2-6.noarch.rpm
rpm -Uvh http://pkgs.repoforge.org/mercurial/mercurial-2.2.2-1.el6.rfx.x86_64.rpm
/etc/yum.repos.d/CentOS-Base.repo, [base] and [updates] sections
exclude=postgresql*
 
/etc/yum.repos.d/10gen.repo
[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0
enabled=1

Обновляем систему и затем перезагружаемся

yum update


Я отключил у себя файервол

service iptables stop
chkconfig iptables off
 
vi /etc/selinux/config
SELINUX=disabled

Устанавливаем необходимые компоненты.
Проверим установлен ли питон и версию

python --version
Python 2.6.6
Весия должна быть не ниже 2.5 (рекомендуется 2.7). С питоном 3 не совместим.
yum install postgresql92-server mongo-10gen httpd mongo-10gen-server wget gcc postgis2_92 fping make
 
service postgresql-9.2 initdb
service postgresql-9.2 start
chkconfig postgresql-9.2 on

Создаем базу PostgreSQL

# su - postgres
-bash-4.1$ psql
postgres=# CREATE USER noc SUPERUSER ENCRYPTED PASSWORD 'noc';
postgres=# CREATE DATABASE noc ENCODING 'UTF8' OWNER noc;
postgres=# \q
-bash-4.1$ psql -f /usr/pgsql-9.2/share/contrib/postgis-2.0/postgis.sql -d noc
service postgresql-9.2 restart

Добавляем в переменную путь к исполняемым файлам postgresql

export PATH=/usr/pgsql-9.2/bin:$PATH

Здесь будет находится база
/var/lib/pgsql/9.2/data

Запускаем MongoDB, создаем пользователя.

service mongod start
chkconfig mongod on
# mongo
MongoDB shell version: 2.4.6
connecting to: test
> use noc
> db.addUser("noc", "noc")
> db.auth("noc","noc")
> exit

Запускаем сервер Apache

service httpd start
chkconfig httpd on

All noc files except /opt/noc/local directory must be owned by root.
All noc daemons are running from noc user. Create noc user and group before continuing installation:
Создаем пользователя

groupadd noc
useradd -g noc -s /bin/sh -d /home/noc noc

Устанавливаем дополнительные компоненты

yum install python-pip python-devel libevent-dev python-netifaces python-psycopg2 python-cjson gmpy libsmi python-django pysnmp python-pyasn1 python-flup python-crypto python-django-tagging libpqxx-devel libxml2-devel libxslt-devel

Скачиваем исходники в папку /opt/noc/

hg clone http://bitbucket.org/nocproject/noc /opt/noc

И устанавливаем

cd /opt/noc
python setup.py install

Добавляем алиас для pip

echo 'alias pip="/usr/bin/pip-python"' >> $HOME/.bashrc
. $HOME/.bashrc

Устанавливаем виртуальное окружение

pip install virtualenv
Инициализируем
virtualenv --no-site-packages /opt/noc

Копируем конфигурационные файлы

cp /opt/noc/etc/upgrade.defaults /opt/noc/etc/upgrade.conf
cp /opt/noc/etc/noc-activator.defaults /opt/noc/etc/noc-activator.conf
cp /opt/noc/etc/noc-classifier.defaults /opt/noc/etc/noc-classifier.conf
cp /opt/noc/etc/noc-correlator.defaults /opt/noc/etc/noc-correlator.conf
cp /opt/noc/etc/noc.defaults /opt/noc/etc/noc.conf
cp /opt/noc/etc/noc-discovery.defaults /opt/noc/etc/noc-discovery.conf
cp /opt/noc/etc/noc-launcher.defaults /opt/noc/etc/noc-launcher.conf
cp /opt/noc/etc/noc-notifier.defaults /opt/noc/etc/noc-notifier.conf
cp /opt/noc/etc/noc-pmprobe.defaults /opt/noc/etc/noc-pmprobe.conf
cp /opt/noc/etc/noc-pmwriter.defaults /opt/noc/etc/noc-pmwriter.conf
cp /opt/noc/etc/noc-sae.defaults /opt/noc/etc/noc-sae.conf
cp /opt/noc/etc/noc-scheduler.defaults /opt/noc/etc/noc-scheduler.conf
cp /opt/noc/etc/noc-stomp.defaults /opt/noc/etc/noc-stomp.conf
cp /opt/noc/etc/noc-sync.defaults /opt/noc/etc/noc-sync.conf
cp /opt/noc/etc/noc-web.defaults /opt/noc/etc/noc-web.conf
cp /opt/noc/etc/noc-wf.defaults /opt/noc/etc/noc-wf.conf

Необходимо изменить права доступа на каталог etc/ssh, иначе ключи не сгенерируются.

chmod -R 777 /opt/noc/etc/ssh
chown noc:root -R /opt/noc/.*
chmod 777 -R /opt/noc/.*
chmod 777 -R /opt/noc/*

Создаем директорию для хранения репозитория конфигураций

mkdir -p /var/noc/log
mkdir -p /var/noc/repo
chmod 777 -R /var/noc/*
chown noc:noc -R /var/noc/
mkdir -p /var/noc/repo/config
cd /var/noc/repo/config
hg init
chown -R noc:noc /var/noc/repo
chmod -R 777 /var/noc/repo/
echo "[ui]" > /opt/noc/.hgrc
echo "username = NOC <vng@tnhk.ru>" >> /opt/noc/.hgrc

настраиваем noc-activator:

vi /opt/noc/etc/noc-activator.conf
Изменяем name=unknown на name=default в secret= указываем желаемый пароль (любой)

Изменяем конфигурацию ланчера:

vi /opt/noc/etc/noc-launcher.conf

В сексии [noc-activator] изменяем user на root.

Проверяем пути

vi /opt/noc/etc/noc.conf
[path]
# Directory to store database and repo backups
backup_dir = /var/backup
# Paths to utilities
ssh = /usr/bin/ssh
rsync = /usr/bin/rsync
pg_dump = /usr/pgsql-9.2/bin/pg_dump
tar = /bin/tar
gzip = /usr/bin/gzip
smidump = /usr/bin/smidump
smilint = /usr/bin/smilint
dig = /usr/bin/dig
gpg = /usr/bin/gpg
mongodump = /usr/bin/mongodump
pg_config = /usr/pgsql-9.2/bin/pg_config

Обновляем

./scripts/upgrade

Переключаемся на пользователя noc

su -s /bin/bash - noc
export PATH=/usr/pgsql-9.2/bin:$PATH
переходим в директорию с NOC
cd /opt/noc
./scripts/upgrade

после того как увидите заветное update complete
можно считать что установка почти закончена.
произведем тестовый запуск (запускать под пользователем NOC!!!)

./noc runserver 0.0.0.0:8000

вывод должен быть таким:
noc@noc ~ $ ./noc runserver 0.0.0.0:8000
2012-03-01 13:48:20,046 Running NOC 0.7(3) webserver
2012-03-01 13:48:20,046 Loading site
2012-03-01 13:48:20,046 Listening 0.0.0.0:8000
2012-03-01 13:48:20,049 Running child 7113
2012-03-01 13:48:20,125 Using JSON library: django_simplejson
2012-03-01 13:48:20,224 Loading PeriodicRegistry
2012-03-01 13:48:20,231 Loading DownloaderRegistry
2012-03-01 13:48:20,392 SSH: Using gmpy
2012-03-01 13:48:20,460 Loading ProfileRegistry
2012-03-01 13:48:20,825 Loading ScriptRegistry
2012-03-01 13:48:20,929 Loading VCSRegistry
2012-03-01 13:48:20,980 Loading GeneratorRegistry
2012-03-01 13:48:21,007 Loading MacroRegistry
2012-03-01 13:48:21,104 Loading ParserRegistry
2012-03-01 13:48:21,149 Loading CalculatorRegistry

открываем браузер, вбиваем 172.0.0.1:8000

Вуаля!
Логин, пароль, (admin) как настраивали при установке.

Все, можно проверять.

P.S.:

Для обновления mongo (в случае ошибки синхронизации с базой при апгрейде) необходимо использовать команду: easy_install -U pymongo

Categories: CentOS Tags:
  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.