Category: it

Category was added automatically. Read all entries about "it".

MacOS NFS Client

Я кажется уже говорил что ненавижу маки?

Был у нас старый железный NAS. На нем была NFS шара, к которой подключались саппорты и занимались какой-то анальной эквилибристикой с маковским аналогом SCCM. NAS устарел и был выпилен, данные смигрировали в виртуалку на CentOS, и там подняли nfsd для этой шары.

Через какое-то время саппорты прискакали с проблемой: после миграции шара стала недоступна. Причем хитро - коннект есть, папки в шаре видно, но при попытке зайти в любую папку Finder виснет и уходит в таймаут. Проверил с другой Linux машины - работает. Проверил с мака в локальной сети - работает... Ладно, проверяем с макбука по VPN - ага, наблюдаем описанные симптомы. Причем ни Linux, ни Windows через тот же VPN таких проблем не испытывают. Сравниваем конфиг nfsd на виртуалке с заболтиво сохраненным конфигом с выпиленного NAS - все настройки одинаковые.

Смотрим в логи NFS сервера:
kernel: lockd: server MacBook not responding, timed out

Судя по всему, этот кусок говна с яблочным логотипом MacOS некорректно отрабатывает блокировки в связке с некоторыми версиями nfsd при наличии latency. Решение - монтировать шару не с дефолтными настройками через Finder, а из командной строки с такими параметрами:

mount -t nfs -o nolocks,resvport,locallocks servername.local:/Share /Volumes/Share

После чего она появится в Finder и будет работать без каких-либо проблем. Параметр resvport можно не применять, если в exports на сервере прописана опция insecure.

Великий египетский фаерволл

У нас сотрудница с месяц назад поехала в отпуск к родне в Египет и благополучно застряла там из-за закрытия границ по причине пандемии. Ну, сама-то здорова, рабочий ноут с ней - сидит себе на карантине и работает через VPN. Неделю работает, две... На третью неделю VPN сказал "кря" и перестал подключаться. Саппорт первой линии поковырял - не алло. Вторая линия поковыряла - не алло. Попробовали другую машину - не работает. Другого провайдера - не работает. На этом моменте саппорты сдались и радостно спихнули проблему на меня по старому доброму принципу "во всем виноват сетевик".
Collapse )

JunOS, DHCP и Cisco WLC

Проблема: при использовании DHCP сервера на Juniper SRX для клиентов, подключенных по Wi-Fi через цисковский контроллер (в моем случае - WLC2504), IP клиентам выдается, но трафик не ходит и SRX с клиентов не пингуется. При этом в ARP таблице SRX их видно, а проводные клиенты в том же VLAN прекрасно себя чувствуют.

Решение: отключаем опцию DHCP Relay на WLC, и трафик сразу начинает ходить.

Как оно одно с другим связано - тайна сия велика есть.

Восстановление кластера MariaDB

Проблема: в кластере из 3 нод две упали (крэш), а оставшаяся загрустила и шлет клиентов нахер с любыми запросами.

Причина: согласно логике WSREP, одна нода не может собрать кворум и переходит в режим non-primary, переставая обрабатывать запросы клиентов во избежание split-brain. Если остальные ноды отвалились из-за сетевых проблем, то кластер пересоберется автоматически, как только они снова смогут друг друга видеть. А вот если остальные ноды, как в описываемом случае, именно что упали - то их перезапуск будет "радовать" нас ошибкой вида "view# -1: non-Primary", и сообщением о невозможности найти кластер.

Решение: заходим на выжившую ноду и в консоли даем команду "SET GLOBAL wsrep_provider_options='pc.bootstrap=true';", тем самым принудительно устанавливая ей высший приоритет. После чего она переходит в primary mode и мы можем запустить остальные ноды, которые при старте стянут информацию с нее. Важно: прежде, чем это делать, трижды проверьте, что остальные ноды таки реально не работают, иначе можно получить разные данные на разных нодах и все вытекающие из этого последствия.

Если при запуске остальные ноды валятся в segfault - лечится удалением всех файлов в mysql home directory.

Про аутсорсеров

Есть у меня на работе три площадки с серверами. Две полностью наши, третья в аренде. На каждой стоит богомерзкая железяка под управлением Sophos UTM9, установленная аутсорсерами. Изначально нашу сеть администрировали целиком они, но после пары серьезных косяков я отобрал у них права на все принадлежащее нам сетевое оборудование. Так что под их управлением осталась только третья площадка, где маршрутизатор не наш.

Так вот, понадобилось нам прокинуть резеврный VPN между одной из наших площадок и не нашей. Сконфигурировали все со своей стороны, написали заявку аутсорсерам. Те давай нам заливать - "ну, это надо OSPF поднимать, это долго, дорого и вообще нужно будет закупить новый маршрутизатор". Я не стал вступать в бесполезные споры, а просто притащил из дома древний Juniper SRX100B, сбросил, повесил на него свободный белый IP из офисного пула и за час настроил с него IPSec на обе наших площадки. Без OSPF и смс.

Народ ходит, дивится. Уточняют: "И шо, прямо вот работает? Ухтыжблядь! А сколько такая пепяка стоит? Сколько?! А хули ж мы тогда тот Sophos за сотни нефти покупали..."

Собираем haproxy2 под CentOS 8

Проблема: нужно разлить актуальную версию haproxy на несколько серверов, а под последнюю CentOS пока нет rpm для версии 2.0, только для 1.8.

Решение: собираем RPM самостоятельно из сырцов. Благо доброе opensource-community запилило для этого очень простой набор скриптов.

