среда, 28 декабря 2011 г.

Качественный сервер видеонаблюдения - ZoneMinder

По  работе наткнулся на хороший бесплатный продукт ZoneMinder. Собственно это самая достойная альтернатива платным и "железячным" решениям с которыми довелось работать.

Простой мануал по установке:
http://www.zoneminder.com/wiki/index.php/CentOS

Позже попробую описать "ньюансики" и "рюшечки" данного комбайна.

четверг, 24 ноября 2011 г.

Данные о памяти на серверах Proliant без помощи AIDA64, CPU-Z и т.д.

В одной из сопровождаемых компаний потребовалось увеличить количество оперативной памяти на сервере. Т.к. сервера HP Proliant имеют в разных комплектациях (одинаковых моделей) разные типы оперативки, отличающейся по цене и форм фактору... предыдущий саппорт выполнял остановку и вскрывал сервера для того чтоб сфотографировать что нужно. Такой подход к вопросу поначалу удивил, а затем стало понятно почему так. Оказалось что Proliant блочит доступ к SPD, ну или по крайней мере дает инфу не в том формате что нужно для тех же AIDA64, CPU-Z, и прочьих "железософтов". Выход из ситуации довольно простой - использовать wmic, который встроен в Windows.

Пример команды: "wmic memorychip"   

четверг, 17 ноября 2011 г.

Zimbra - Initializing ldap...failed. (5632) и chown: invalid option -- 1


Во время внедрения сервера Zimbra произошла ситуация которая немного "погрызла" мозги.

  Т.к. установка Zimbra проводилось не впервой, то после всех базовых шагов смутила неожиданная надпись во время применения конфигурации - "Initializing ldap...failed. (5632)" ... Перерыв кучу малу форумов по данной ошибке, стало абсолютно понятно, что имею дело с чем то не ДНС связанным, т.к. любые тесты по записям проходили абсолютно нормально, не говоря о том что были перепробованы варианты с локальным ДНС и dnsmasq. Решил более плотно посмотреть логи которые создает Zimbra при применении конфигурации... и среди строчек нашел штук 7 предупреждений " chown: invalid option -- 1 ". Плотный поиск нашел лишь одинокое упоминание, о таких же предупреждениях, увы без каких либо ответов и комментариев. Далее руководствуясь скорее усталостью, начал методом тыка искать любые отличия между текущим и созданным на виртуалке серверами. В первую очередь отличие было в состоянии системы...если на виртуалке это была чистая CentOS, то в случае с сервером, ребята с хостинга (у которых арендовали сервак) проявили инициативу и установили кучу малу служб включая ISPManager, MySQL, Postfix, Apache ну и т.д... вообщем набор для полноценного предоставления хостинг услуг, который как казалось мне - был успешно снесен и вычищен из автозапуска. Беспокоило по сути только удаление ISPManager.. которое из разряда "убей директорию и попробуй перезагрузится". Доведенный до крайности полез в файлы passwd и group. Как оказалось ISPManager создает пользователей и группы с такими же id что и Zimbra. Убив окончательно все аккаунты id которых были в диапазоне 500-502, все отлично отработало и Zimbra полноценно установилась.

понедельник, 11 июля 2011 г.

Создание процесса "заявление на отпуск" при помощи SharePoint Designer

Статья находится в стадии написания, приношу извинения


Добрый день! В этой статье постараюсь описать создание типичного процесса для предприятия на базе SharePoint Foundation (Services), а именно - процесс подачи и утверждения заявления на отпуск от одного из сотрудников.

Итак имеем, к примеру, следующий алгоритм (выдуман из головы):
1. Человек подает заявление на отпуск, указывает период и тип
2. Заявку должен утвердить его непосредственный руководитель
3. После этого заявка попадает, для утверждения, в отдел управления персоналом
4. Затем как формальное уведомление главному бухгалтеру
5. Ну и в конце концов на утверждение к директору предприятия

По сути, для того чтоб человек ушел в отпуск, необходимо 4 согласия от лиц задействованных в данном процессе.


Сперва необходимо подготовить рабочую область для данного процесса... Она будет состоять из двух списков:
1. Список заявлений на отпуск предприятия
2. Задачи рабочего процесса, те при помощи которых будет получено согласие от необходимых людей, для принятия решения по заявлению

Создаем список SharePoint  и назовем его "заявления на отпуск"
Дальше необходимо определить требуемые колонки которые будут фигурировать в заявлении, возьмем к примеру следующие:
1. Имя заявителя
2. Тип отпуска (оплачиваемый, за свой счет... и т.д.)
3. Дата с которой запланирован отпуск
4. Дата по которую запланирован отпуск
5. Руководитель заявителя
6. Комментарии
Т.к. в списке есть один неудаляемый столбец с текстовым значением, то переименуем его в "Комментарии"

