пятница, 12 января 2018 г.

Проблема совместимости bacula разных версий.

Недавно столкнулся с проблемой совместимости bacula server 5 версии и bacula client 7 версии.
Почти 5 лет работает сервер bacula, установленный изначально на ubuntu 12.04, а затем обновленный до ubuntu 14.04. Текущая версия сервера- 5.2.6+dfsg-9.1ubuntu3
Я, честно говоря, уже и не помню как и что там настраивал, только восстанавливаю из бэкапов периодически нужные файлы. Однако недавно пришлось с ним поразбираться.
Основным источником бэкапов для бакулы является файловый сервер на Debian. Изначально была установлена 6 версия, которую по необходимости обновлял. И вот на днях из-за моих разбирательств с freeipa решил обновиться до debian 9 stretch. Все прошло штатно и вроде бы заработало. Хорошо!
И вдруг понадобилось восстановить один файлик. Полез в веб интерфейс, а там красным-красно! Да-да, знаю - бэкапы кроме как делать, нужно еще и проверять. И уж уведомление о не выполнении задания тем более настроить можно было! Но уж больно я ленив, да и критичность данного сервера сомнительна. В общем, полез разбираться - везде ошибка:

Fatal error: Authorization key rejected by Storage daemon.
For help, please see http://www.bacula.org/rel-manual/en/problems/Bacula_Frequently_Asked_Que.html
Fatal error: Bad response to Storage command: wanted 2000 OK storage, got 2902 Bad storage

Беглый гуглеж показал, что скорее всего проблема в доступности стораджа bacula-sd. Не может быть, ведь они в одной стойке, в одном коммутаторе и фаервол на обеих машинах отключен. Nmap подтверждет доступность.
Но в уме я уже держал недавнее обновление. Смотрю версию - новый клиент 7.4.4+dfsg-6
Добавляю эти данные в запрос и тут же получаю ответы! В одном англоязычном блоге товарищ пишет о несовместимости и рассказывает что он обновил клиента и все ОК. Затем в мэйл-листе бакулы на sourceforge нахожу подтверждение - заставить связку работать не получится... 8(
Но блин, там сервер древний как г.. мамонта! Обновлять ubuntu до 16 версии? Из-за одного пакета? Искать репы более новой бакулы для него? А, блин, подумал я - раз Debian устроил мне проблемы, с ним и буду решать!
Погуглил и на http://mirror.yandex.ru нашел нужные пакеты:
 http://mirror.yandex.ru/debian/pool/main/b/bacula/bacula-fd_5.2.6%2Bdfsg-9_amd64.deb
http://mirror.yandex.ru/debian/pool/main/b/bacula/bacula-common_5.2.6%2Bdfsg-9_amd64.deb


Собственно, для клиента достаточно. Установил через dpkg -i, все заработало.
Да способ кривой, лучше все-таки обновить сервер. Но лень 8)


понедельник, 13 ноября 2017 г.

Интеграция nextcloud и freeipa


Описывать полную настройку нет смысла, инструкций в инете миллион.
Официальная документация тоже достаточно подробна - http://www.freeipa.org/page/Owncloud_Authentication_against_FreeIPA

Упомяну несколько тонкостей:

1.Идем по вкладкам. На первой указываем сервер, имя пользователя и пароль, базу:
2. На вкладке Пользователи убираем классы объектов, чтобы были выбраны все:

(objectclass=*)

3. Учетные данные. Редактируем запрос LDAP:

(&(objectclass=*)(uid=%uid))

4. Группы
Выбираем ipausers:

(|(cn=ipausers))

5. Дополнительно.
В настройках подключения указываем резервный сервер.
В настройках каталога регулируем отображение пользователей:

Поле отображаемого имени пользователя - cn (иначе в список пользователей хэш вываливается)

Атрибуты поиска пользователей - этот пункт отвечает за то, по каким полям будет идти поиск в списке пользователей и при расшаривании файлов. Настраиваем по вкусу, чтобы искать по имени, фамилии, uid...
uid
cn
sn
gecos
displayName
givenName
dn
secondName
sureName 


