Сообщество - Лига Сисадминов

Лига Сисадминов

2 408 постов 18 923 подписчика

Популярные теги в сообществе:

2

Посоветуйте вариант реализации

Дело вот в чем: есть IP 1.1.1.1 и домен domain.com на нём. Dns держим на Яндексе. За маршрутизатором компы с сервисами, которые могут в http и https. Задачка разделить эти сервисы на поддомены 1.domain.com и 2.domain.com, но чтобы был только https из интернета и локальной сети. Сервисы один на Винде, другой на лине(апач). Ещё нужен редирект с domain.com на contoso.com при запросе по http и https. Сервисы умеют самостоятельно получать сертификаты от let's encrypt, если бы они смотрели в интернет.
Варианты придумывались такие: получить wildcard сертификат на домен, настроить разгрузу ssl на апаче, и пусть сервисы работают с реверс-прокси по http. Но выяснилось, что обновление wildcard нетривиальная задачка, с привлечением Яндекс api,если только не обновлять его ручками.
Вариант 2: я думал можно прозрачно проксировать апачем SSL до сервисов, но судя по статьям в инете он такое не умеет. Вот тут может я не прав.
Вариант 3: настроить haproxy для прозрачного проксирования до сервисов, и пусть они сами занимаются обновлением сертов для своих доменов. Тут, правда, придется изучать haproxy, ибо дела не имел.
Какой вариант предпочтителен, подскажите?

15

Проблема с ссд

На материнке ноутбука (ga502ui) два слота под ссд, на одном написано, что работает на pcie 3.0 x4, другой на х2. Поставил новый ссд в слот х4, но в кристал диске (и других прогах) он отображается как х1 и скорости соответствующие. Винду переустанавливал, пробовал разные комбинации с ссд (запустить с одним ссд, с двумя, поставить в другой слот). В биосе нужных настроек нет. Помогите, пожалуйста.в интернете решений никаких нет.

Показать полностью 2
10

Запуск nodejs в виде демона

Столкнулся недавно с интересной задачей:
Разработчик пишет сайт с использованием node как сервера. Все в общем просто, ему дан доступ по ssh к серверу, он заливает код в директорию, пишет npm start, его сервер запускается на порту 3000, nginx берет proxy_pass на этот порт, все прекрасно и замечательно.... Но!
Как только разработчик покинет сервер, консоль закроется и процесс node закроется тоже!
Пичалько...
Ну мы же могли бы прописать npm start либо в rc.local, либо написать конфиг для systems, правильно? Да, но нет... Если так сделать, то разработчику нужно давать права на перезапуск служб, а это совсем не желательно...
Благо, есть в node хороший пакет - nodemon.
Устанавливается просто
npm install -g nodemon
Далее создаем простой баш скрипт такого вида, с названием, например, myscript.sh:


#!/bin/bash

DIR=<путь к вашему проекту>

USER=www-data

sudo -Hu $USER nodemon -w $DIR -e js,css,html,json --exec npm start --prefix $DIR > /dev/null 2>&1 &

То что после -e это расширения файлов, за изменением которых вы хотите следить. Можно там и ttf добавить, ну или еще что.
www-data это стандартный пользователь nginx, но если в вашем дистрибутиве не так, то прописывайте любого другого непривилегированного пользователя.
Устанавливаем этому скрипту права на выполнение
chmod +x myscript.sh
Далее прописываем выполнение в файле /etc/rc.local
По дефолту его нет, создаем:
touch /etc/rc.local
приводи к виду:

#!/bin/sh
/bin/bash <путь к скрипту>./myscript.sh

exit 0

И делаем его исполняемым.
Перезагружаем сервер, сервис запустится автоматом. А когда разработчик будет менять файлы проекта с указанными расширениями (js,css,html,json), сервис будет автоматически перезапускаться и применять изменения
Ссылка на проект nodemon https://github.com/remy/nodemon/

Показать полностью
7

