Установка системы управления сетью 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
И начать изучать возможности.
Прошу указывать на ошибки, неточности и т.д.