All streams
Search
Write a publication
Pull to refresh
9
0
Send message

про monitorix не слышал
подобную задачу решал с помощью netdata
настраивается тоже в 2 минуты (для локалхоста)
очень легкий быстрый и фичастый

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

вчера пришлось погасить BGP с Ростелекомом до лучших времен
видимо лучшие времена настанут не скоро потому что это теперь штатный режим




© кто-то из замедленного Твиттера

у меня от 2 до 6 измерений в день
если спать в часах то 2 измерения строго в 1:20 и в 5:20 и 3-е в 9:20 если дрыхнуть дальше
а днем как получится


да легкая форма

постоянно сравниваю с тренажерами — результат идентичен
но тут дело в том, что в режиме "тренировка" часы (apple) измеряют сердцебиение постоянно.
А в обычном режиме измерения носят периодический характер. Впрочем если снять часы в момент измерения, это когда светодиод светится, то этот светодиод может гореть еще минуту. Таким образом можно предположить, что измерение длится достаточно долго и этого времени возможно достаточно чтобы померить не только пульс но и вариативность


Впрочем я попытался проанализировать мои исторические данных по вариативности
за периоды до, во время и после ковида
Но не смог заметить никакой корелляции

Простите, но я так и не понял зачем писать токен в базу


Посмотрите на вашу последнюю (в статье) функцию
она просто берет токен из http запроса, декодирует из него user_id и проверяет есть ли такой user_id (а не токен) в базе и если такой user есть и активен, то запрос авторизован


И в самом начале посмотрите как токен генерится
там простой объект (dict) с двумя полями: id и exp
этот объект шифруется с помощью серверного SECRET_KEY и отдается клиенту для дальнейшего использования.


А клиент просто в каждый http запрос вставляет заголовок с токеном (вместо сессионных куков)
curl http://localhost:5000/api/whatever -H 'Authorization: Bearer $JWT'

сохраненный в базу токен нигде и никак не используется

Буквально сегодня РКН прислала запрос "Предоставление маршрутной информации операторами связи" хотя мы обычный кровавый ентерпрайз.
Так вот информацию нужно предоставить в формате XML o_O
Таким образом Ваша статья пришлась весьма кстати.
Спасибо!

Вдогонку другая картинка на ту же тему с https://roadmap.sh/:
image

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


Мерять длины пар в процессе монтажа — ну никак это с заббиксом не увязывается
Нет смысла делать подобные проверки периодическими чтоб потом еще хранить все результаты таких измерений в базе
То же касается алертов типа порт на аксессе упал/поднялся. Никто так не делает. В сети даже на сотню портов такие алерты просто убьют смысл мониторинга.

о том, что не ходите дети учиться на кафедру телекоммуникационных систем Национального исследовательского университета «Московский институт электронной техники» потому что там преподают мудаки (ну как минимум один)

да для свичей код на локалхосте всегда
хотя некоторое оборудование уже начинает нативно поддерживать питонов и ансиблы на свичах. но пока экзотика


пример кода понятен разумеется
просто я не отличал до этого переменные через инвентори, факты и регистеред
потому и наворотил то, что наворотил
так то я register там тоже использую


  tasks:
    - name: cleanup old configurations
      local_action: file path="./tmp/{{ inventory_hostname }}.cfg" state=absent
      delegate_to: localhost

    - name: generate new configuruation
      template:
        src: ./template/hw-shut.j2
        dest: "./tmp/{{ inventory_hostname }}.cfg"
      when: 
        - interfaces is defined 
        - interfaces is not none
      register: task_1

    - name: merge the new configuration with existing one and save it
      napalm_install_config:
        provider: "{{ hwpv }}"
        config_file: "./tmp/{{ inventory_hostname }}.cfg"
        commit_changes: True
      when: task_1.changed

Хорошо что вопрос задал. Выступил лохом, конечно, но оно того стоило — разобрались.
Еще хорошо, что статью про мой тот велосипед забыл опубликовать на хабре, хотя она была готова еще год назад :)

Исходя из моего опыта лучшее что можно сделать с ансиблом для коммутаторов и прочих сетевых железяк — это перестать использовать ансибл для работы с ними :)
Тут возможно проблема не в самом ансибле (хотя вымораживает, что половина скриптов для версии 2.2 не работает в 2.9), а в качестве модулей под эти самые железяки написанные. Благо к 2020-му появилось множество самых разных интерфейсов и фреймворков для автоматизации моей деятельности, с более ожидаемыми "паттернами", нормальным дебагом и быстрее ансибла на порядки.


Тем не менее я очень благодарен Вам за ваши статьи и ответы на мои глупые вопросы.

не ну комплекс проблем с актуальностью и валидностью я предусмотрел :)
прям в доке к скрипту написал


перед запуском скрипта выполнить команду: rm -rf host_vars/

Ладно ладно я про паттерн понял уже. Это не ансибл странный, это у него паттерны

две территориально разделенные площадки в одном broadcast домене

Наверное территориально разделенные площадки стоит держать в разных броадкаст доменах
чтоб броадкаст шторм в одной не положил другую, да и траблшутить куда легче
в 2020-м практически не осталось резона растягивать L2 тем более что ваши свичи в L3 умеют


так же для отказоустойчивости следует использовать пару линков между сайтами, но тут можно просто свичи в LAG собрать, он заодно и кольца разберет


Да, и если инкапсулируете L2 вот что угодно для проверки пинговать стоит с размером пакета 1500

он не меняется. его изначально нет.
есть только хостнэймы свичей в ./hosts и creds-ы в group_vars
host_vars заполняется первым таском, который для кажого свича ходит за инфой к стороннему сервису

про group_host_vars написано, что мы его не захотим. Зачем же Вы его мне советуете?
Ну и странно (для меня) inventory относить к коду.
Я как то привык относиться к inventory как к данным.
И нет ничего необычного и "приключенческого" когда одна функция пишет какие то данные, скажем в БД, а другая функция в том же коде эти данные потом читает и использует.
про гетфактс спасибо, но это будет сложней реализовать чем запускать плеи раздельно.
благо необходимость запускать этот велосипед требуется не чаще раза в год.

O_o
3683 коммита на расскрашивание командной строки :)

разрешите вопрос как эксперту?
Хотя возможно он относится не к переменным, а к инвентори (предыдущей статье), впрочем до этой статьи я их не особо различал


Есть у меня две таски два play:


  1. запускает питон скрипт, который лезет в NMS, ищет неиспользуемые порты на всех коммутаторах и под каждый коммутатор создает host_vars со списком таких портов
  2. заходит на каждый коммутатор и гасит все порты из списка

Так вот если объединить эти два плея в один плейбук, то он не работает:
1-й play наполняет инвентори как пложено, но 2-й play этот свежий инвентори не видит и ничего не делает.
Если запускать в разных плейбуках, то все работает как полагается
Похоже inventory вычитывается в самом начале плейбука и больше не перечитывается


Так вот вопросы:
Есть возможность как то сказать ансиблу чтоб он перечитал Inventory?
Допустимо ли создавать такие плейбуки или это bad-design без вариантов?


p.s. в итоге я на ansible забил и ушел на питон целиком

Information

Rating
Does not participate
Registered
Activity