Прошивка OpenWrt для Keenetic 4g (1210)

Доброго времени суток. Прошу помощи с поиском прошивки.

Есть несколько безхозных Keenetic 4g (1210) с USB портом. Есть идея превратить их в принт-серверы. На офсайте keenetic пишут, что эта модель не может быть использована как принт-сервер. Но, вроде как, можно поставить прошивку от openwrt и будет счастье.

На сайте openwrt ссылки на скачивание все битые, на 4pda тоже все файлы для него удалены. Скачать и проверить не могу.

Собственно, пара вопросов:

1) Кто-нибудь превращал сей девайс в принт-сервер?

2) Есть ли у кого-нибудь файлы прошивки для него?

Заранее благодарен. Прошу сильно не пинать.

63

Продолжение поста «Монтёры интернета неправильно обжали кабель?»1

Всем снова привет.
Рассказчик из меня не очень, попробую просто описать что было по порядку.
После того как по телефону были задолбаны все отделы этого интернет-провайдера, они согласились создать заявку на настройку роутера, со словами: "Если вы окажетесь правы, то сделаем бесплатно, если нет, с вас цена по прайс-листу за настройку роутера."
Ну, делать нечего, пришлось соглашаться.

Съездил я сегодня снова на ту квартиру, уже подготовленный, взял с собой ноутбук, и первым делом до прихода этих "специалистов" проверил работоспособность всех пяти портов своего роутера, всё работало безупречно, внутри роутерской локалки, с телефона на ноут гонялись файлы на скорости близкой к 100Мбит. Так я наконец-то убедился что порты моего роутера не сломались, не "сгорели" как меня пытался заверить по телефону провайдер.

Вскоре пришли специалисты, те же самые 2 парня что были в прошлый раз, сразу полезли смотреть коннектор и выдали... "Это не мы обжимали, мы так не обжимаем, быть не может чтобы это мы так обжали."
Я в доказательство им показывал EXIF данные с фото, в которых указано время съёмки, показывал переписку с друзьями, которым я тоже показывал их великолепный обжим. Однако они всё равно стояли на своём, и вообще начали говорить что это специалисты из ростелекома ко мне приходили и так мне обжали кабель.
Достали свой ноутбук, на котором в прошлый раз всё работало, и показали что теперь действительно не работает вообще ничего. Достали в этот раз даже тестер(в прошлый раз они им не пользовались) и с важным видом мне показали что пара 3-6 не работает. Ну я сразу понял что эти товарищи просто заранее переобжали у себя в оборудовании кабель правильно, по типу B, и поэтому теперь на кривом обжиме в квартире всё перестало работать совсем. Но они всё равно строили серьёзные лица и клялись что они так не могли обжать неправильно.

Переобжали они кабель правильно, вставили в мой роутер, и роутер моментально соединился по PPPoE которое я в нём настроил ещё 2 недели назад. Денег всё таки брать они не стали(ну да, роутер же даже настраивать им не пришлось) и ушли.

Оборудование как оказалось у них стояло всего лишь этажом выше, я примерно прикинул рулеткой и там набиралось что-то около 20-25 метров кабеля. так что вот, оказалось что уже на 20 метрах кабеля неправильный обжим может перестать работать. Почему же 2 недели назад работало у них через ноут? Ну, как мне в комментариях к прошлому посту написали, гигабитники на 100Мбит устойчивее к помехам, поэтому в тот раз их ноут заработал, а мой роутер нет.

Некоторые меня просили написать название этого великолепного провайдера, и пожалуй теперь, когда я убедился что был прав, я напишу: Теленет, г. Самара.

Показать полностью
28

DevOps.Ищу опыт

Доброго дня,господа и дамы.
Я линуксовый админ и решил постигать азы девопесинга.

Если кому надо помощь с вашими проектами - готов на безвозмездной основе.

Могу по линуксу чего,ansible,docker,разверну кубер,настрою nginx\apache,пытаюсь в ci\cd.

