
Dmitry
16.06.2016
13:46:50
и теперь их плющит

Евгений
16.06.2016
13:47:01
root@tcpdump:~# cd /opt/noc; hg summ
parent: 11605:390e5fadbba3
sa/sae: added an option to ping mo address rather than trap source ip
branch: develop
commit: 8 modified, 101 unknown
update: (current)

Алексей
16.06.2016
13:47:14
hg sta

Евгений
16.06.2016
13:47:15
Да, питон там 2.7.11+

Google


Евгений
16.06.2016
13:47:47
Тут только мои правки в скриптах
root@tcpdump:/opt/noc# hg sta
M sa/profiles/3Com/SuperStack/__init__.py
M sa/profiles/3Com/SuperStack/get_mac_address_table.py
M sa/profiles/3Com/SuperStack/get_version.py
M sa/profiles/3Com/SuperStack/get_vlans.py
M sa/profiles/Alcatel/AOS/get_inventory.py
M sa/profiles/Alcatel/AOS/get_mac_address_table.py
M sa/profiles/Alcatel/AOS/get_version.py
M sa/profiles/Juniper/JUNOS/get_interfaces.py
? gis/osm/symbols/cliff.png
? gis/osm/symbols/cliff2.png
? gis/osm/symbols/military_red_hz2.png
? gis/osm/symbols/mot_shield1.png
? gis/osm/symbols/mot_shield2.png
? gis/osm/symbols/mot_shield3.png
? gis/osm/symbols/mot_shield4.png
? gis/osm/symbols/mot_shield5.png
? gis/osm/symbols/mot_shield6.png
? gis/osm/symbols/mot_shield7.png
? gis/osm/symbols/mot_shield8.png
? gis/osm/symbols/nature_reserve5.png
? gis/osm/symbols/nature_reserve6.png
? gis/osm/symbols/pri_shield1.png
? gis/osm/symbols/pri_shield2.png
? gis/osm/symbols/pri_shield3.png
? gis/osm/symbols/pri_shield4.png
? gis/osm/symbols/pri_shield5.png
? gis/osm/symbols/pri_shield6.png
? gis/osm/symbols/pri_shield7.png
? gis/osm/symbols/pri_shield8.png
? gis/osm/symbols/sec_shield1.png
? gis/osm/symbols/sec_shield2.png
? gis/osm/symbols/sec_shield3.png
? gis/osm/symbols/sec_shield4.png
? gis/osm/symbols/sec_shield5.png
? gis/osm/symbols/sec_shield6.png
? gis/osm/symbols/sec_shield7.png
? gis/osm/symbols/sec_shield8.png
? gis/osm/symbols/ter_shield1.png
? gis/osm/symbols/ter_shield2.png
? gis/osm/symbols/ter_shield3.png
? gis/osm/symbols/ter_shield4.png
? gis/osm/symbols/ter_shield5.png
? gis/osm/symbols/ter_shield6.png
? gis/osm/symbols/ter_shield7.png
? gis/osm/symbols/ter_shield8.png
? gis/osm/symbols/tru_shield1.png
? gis/osm/symbols/tru_shield2.png
? gis/osm/symbols/tru_shield3.png
? gis/osm/symbols/tru_shield4.png
? gis/osm/symbols/tru_shield5.png
? gis/osm/symbols/tru_shield6.png
? gis/osm/symbols/tru_shield7.png
? gis/osm/symbols/tru_shield8.png
? gis/osm/symbols/turning_circle-livs-fill.12.png
? gis/osm/symbols/turning_circle-livs-fill.16.png
? gis/osm/symbols/turning_circle-livs-fill.22.png
? gis/osm/symbols/turning_circle-tert-casing.18.png
? gis/osm/symbols/turning_circle-tert-casing.24.png
? gis/osm/symbols/turning_circle-tert-fill.16.png
? gis/osm/symbols/turning_circle-tert-fill.22.png
? gis/osm/symbols/turning_circle-uncl-casing.14.png
? gis/osm/symbols/turning_circle-uncl-casing.16.png
? gis/osm/symbols/turning_circle-uncl-casing.18.png
? gis/osm/symbols/turning_circle-uncl-casing.24.png
? gis/osm/symbols/turning_circle-uncl-fill.12.png
? gis/osm/symbols/turning_circle-uncl-fill.14.png
? gis/osm/symbols/turning_circle-uncl-fill.16.png
? gis/osm/symbols/turning_circle-uncl-fill.18.png
? gis/osm/symbols/turning_circle-uncl-fill.22.png
? gis/osm/symbols/turning_circle-uncl-fill.24.png
? gis/osm/world_boundaries/shoreline_300.dbf
? gis/osm/world_boundaries/shoreline_300.shp
? gis/osm/world_boundaries/shoreline_300.shx
? output.json
? output.txt
? pm/probes/generic/network/snmp_cpu.py
? sa/profiles/3Com/SuperStack/get_interface_status.py
? sa/profiles/3Com/SuperStack/get_interfaces.py
? sa/profiles/3Com/SuperStack/get_switchport.py
? sa/profiles/Alcatel/AOS7/__init__.py
? sa/profiles/Alcatel/AOS7/add_vlan.py
? sa/profiles/Alcatel/AOS7/get_arp.py
? sa/profiles/Alcatel/AOS7/get_config.py
? sa/profiles/Alcatel/AOS7/get_interface_status.py
? sa/profiles/Alcatel/AOS7/get_interfaces.py
? sa/profiles/Alcatel/AOS7/get_inventory.py
? sa/profiles/Alcatel/AOS7/get_lldp_neighbors.py
? sa/profiles/Alcatel/AOS7/get_mac_address_table.py
? sa/profiles/Alcatel/AOS7/get_portchannel.py
? sa/profiles/Alcatel/AOS7/get_switchport.py
? sa/profiles/Alcatel/AOS7/get_version.py
? sa/profiles/Alcatel/AOS7/get_vlans.py
? sa/profiles/Alcatel/AOS7/ping.py
? sa/profiles/Alcatel/AOS7/remove_vlan.py
? sa/profiles/Linksys/SRW20XX/__init__.py
? sa/profiles/Linksys/SRW20XX/add_vlan.py
? sa/profiles/Linksys/SRW20XX/get_arp.py
? sa/profiles/Linksys/SRW20XX/get_chassis_id.py
? sa/profiles/Linksys/SRW20XX/get_config.py
? sa/profiles/Linksys/SRW20XX/get_interface_status.py
? sa/profiles/Linksys/SRW20XX/get_interfaces.py
? sa/profiles/Linksys/SRW20XX/get_lldp_neighbors.py
? sa/profiles/Linksys/SRW20XX/get_mac_address_table.py
? sa/profiles/Linksys/SRW20XX/get_portchannel.py
? sa/profiles/Linksys/SRW20XX/get_switchport.py
? sa/profiles/Linksys/SRW20XX/get_version.py
? sa/profiles/Linksys/SRW20XX/get_vlans.py
? static/img/uran-logo-150.gif
? upgrade.log
virtualenv пытался проинитить , не помогло


