0

Установка nocproject на Freebsd 9

Установка системы управления сетью NocProject на FreeBSD 9.

Предисловие

Мне в наследство достался установленный NOC Project. Что-то с ним стало не так и он стал неадекватно себя вести по отношению к оборудованию. Пришло время с ним разобраться, обновить и использовать его функционал в полной мере.

«NOC is the scalable, high-performance and open-source OSS system for ISP, service and content providers.»

Оговорюсь сразу, что на сайте проекта инструкция по установке присутствует, но у меня все прошло не так гладко, как хотелось бы.

Поэтому процесс установки для себя опишу.

После неудачной попытки установить по красивой инструкции NOC Project Install, установку было решено делать в ручном режиме.

Установка

Инструкция по установке nocproject вручную доступна на официальном сайте — NOC Project Manual Install.

Я начал устанавливать с mongodb, которая в свою очередь тянет и python2.7:
# cd /usr/ports/databases/mongod && make config && make install clean

Далее устанавливаю PostGIS.
# cd /usr/ports/databases/postgis && make config && make install clean

Далее установка pip
# cd /usr/ports/devel/py-pip && make config && make install clean

Установка python virtualenv
# cd /usr/ports/devel/py-virtualenv && make config && make install clean

Затем по строгой рекомендации устанавливаю nginx
# cd /usr/ports/www/nginx && make config && make install clean

Потом устанавливаю libsmi, Mercurial,gmp

Получаю последнюю версию nocproject с помощью mercurial.
У меня nocproject будет храниться не в /opt/noc, а /usr/local/noc:
# cd /usr/local && hg clone http://bitbucket.org/nocproject/noc noc

Подготавливаю окружение:
# virtualenv --no-site-packages /usr/local/noc

Теперь добавляю пользователя noc в систему:
# pw addgroup -n noc
# pw useradd -g noc -s /bin/sh -d /home/noc -n noc

Создаю пользователя для mongodb. Для этого базу сначала надо запустить, а затем:
# mongo
> use noc
> db.addUser("noc","passw0rd")

Надо подготовить pgsql:
# psql -U pgsql template1
postgres=# CREATE USER noc SUPERUSER ENCRYPTED PASSWORD 'password';
postgres=# CREATE DATABASE noc ENCODING 'UTF8' OWNER noc;
postgres=# \q

Проверяю /usr/local/noc/share/vagrant/x86_64/FreeBSD/9.1/files/upgrade.conf

Обращаю внимание, что несмотря на то, что у меня система FreeBSD версии 9.2 в части пути к upgrade.conf указано 9.1. Итак:

#!/bin/sh
#
# NOC upgrade system configuration
#

#
# ENABLED:
# Enable upgrade system.
# Read and configure following file
# and change to ENABLED=yes
#
ENABLED=yes

#
# NOC_USER:
# Default system user for NOC daemons
# Leave empty for current user
#
NOC_USER=noc

#
# REPO:
# Hg repo to pull updates
#
REPO=http://bitbucket.org/nocproject/noc

#
# BRANCH:
# Branch to follow
# Possible values are:
# default - production releases
# develop - stable development branch
# release/ - pre-release testing branch
# feature/ - feature development branch
# hotfix/ - hotfix development branch
# none - do not pull and apply repo updates
#
BRANCH=default

#
# LOCAL_REPO:
# Path to local repos
#
LOCAL_REPO=/var/db/noc/repo

#
# BACKUP:
# Path to the backup directory
#
BACKUP=/var/db/noc/backup

#
# LOG:
# Path to the LOG directory
#
LOG=/var/log/noc

#
# PIDDIR:
# Path to the pidfiles directory
#
PIDDIR=/var/run/noc

#
# PostgreSQL database connection
#
PG_DB=noc
PG_USER=noc
PG_PASSWORD=
PG_HOST=localhost
PG_PORT=
#
# Mongodb database connection
#
MONGO_DB=noc
MONGO_USER=noc
MONGO_PASSWORD=
MONGO_HOST=
MONGO_PORT=

После этого в /usr/local/noc/share/vagrant/x86_64/FreeBSD/9.1/bootstrap.sh

su - postgres -c "psql noc" << __EOF__

изменяю на

su - pgsql -c "psql noc" << __EOF__

и выполняю:
# sh /usr/local/noc/share/vagrant/x86_64/FreeBSD/9.1/bootstrap.sh

После этого установка будет завершена. Если в процессе возникли ошибки, обычно понятно в чем проблема. Исправляю, запускаю bootstrap.sh еще раз.

Далее следует настроить NOC Project

Конфигурации находятся по адресу /usr/local/noc/etc/

На сайте доступна документация по настройке — NOC Project Administrator Guide.

Дальше можно зайти на http://[ipserver]/

Логин/пароль: admin/admin

И начать изучать возможности.

Прошу указывать на ошибки, неточности и т.д.

Alexey Egorychev

FreeBSD and Linux sysadmin. Know many systems like mailsystems, DB, WWW stack. Automation with salt, ansible. Monitoring with nagios, zabbix.