контакты для связи nakedpeak272@gmail.com

Обои Republic Of Gamers REMASTERED

Обои Republic Of Gamers REMASTERED

Видео нет но я добавил подсветку для надписи. Импортировать файл надо через Aura Wallpaper Creator, а настройка через Armoury Crate.

Сделано кривовато но это моя первая попытка:)

Вот ссылочка: https://drive.google.com/file/d/1sOKO3mYD6CnEcEBLhKhnhY9dKCs...

Показать полностью
83

Автобэкапы сетевого оборудования Huawei

Ну или привет импортозамещение?

Сегодня в большей степени технический пост про автобэкапы Huawei (AR6120 и S5735). Но я буду разбавлять текст художественными вставками.

Почему не rancid? Все, мне кажется, задают этот вопрос в любом посте про автобэкапы. Во-первых, что-то я быстрым поиском не нашла там поддержку Huawei нужных моделей, во-вторых я хочу прям классический файл бэкапа, который можно раскатать (а rancid снимает вывод консоли, что не одно и то же), в-третьих я хочу гибкий инструмент, которым я смогу позже, например, раскатать всем правило в access-list или выполнить любую команду.
Ну и вообще, я хочу понимать как оно работает, а не использовать сторонний софт, но это уже мои загоны.

Итак, нужно логиниться на Huawei, желательно, по ssh ключу (чтоб не палить пароли в скриптах), выполнять сохранение конфигурации с определенным именем, потом заливать по tftp на сервер тоже с определенным именем, анализировать что слилось, а что нет, коммитить в git и отсылать отчет на почту.

Надо сказать, что энтерпрайзные huawei умеют, как циски, при сохранении конфигурации автоматом отсылать на ftp конфиг. Теоретически, младшие модели это тоже умеют, но практически это нихрена не работает во-первых, а во-вторых оно сливает только zip архив, что просто адски неудобно (про это будет подробнее ниже).

Единственное, что я пропущу - это настройка git. Я подняла gitea чудесно по родной инструкции, справится любой. Да и система контроля версий тут не строго обязательна в принципе.

Первое - логин на Huawei по ssh ключу. И сразу это ввергло меня в поиск. То есть, в документации такая фича есть, но ключ он принимает только в HEX виде и никакие популярные команды преобразования, которые на раз гуглятся, не привели ключ в тот вид, чтобы его сожрал Huawei.

Сначала генерируем ключ на сервере (у меня хуавей принял только 1024 бита, но поскольку ssh открыт только с белого списка адресов, я сочла это приемлемым. вы же можете поэкспериментировать с битностью). На вопрос о парольной фразе просто нажмите enter.

ssh-keygen -f ~/.ssh/id_rsa -t rsa -b 1024

А теперь делаем магию. Я нашла нужную команду в самом конце комментов под заплюсованным ответом на stackoverflow. Команда из заплючованного ответа не работала и кто-то скромно написал, что не работает, но вот для моего хуавея делаю вот так и работает, тысяча плюсов в карму этому господину.

ssh-keygen -e -m pem -f ~/.ssh/id_rsa.pub | sed '1d;$d' | tr -d '\n' | base64 -d | xxd -c 24 -g 4 -u | sed -e "s/^.*: //" -e "s/.\{25\}$//g"

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

Дальше заводим ключ на Huawei. Ключ надо будет копировать в команды прямо так, как он вам вывелся на предыдущем этапе. На Huawei AR6120 команды следующие (если у вас белый список на логин по ssh не забудьте также разрешить ip вашего сервера логиниться):

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

На коммутатор Huawei S5735 команда чуть-чуть отличается, есть по ссылке в конце.

Для обращения к устройствам из скрипта я завела БД на sqlite, но вы можете брать информацию из текстовых файлов или ещё откуда. Поле пароля в базе будет пустым, оно оставлено для устройств, которые не поддерживают логин по ключу (вдруг такие будут)