И самое главное, ради чего начал писать заметку!!!
В пункте Специальные атрибуты нужно указать
Правило именования домашнего каталога пользователя
По умолчанию каталоги пользователей именуются уникальным UUID. То есть найти их в файловой системе сервера не получится. Чтобы самому видеть нормальные названия каталогов ставим здесь uid.

 
 

вторник, 14 апреля 2015 г.

sssd и ldap без шифрования.

Обновил свою рабочую станцию до opensuse 13.2 и обнаружил, что sssd не проводит аутентификацию через ldap если не используется шифрование.
Переделывать все настройки из-за одной машины(все остальные рабочие станции на ubuntu 12.04, там sssd еще нет) ? Не, мне лень!
В гугле есть решения для centos с редатированием  /etc/sysconfig/authconfig и опцией ldap_tls_reqcert = never в /etc/sssd/sssd.conf тыц , но в сюзе они не работают.
Что же делать, как же быть? Долгий и вдумчивый поиск приводит меня к опции  ldap_auth_disable_tls_never_use_in_production в кофигурационном файле sssd. Вдумайтесь! - ldap_auth_disable_tls_never_use_in_production
Я полдня смеялся!
Как становится ясно из названия, опция отключает обязательное использование TLS при аутентификации. Использовать такое в продакшене я, конечно, не рекомендую, но для быстрого включения в имеющуюся среде одной станции - сойдет

понедельник, 24 февраля 2014 г.

Внедряем Ansible.

Ansible - простая в использовании система управления конфигурациями серверов. Я тестировал pupet и chef, но в моих условиях (управление рабочими станциями) их использование превращалось в ад. Некоторое время назад искал систему с работой через ssh, но нашел только какую-то монструозную немецкую поделку, полностью на php и с интерфейсом из детсада. К тому же с нетривиальной установкой и настройкой. И вот недавно попалась статья на Хабре http://habrahabr.ru/post/211306/
Проникшись, я снес так и незаработавший паппет и установил героя - Ansible.
Как обычно я не буду тщательно расписывать установку и настройку, в сети уже полно манов на русском, да и официальная документация подробнейшая, правда уже на английском.
Остановлюсь на граблях, с которыми столкнулся:
1) Работа с шеллом удаленной системы.
Возможно я не очень хорошо знаю apt или yum, но если у вас имеются какие-то вопросы с установленным ПО, вы долго будете соображать - почему не фурычит Ansible? В частности, у меня в убунте был добавлен ППА wine, но не был скопирован сертификат репозитория. Соответсвенно, несмотря на ключ -y в apt все равно выскакивал запрос на обновление пакетов из этого репозитория. Ansible при этом просто ждет окончания установки до бесконечности. Аналогичная проблемам была с каким-то запросом насчет установки нового grub.
Так что если Ansible долго не возвращает ответ - идите на клиентскую систему.

2) Список хостов.
В документации черным побелому написано:
Edit (or create) /etc/ansible/hosts and put one or more remote systems in it, for which you have your SSH key in authorized_keys:
Это означает, что прежде чем приступать к управлению через Ansible, нужно каким-то образом получить запись о клиенте в файл authorized_keys. Я просто логинился к лиенту по ssh руками.
Может кто подскажет, каким образом создать эти записи обо всех хостах в сети автоматически?

3) Авторизация на хостах происходит либо по rsa ключу (долго и муторно рассылаем его по клиентам), либо с запросом пароля (раскоментировать опцию ask_pass      = True
 в файле /etc/ansible/ansible.cfg, если вы работаете под рутом) или прописать в инвентарном файле опции подключения (192.168.0.36 ansible_ssh_user=root ansible_ssh_pass=пароль_рута в файле /etc/ansible/hosts, например).

Пока все. Если найду что-нибудь интересненькое - сообщу в комментах либо отдельным постом.
А вообще Ansible просто чудо! Я в нее влюбился, особенно после puppet.

четверг, 6 июня 2013 г.

1C 8.3 на Linux.