Порядок действий:
1. ~$ sudo yum install -y rpm-build rpmdevtools pcre-devel openssl-devel zlib-devel redhat-rpm-config gcc gcc-c++ make libstdc++-devel wget rpmlint openssl-devel
2. ~$ cd /opt && git clone https://github.com/DBezemer/rpm-haproxy.git && cd rpm-haproxy && git checkout 2.0
3. Правим файл SPECS/haproxy.spec, выставляем там версию 2.0 вместо 1.8
4. ~$ cd /opt/rpm-haproxy && make

Профит. Берем RPM файл из папки /opt/rpm-haproxy/rpmbuild/RPMS/x86_64, добавляем в локальный репозиторий и разливаем на наши сервера.

Нетрадиционное использование Carkit

 Недавно я разжился по случаю старьенкой TETRA радиостанцией Motorola MTP700. В принципе, она мне была не так чтобы очень нужна, но ее отдавали почти даром - а воспоминания об этом девайсе у меня сохранились весьма ностальгические :) Дальше встал вопрос, как ее программировать и заряжать, потому как за давностью лет никаких аксессуаров к этой ископаемой серии у меня не осталось. В итоге на eBay была за смешные 25 евро куплена вот такая штука: Motorola GMLN1036A Carkit for MTP700/750.

 Вообще-то это, как следует из названия, комплект для установки радиостанции в автомобиль. Но прелесть его в том, что помимо зарядного устройства, он содержит в себе полный аксессуарный разъем и конвертер TTL уровней в RS232, что позволяет подключать его напрямую к COM порту и шить радиостанцию без каких-либо заморочек навроде пайки проводов к разъему, "колхоза" переходников и прочих конвертеров, так любимых радиолюбительской публикой по причине проприетарности разъемов и невозможности найти "родные" кабели.

 Интересно, я единтсвенный такой идиот, который привинтил Carkit к столу и использует его как стационарное ЗУ и стойку программирования?))

 А вот так выглядит уже перепрошитая "старушка" - она вполне бодро регистрируется в местной TETRA сети.

 Что самое смешное - доставшийся мне вместе с ней "умный" аккумулятор серии IMPRES еще вполне бодр и держит заряд целый день. Но станция отчаянно ругается, что он "end of life" и просит его заменить - ну да, маркетинг такой маркетинг. Чтобы отучить ее от этой вредной привычки, достаточно заклеить средний пин аккумулятора скотчем: перестав получать данные с контроллера, станция решит, что в нее вставлена "неуправляемая" батарейка, начнет рассчитывать остаток заряда по напряжению и перестанет выдавать ошибки.

А кому работу в Германии?

Мы ищем саппорта на полный день. Офис в историческом центре Франкфурта рядом с метро, достойная зарплата (ее размер обсуждается), годовые бонусы, фитнес, чай-кофе-фрукты-печеньки, коллектив - интернациональная стая IT-троллей :)

Оформление естественно официальное, помощь с получением визы. Через 21 месяц работы можно получить ПМЖ, через 6 лет - гражданство.

Что нужно знать и уметь:
- Опыт работы с пользователями в техподдержке 1 и 2 линии,
- Опыт работы с Windows 10 и MacOS, а также с айфонами-айпадами-аймаками (да, у нас корпоративный яблочный стандарт). Если имеется знакомство с Munki и прочими подобными утилитами Apple - совсем хорошо,
- Понимание общих принципов работы сетей (TCP/IP, OSI etc., базовые знания),
- Знакомство с MS AD/Exchange/Sharepoint (на уровне добавить учетку/поменять права, глубокие познания не требуются),
- Понимание, что такое Linux и знакомство с консолью (глубокие знания не требуются),
- Разговорный/письменный английский (native speaker быть не обязательно, но хотя бы уверенный В1+ уровень должен присутствовать),
- Дружелюбность и терпение к пользователям, общая ответственность и адекватность,
- Немецкий язык - не обязателен, но будет преимуществом,
- Высшее техническое образование (нам оно незачем, но без него немецкую рабочую визу не дадут).

Чем надо будет заниматься:
- Поддержкой пользователей и офисного железа, взаимодействием с внешними провайдерами (картриджи, ремонт оргтехники, интернет etc.) - это основные задачи,
- Управлением аккаунтами и доступами в AD/Exchange/Sharepoint,
- Базовой поддержкой Linux серверов (на уровне получить SMS от мониторинга, залогиниться, перезапустить сервис, почитать логи, позвонить админу со словами "шеф, все пропало"),
- Написанием мануалов и howto для пользователей,
- Иногда замещать кого-нибудь из админов.

При наличии желания, научим человека админить Linux, базы данных, хранилки, виртуализацию, сетевое железо и прочие тяжелые энтерпрайзные вещи.

Заинтересовавшимся писать мне в личку.

Работа работником на работе за деньги

Только что вваливается к нам начальника, ржот - аж рыдает. И показывает резюме на вакансию программиста, которое ему прислали:

Name: Kumar
Location: Frankfurt
Skills: Programmer

Это все. Там конечно еще телефон был и e-mail, но больше ничего. Начальника говорит - ну а что, все правильно: в вакансии написано "ищем программиста во Франкфурте", а краткость - сестра таланта. Подумывает этому Кумару сразу оффер прислать, без собеседования :)

Трололо

Приходит сейчас наш саппорт:
- Влад, у тебя работает %ApplicationName%?
- Нет, но мне не критично.
- Ну в общем оно ни у кого не работает, мне надо у всех его обновить. Но на твою машину я не могу зайти по SSH. Почему?
- Потому что у меня высшее образование по информационной безопасности, Хулио...

Тихий ржач сидящих поблизости программистов. Занавес.