Добавляем колонку "Имя заявителя" с уже существующих "скрытых" колонок

Добавляем колонку с выпадающим списком "Тип отпуска"

Добавляем колонки "период с" и "период по"

Добавляем колонку с выбором пользователя "Руководитель"


Теперь создаем список задач для рабочего процесса... В нем нам необходимы следующие столбцы:
1. Заявитель
2. Кому назначено
3. Статус (выполнена или нет)

Для этого достаточно удалить все лишние колонки с представления. т.к. по умолчанию все уже есть


Запускаем SharePoint Designer и подключаемся к серверу SharePoint
Выбираем список "заявления на отпуск"

Создаем рабочий процесс... в поле область задач рабочего процесса указываем список задач созданный ранее

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

Создаем первый шаг по сбору информации от руководителя

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

Теперь создаем второй шаг по сбору информации от отдела персонал

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

Формальный шаг по уведомлению бухгалтера, от которого по сути потребуется лишь закрыть задачу и тем самым дать ход процессу далее

Ключевой шаг по результату от директора предприятия

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

В итоге имеем готовый процесс по утверждению заявления на отпуск, который разумеется потребуется доработать "под себя", как с точки зрения логики, так и с точки зрения безопасности (см. предыдущую статью) ... ну и который можно "прокачать" общим календарем отпусков и учетом оставшихся дней в запасе для каждого из сотрудников. Данная реализация имеет много минусов, но ее преимущество - это цена... Т.к. фактически она находится на бесплатной платформе. ИМХО намного интереснее реализовывать процессы на базе InfoPath, но к сожалению пока что официально бесплатной версии данного решения - нету. На этом собираюсь взять паузу по статьям посвященным SharePoint. Следующая запланированная тема - это процесс внедрения BlackBerry Enterprise Server Express на домен контроллер 2008 с установленным Microsoft Exchange 2010. Всем спасибо!

среда, 29 июня 2011 г.

Автоматизация назначений прав доступа к объектам SharePoint при помощи SharePoint Designer

Представим ситуацию, что у Вас есть общая библиотека документов (задач), в которую периодически пользователи (процесс или программа) сбрасывают информацию в том или ином виде. В какой-то момент возникает необходимость задать автоматически для всех документов некий шаблон разрешений, например «владелец может редактировать, все остальные нет»… или как более распространено с задачами рабочего процесса «тот, кому назначена, может редактировать, все остальные вообще не видят ее» ну и так далее. Т.к. разграничивать на уровне самого сервера довольно тяжело визуально, и не всегда практично, гораздо легче сделать это при помощи SharePoint Designer. Перед тем как приступить, пожалуйста, создайте отдельный список или библиотеку. Сугубо для тестов.

1. Вначале нам нужно подключиться к нужному списку посредством SharePoint Designer

2. Для примера выберем «Задачи»

3. Далее нажимаем «Рабочий процесс списка» и вводим имя, описание (опционально)


4. После нажатия «ОК» мы сразу попадаем на страницу создания рабочего прочесса, Важно переместить курсор подсветки немного выше первого шага

5. Теперь выше «шага 1»… Вы должны вставить «шаг олицетворения»… после этого «шаг 1» можно спокойно удалить

6. После перевода курсора внутрь шага, выбираем «действие» - заменить разрешения объекта списка (Replace List Item Permissions)


7. Выбираем подсвеченные «эти разрешения» (these permissions), в появившемся окне нажимаем «добавить»

8. Для задач рабочего процесса, как правило, достаточно предоставления полных прав только пользователю, которому назначена (Assigned to) задача. Нажимаем «выбрать», в появившемся окне выбора пользователей выделяем «поиск рабочего процесса для пользователя»…нажимаем «добавить». Далее появляется окно поиска, где собственно указывается откуда брать того пользователя кому будет предоставлен доступ… выбираем «текущий элемент» и поле «кому назначена» (Assigned to)…

9. После нажатия «ОК» в двух окнах, остается лишь выбрать уровень прав которые получит человек и нажать «ОК» два раза


10. После этого завершающим моментом будет выбор подсвеченного «списка» (this list). И в появившемся окне выбрать «текущий элемент» …нажать «ок»

11. Нажимаем «Сохранить» и возвращаемся к «Процесс разграничения прав» (путь навигации). И справа выбираем тип запуска процесса. Для задач рабочего процесса лучше всего его установить на «Автоматический при создании элемента». Т.е. как только что-либо создастся в библиотеке «задачи», права на этот элемент будут перезаписаны новыми. Нажимаем еще раз «сохранить» и «опубликовать»


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