Алексей
16.06.2016
13:49:40
ох

Dmitry
16.06.2016
13:50:54
ls -ld lib/python*

Евгений
16.06.2016
13:51:16
web не стартует по той-же причине:
root@tcpdump:/opt/noc# ./scripts/noc-web.py -f start
Traceback (most recent call last):
File "./scripts/noc-web.py", line 12, in <module>
from noc.main.web import Web
ImportError: No module named noc.main.web
root@tcpdump:/opt/noc# ls -ld lib/python*
lrwxrwxrwx 1 root root 9 May 13 2015 lib/python -> python2.7
drwxr-xr-x 4 root root 4096 Jun 15 21:31 lib/python2.7

Dmitry
16.06.2016
13:53:14
__init__.py есть?
noc-web.py PYTHONPATH выставляет нормально?

Евгений
16.06.2016
13:58:01
__init__.py - нулевого размера
Как проверить PYTHONPATH?

Dmitry
16.06.2016
14:00:35
он в скрипте вообще есть?
и ./bin/python посмотри, куда смотрит

Евгений
16.06.2016
14:01:43
#!./bin/python
# -*- coding: utf-8 -*-
##----------------------------------------------------------------------
## noc-web daemon
##----------------------------------------------------------------------
## Copyright (C) 2007-2011 The NOC Project
## See LICENSE for details
##----------------------------------------------------------------------
if __name__ == "__main__":
# Run Web server
from noc.main.web import Web
Web().process_command()

Google

Евгений
16.06.2016
14:01:53
Это все что там есть

Dmitry
16.06.2016
14:02:25
./noc shell запусти в конце концов

Евгений
16.06.2016
14:03:01
root@tcpdump:/opt/noc# ./noc shell
Traceback (most recent call last):
File "manage.py", line 26, in <module>
from django.core.management import execute_from_command_line
ImportError: No module named django.core.management
да хрен там
Все с тем-же исходом

Andrey
16.06.2016
14:03:46
помоему) после того как заново проинициализирован virtualenv надо ставить все зависимости
если есть бэкапы баз
запусти заново апгрейд


Евгений
16.06.2016
14:04:51
root@tcpdump:/opt/noc# ./scripts/upgrade
Logging to /tmp/noc-upgrade.log.bkbf3B
Checking virtualenv
Set up configuration files
Creating required directories
Reverting local patches
No patches applied
Pulling branch develop from repo https://bitbucket.org/nocproject/noc
abort: couldn't find mercurial libraries in [/opt/noc/lib/python2.7/site-packages /opt/noc/bin /opt/noc/lib/python2.7 /opt/noc/lib/python2.7/plat-x86_64-linux-gnu /opt/noc/lib/python2.7/lib-tk /opt/noc/lib/python2.7/lib-old /opt/noc/lib/python2.7/lib-dynload /usr/lib/python2.7 /usr/lib/python2.7/plat-x86_64-linux-gnu /usr/lib/python2.7/lib-tk /opt/noc/local/lib/python2.7/site-packages /opt/noc/lib/python2.7/site-packages]
(check your install and PYTHONPATH)
upgrade: : Failed to pull branch develop out of repo https://bitbucket.org/nocproject/noc
Terminating
Reporting upgrade status
Traceback (most recent call last):
File "./scripts/cptool", line 15, in <module>
from noc.support.cp import CPClient
ImportError: No module named noc.support.cp
Saving upgrade log to /srv/noc/log/upgrade.log
Это я тоже пробовал сделать