Краткий отчет о внедрении 1с 8.3 на предприятии.
Из-за описанных ранее проблем с использованием клиента 8.2 под wine, сразу же после релиза я приступил к тестированию. Несколько дней проверки не выявили каких либо багов, поэтому внедрение платформы последовало незамедлительно.
В целом система полностью работоспособна, но дьявол, как известно, кроется в деталях.
Интерфейс клиента НЕВЕРОЯТНО медлителен! Отрисовка списков видима глазом, практически построчная. Перемещение окон оставляет оставляет серый след на заднем плане. Нажатие кнопок в модальных окнах настолько неторопливо, что иногда можно успеть кликнуть "Да" 3-4 раза, прежде чем окно закроется. Порльзователи работают над одним документом минут по 30.
Из серьезных проблем выявлена только одна - не работает перемещение в списках при наборе первых букв искомого значения. Окно 1С странным образом мигает, как будто бы фокус ввода предается другому, и ничего не происходит.
В результате работать невозможно. Все описанные симптомы проявляются на самых разных компьютерах, от Atlon XP 1.7Ггц и Atom N2600 до Core 2 Quad 2.4 и Core i3 3.0. Использовались дистрибутивы Xubuntu 12.04 (XFCE 4.8) и openSUSE 12.1 (KDE 4.5, 4.10). Версия для Windows работает нормально.
Принято решение вернуться на платформу 8.2.
Скриншоты напоследок:



среда, 29 мая 2013 г.

Потеря кворума в Proxmox

Proxmox - достаточно гибкая система виртуализации. С его помощью можно построить как многонодовые кластеры с High Availability, так и запустить пару виртуалок на отдельном серваке. В моем случае используется 2 сервера с общим хранилищем бекапов на nfs.
Не буду вдаваться в теорию настройки (можно почитать в wiki), упомяну только, что для управления кластером необходим непрерывный доступ к общему хранилищу, даже если оно используется раз в несколько дней. Однако бывают ситуации, когда этот самый доступ неожиданно пропадает. Сетевое оборудование, например, заглючило, или nfs понадобилось перезагрузить.И вот тогда начинаются проблемы. Нет, с виртуалками все нормально - работают, доступны, настраиваются. А вот с бекапом, миграцией, созданием и удалением все не так радужно. Дело в том, что ноды кластера теряют кворум.
При входе в веб интерфейс Proxmox это заметно по состоянию нод:


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


Упс... Что делать?
Пробуем дергать сервисы:
/etc/init.d/cman restart - не помогает
/etc/init.d/rgmanager restart - мимо
/etc/init.d/pve-manager restart - не то
/etc/init.d/pve-cluster restart - 8(
/etc/init.d/pve-daemon restart - все, демоны кончились.

Да что такое! Я ведь помню, что реанимировал кластер в прошлый раз именно таким образом. Собственно, я не помню последовательность перезапуска, поэтому и начал писать заметку на память.
Лезу в историю команд, выявлять закономерность. Ага, в прошлый раз были cman, rgmanager и pve-cluster, а сейчас pve-manager еще затесался. Делаю как раньше - кворум!


Судя по выводу в консоль при выполнении команд, к нашей проблеме имеют отношение только cman и pve-cluster, остальное можно не дергать. Так это или нет - проверю в следующий раз.

среда, 15 мая 2013 г.

Openfire в Elastix

Как выразился коллега с форума elastix.org - facking elastix!
Иногда по необъяснимым причинам перестают работать сервисы, запущенные на этой замечательной системе. Asterisk, там, или, как сегодня - openfire. С зависанием астера пока не разобрался, лечусь ребутом раз в пару месяцев, а вот сервер сообщений победить удалось.
Симптомы следующие: отваливаются клиенты, нет соединения на порт 9090, при этом сервис openfire запущен и его рестарт ничего не дает.
В логах на - пусто, единственное сообщение про avahi. На всякий случай перезагружаем и его - ничего.
В веб-интерфейсе после перезагрузок состояние openfire переходит в service not activated. Гугл предлагает уже проведенные манипуляции с /etc/init.d/openfire.
И тут меня осенило!

ps aux|grep open

daemon    7342  158  2.6 673520 54144 ?        Sl   15:50   0:09 /opt/openfire/jre/bin/java -server -DopenfireHome=/opt/openfire -Dopenfire.lib.dir=/opt/open.jar

/etc/init.d/openfire stop
ps aux|grep open

А картина та же! После остановки сервиса его процесс остается запущенным. Естественно, новый процесс не может подключиться к занятым портам, клиенты и браузер соответственно тоже.
Убить!

kill -9 7342
 /etc/init.d/openfire start
Теперь все в порядке.