Структура базы:

Вставка происходит примерно так:

`insert into netdev (hostname,ip,login,pass,tag,model) values ( 'ufa-ar6120-2', '10.2.100.2','backuper','','huawei','AR6120');`

Теперь про скрипт. И на цисках, и на микротиках, и на D-Link прекрасно работала следующая схема:

На хуавее же логин при такой схеме происходит, в логах это видно, но никакие команды, переданные таким способом, не выполняются. Никакие манипуляции c -i -T -t не работают. Я закопалась в процессе в логи ssh, в переменные окружения и прочее. Примерно понятно, что открытый терминал не считается терминалом и это даже нормально, но никакие опции, которые туда должны впихать команды, не работают. Моего скилла победить эту конструкцию не хватило. Пришлось использовать expect.
Кстати, если кто может нормально описать почему оно не работает и как это побеждать - будет здорово. А то я как собачка - вроде частично понимаю, а нормально написать не могу.

Всего использоваться будут 5 скриптов (напомню, код текстом по ссылке в конце).

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

Сначала у меня был один скрипт expect на все устройства (команды то одинаковые), но на коммутаторах он в 20% случаев не успевал с первой командой, так как на них очень-очень долгая загрузка после логина. А на роутерах наоборот, он завершался, не успев получить вывод от tftp и завершал сессию. Пришлось расставить костыли в виде sleep и разделить на два скрипта.

Для роутеров вот, для коммутаторов по ссылке в конце.

У Huawei и cisco немного по-разному сделан текущий конфиг.

Текущий конфиг (аналог running-config) по команде save сохраняется на Huawei в vrpcfg.zip. Как уже писалось выше, при попытке сохранять это по tftp/ftp это падает всегда zip архивом и при распаковке у конфига внутри архива всегда одно и тоже имя. То есть, на такие автоматические бэкапы всё равно надо накручивать скрипт распаковки и переименования. НО! Конфиг можно сохранить в текстовом виде с любым именем .cfg и уже его сливать.

Если вам нужно добавить дату - можно добавить её в имя конфига, который будет падать по tftp (чтоб на роутере память не занимать - там всегда сохраняем с одинаковым именем). Я не добавляю дату, так как всё падает в git, там версионность поддерживается и так.

Далее идет скрипт для оценки того, что у нас накопировалось - хочется понимать, что успешно, что нет. А также коммит, пуш и отсылка отчета на почту.

Зачем каждый раз выбирать ключ ssh? Huawei сожрал только 1024 бита, а gitea хотела минимум 2048. Так что пришлось завести два и менять - один для логина, другой для коммитов.

Теперь сам анализатор логов analyse_result. Он простой как валенок, тут ваша фантазия может разгуляться. Я просто смотрю что написано success на сохранении и на копировании. Заметьте, у роутеров и коммутаторов строчки вывода разные.

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

Ну и пихаем в cron чтоб выполнялся каждый день:

Изменения в Gitea выглядят примерно вот так

Сколько времени на это ушло? Ну вот столько:

9 дней работы от 30 минут до 3х часов в день или 19 коммитов. Больше всего я боролась с логином по ключу и с удаленным выполнением команд.

Весь код текстом тут.

Осталось раскатать это на 260 устройств :) Потом можно что угодно раскатывать сразу на все, используя эти наработки. Например, в планах составить рамочный access-list (он как бы есть, но слишком пошли различия от филиала к филиалу, хочется причесать). Ну а пока - залогиниться на каждое устройство ручками и вписать пользователя с ключом.

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

Понятное дело, сейчас Huawei такого типа (малый офис, скажем так) не очень распространены в РФ. Уже не домашний роутер, ещё не энтерпрайз. Однако, он завозится активно, а материалов хрен да нихрена. Надеюсь, кому-то когда-то пригодится.

Показать полностью 12
Отличная работа, все прочитано!