Andrey
16.06.2016
14:05:33
знакомая ошибка

Евгений
16.06.2016
14:05:36
Причем пип инстал меркуриал делал тоже

Dmitry
16.06.2016
14:05:37
PYTHONPATH кривой

Евгений
16.06.2016
14:06:42
Где почитать как исправлять есть? Кем он задается? В окружении ьтакой переменной нет

Andrey
16.06.2016
14:08:07
сделай virtuaenv /opt/noc делал, для пересоздания virtualenv?
*без сделай

Евгений
16.06.2016
14:09:17
Да
Делал

Andrey
16.06.2016
14:11:27
сделай source bin/activate
pip install mercurial

Google

Евгений
16.06.2016
14:12:20
Установился
Идет апгрейд
Ставит зависимости

Andrey
16.06.2016
14:13:29
:)

Евгений
16.06.2016
14:13:56
Ну.. Я прошу прощения....
Спасибо огромное
Припекло однако сильно

Andrey
16.06.2016
14:14:29
:) просто сломался mercurial в virtualenv
бывает

Dmitry
16.06.2016
14:14:56
там бинарные модули, кстати

Евгений
16.06.2016
14:17:30
Заработало!
Весь НОК заработал. Все на месте. Спасибо!!!!
Теперь ,не сейчас, потом, буду пробовать переезжать на башню...
Но не совсем понятно как данные перенести

Andrey
16.06.2016
14:18:32
башня при установке запускает миграцию

Евгений
16.06.2016
14:18:36
Бэкапы есть, которые нок делает, но попытался сегодня их закинуть - ничего не получилось

Алексей
16.06.2016
14:18:48

Andrey
16.06.2016
14:18:55
поэтому создай копию баз
и пропиши их при настройке башни
только проверь что монга 3.2
если нет - ставь 3.2

Google

Алексей
16.06.2016
14:19:57
@aversant @somovis а не думали ли вы над отказоустойчивостью postgres ?

Andrey
16.06.2016
14:21:10
нет, у меня не критичны простои)
я только читал что у постгреса хорошая репликация есть master-master и master-slave
там идёт отдельный компонент

Dmitry
16.06.2016
14:21:26
где у постгреса master-master
:)

Евгений
16.06.2016
14:21:36
Спасибо за совет. Я буду разбираться. Постараюсь не дергать вас без повода. Хорошего вечера

Dmitry
16.06.2016
14:21:37
ой не верю

Алексей
16.06.2016
14:21:38
нет там мастер мастер.

Dmitry
16.06.2016
14:22:00
если только 2 phase commit кто-то за master-master не посчитал
:)

Andrey
16.06.2016
14:22:17
может быть, я не специалист в Pg - могу врать

Dmitry
16.06.2016
14:22:32
там, насколько я помню, последним был log streaming
это чистый master - slave

Алексей
16.06.2016
14:24:02
коллеги с канала postgres посказывают про существование postgres xl
но оно того не стоит
а я вот смотрю на таой вот вариант. https://github.com/smarthall/ansible-pgpool и диву даюсь

Dmitry
16.06.2016
14:24:50
там еще enterprisedb есть
ну да
то ли дело монга с replicaset'ом
Ж)

Алексей
16.06.2016
14:27:09
там у товарища кроме pgpool еще организуется haproxy

Google

Алексей
16.06.2016
14:27:17
и этот момент меня угнетает...

Dmitry
16.06.2016
14:28:22
ага
и keepalived еще до кучи
у постгреса - тупой клиент
он не знает про топологию кластера и не может сам пересоединиться
о того и проблемы

Алексей
16.06.2016
14:34:07
хм. пока у меня получается оптимальная топология без использования плавающего адреса выглядит как pgpool + master/slave.
при этом pgpool работает как просто балансировщик.
но что будет происходить с ноком в момент рестарта мастера постгреса для меня загадка.

Dmitry
16.06.2016
14:36:32
разрыв коннекта

Алексей
16.06.2016
14:38:20
это с стороны демона
а со стороны нока
реконнект ?
падение ?
даунтайм какой то будет ?
что будет с транзакцией по середине ?

Dmitry
16.06.2016
14:38:55
грохнется все
но не просто грохнется
а зависнет, надо думать
потому как он узнает, что коннект сдох, только записав в него и получив EPIPE
а писать он, скорее всего, не будет
а будет ждать ответа

Ilya
16.06.2016
14:57:34

Алексей
16.06.2016
14:57:46
эм ?