Работа с ИБП.



  • Всем привет.
    После очередного внезапного отключения электричества и последовавшей за этим циклической перезагрузки машины с pfSense, возникло стойкое желание "подружить" pfSense с ИБП. ПО бесперебойника имеет версии для работы с Linux и может выполнять командный файл.
    Подскажите, какой командой можно корректно выключить машину с pfSense с Windows-машины?
    Спасибо.



  • В pfsense должен быть включен SSH.
    plink.exe root@192.168.1 -pw password shutdown -p now

    plink.exe из комплекта putty.
    password - пароль администратора pfsense.

    Первый раз выполните plink.exe root@192.168.1 интерактивно и согласитесь на  кэширование ключа.



  • Спасибо большое!
    Попробую сделать.



  • тут человек немного другое хотел =)
    я думаю он желает воткнуть USB от UPS прямо в PFsense и на самом сенсе воткнуть ПО для выключения железа.
    но т.к. ПО тут фиг воткнёшь, то остаются костыли.
    предложенный вариант коненчо интересен, но секурность отсутствует =(
    как вариант я бы попробовал посмотреть, а не поддерживается ли ваш UPS из коробки…
    в конце концов этот PowerD модуль. должен же чего то полезного делать, а не только ограничивать потребление энергии железом.
    гипотетически можно и ПО попробовать вкорячить



  • Вопрос был конкретно:
    Подскажите, какой командой можно корректно выключить машину с pfSense с Windows-машины?

    По поводу безопасности - согласен, дыряво. Варианты - положить файл в папку с достаточным уровнем безопасности + обфусцировать пакетный файл и получить шифрованный exe.
    Попадался неплохой софт для этого, название после изготовления своего exe утеряно.

    Подключать ИБП исключительно к pfSense несколько расточительно, или же встанет обратный вопрос - выключения Windows-машин.

    Можно попытаться использовать nut из пакетов. У меня он имеющиеся UPS не признал.



  • Может это поможет:
    http://www.lissyara.su/articles/freebsd/trivia/apcupsd/
    в pfSense есть пакет APCUPSD



  • @WY6EPT:

    тут человек немного другое хотел =)
    я думаю он желает воткнуть USB от UPS прямо в PFsense и на самом сенсе воткнуть ПО для выключения железа.

    Нет, я как раз хотел то, о чем писал. Но если есть указанная возможность, мы, конечно же, предпочли бы сделать именно так - купили бы какой-нить небольшой ИБП исключительно для сенса, но я не уверен, что есть ИБП, способные работать с FreeBSD из коробки.
    @WY6EPT:

    но т.к. ПО тут фиг воткнёшь, то остаются костыли.
    предложенный вариант коненчо интересен, но секурность отсутствует =(

    Это и напрягает…
    @WY6EPT:

    как вариант я бы попробовал посмотреть, а не поддерживается ли ваш UPS из коробки…
    в конце концов этот PowerD модуль. должен же чего то полезного делать, а не только ограничивать потребление энергии железом.
    гипотетически можно и ПО попробовать вкорячить

    Поищу. Может, есть у кого успешный опыт конфигурирования сенс+ИБП? Поделитесь успехом.

    @yur4ik-bond:

    Может это поможет:
    http://www.lissyara.su/articles/freebsd/trivia/apcupsd/
    в pfSense есть пакет APCUPSD

    Спасибо, посмотрю, попробую сделать



  • но я не уверен, что есть ИБП, способные работать с FreeBSD из коробки.

    UPS поддерживает не так сама ОС, а пакеты. Насколько "из коробки" - зависит от конкретного бренда и модели.
    Для NUT список поддерживаемых UPS выглядит так:
    http://www.networkupstools.org/stable-hcl.html

    Для APCUPSD он, наверное, тоже существует, но
    http://www.apcupsd.org/
    недоступен.





  • Использовал совместно с pfsence ИБП APC серии CS500, подключал по USB, проблем небыло.
    Далее pfsense переехал под esxi5, там тоже работал через проброшенный USB порт, но периодически терялась связь.
    Помогало физическое передергивание кабеля USB (пробовал и nut и apcupsd).
    Все это надоело, сейчас по SNMP подключен к карте AP9631 при помощи nut.
    Тот что под esxi завершается средствами самой esxi через open-vm-tools, сама же esxi тоже подключена к AP9631 средствами pcns от apc



  • Всем спасибо за ответы.
    @Buch:

    Использовал совместно с pfsence ИБП APC серии CS500, подключал по USB, проблем небыло.

    Вопрос человека, совсем не знакомого с FreeBSD - подключил я похожий АРС (RS500) к сенсу. А дальше как его настроить? Нужно какой-нибудь пакет скачать? Ведь не появится же сообщение "New hardware found" :)

    werter
    Спасибо, полезная статья. Тем более, что у нас как раз vanguard-ы стоят. Только мне реализовать будет весьма сложно при отсутсвии знаний по FreeBSD. Сначала попробую индивидуальный бесперебойник для сенса.

    Оффтоп: Посоветуйте какое-нибудь удачное руководство (или введение) по FreeBSD, чтобы понять хотя бы основы. Не талмуд на 800 страниц, а хорошее, на ваш взгляд, издание.

    ps Купил на AmazonpfSense 2 Cookbook, пробежался поиском слова UPS и power - ничего по вопросу конфигурирования бесперебойников не нашел.

    UP. Нашел топик NUT (Network UPS Tools), взял старенький APC Back-UPS RS-500, подключил, скачал NUT, выбрал наиболее подходящие значения в настройках, однако, в NUT Status либо Data is stale, либо NUT is enabled, however the service is not running. "Наиболее подходящие значения" потому, что на кабеле от АРС маркировка отличается от предлагаемых на сенсе - там либо серый с маркировкой 940-0095В, либо черный с маркировкой 940-0024С. А у нас только 940-0127Е. Возможно, дело в этом.
    Есть идеи, что можно еще попробовать, чтобы подружить сенс и ИБП?



  • Оффтоп: Посоветуйте какое-нибудь удачное руководство (или введение) по FreeBSD, чтобы понять хотя бы основы. Не талмуд на 800 страниц, а хорошее, на ваш взгляд, издание.

    Что-то типа http://freebsdguide.ru/
    Типа Работа с FreeBSD -> google



  • За freebsdguide.ru спасибо!
    А спрашивать у гугла про работу с FreeBSD - пальцем в небо. Хотелось сэкономить время хотя бы на поиске хорошего руководства или издания.

    По настройке NUT - похоже, что поиска и выбора подходящих строк (значений) в Local UPS Settings - Local UPS Model, Local UPS Port, Local UPS Generic Type, Local UPS Cable Type недостаточно, нужно еще вносить изменения в файлы ups.conf и пр.

    Но после установки NUTа вручную прописать нужный драйвер (usbhid-ups вместо того что было) в ups.conf не составило труда. И всё тут же заработало.

    Для автора цитаты это легко, я же не представляю, как добиться "видимости" упса сенсом. Перепробовал все комбинации моделей и типов кабелей, но безуспешно.
    Искал материал с подробными инструкциями по подключению и настройке ИБП к сенсу с применением NUT, но так и не нашел.
    Для тех, кто "в теме", наверняка, всё очевидно, но для новичка это не так.
    Если кому попадался подобный материал, поделитесь ссылкой. Можно на английском.
    Я пока не понимаю, фраз, вроде таких:

    Найдем и установим порт, а так же выберем необходимые опции.

    cd /usr/ports && make search name='nut-2'

    Port:  nut-2.4.1_6
    Path:  /usr/ports/sysutils/nut
    Info:  Network UPS Tools
    Maint:  itetcu@FreeBSD.org
    B-deps: autoconf-2.68 autoconf-wrapper-20101119…
    R-deps: expat-2.0.1_1 gettext-0.18.1.1 libiconv-1.13.1_1...
    WWW:    _http://www.networkupstools.org/

    cd /usr/ports/sysutils/nut && make config

    Как установить нужный драйвер, как узнать его название и убедиться, что установлен именно он. К примеру, если я выдерну USB шнурок от ИБП, то увижу на сенсе строки:

    ugen2.5: <american power="" conversion="">at usbus2 (disсonnected)</american>

    Означает ли это, что драйвер установлен, или это лишь указывает но то, что система видит некий абстрактный ИБП от АРС?



  • Попробуйте задать вопрос вот тут http://forum.lissyara.su/

    Если разберетесь - отпишитесь здесь на форуме. Спасибо.



  • @Buch:

    Использовал совместно с pfsence ИБП APC серии CS500, подключал по USB, проблем небыло.

    А с помощью чего было реализовано? NUT, apcupsd? Можно чуть подробнее, или ссылку на материал, по которому выполнялась настройка? Собственно, это и есть конечная цель.
    Я бы спросил у автора, у которого

    Но после установки NUTа вручную прописать нужный драйвер (usbhid-ups вместо того что было) в ups.conf не составило труда. И всё тут же заработало.

    , но топик закрыт.
    2werter
    Не совсем понятно это перенаправление. Почему надо спрашивать о конфигурировании связки сенса и ИБП на другом ресурсе, тем более, что у участников этого форума есть успешные реализации работы ИБП и сенса, судя по ответам. Был бы топик в FAQ на эту тему - не было бы вопросов.
    Впрочем, после успешного завершения этого, м-м-м… мероприятия, по обеспечению корректной работы сенса и ИБП в типовом сценарии, когда пропадает питание, сенс работает до определенного уровня разряда батареи, после чего выключается, а при возобновлении энергоснабжения включается и возобновляет работу, я готов написать подробную, пошаговую инструкцию.
    Ведь для того, чтобы задать хосту IP не обязательно досконально разбираться в работе Ethernet, ARP, CIDR, маршрутизации и пр. Так и здесь - есть устройство, работающее под управлением pfSense и есть необходимость обеспечить его корректную работу с ИБП. И для того, чтобы это сделать, наверняка не обязательно иметь представление об архитектуре ОС и изучать основы её работы. Это можно сделать и позже, при наличии времени и желания.



  • Разобрался.
    Стоит обратить внимание на два момента:

    • Надо внимательно читать надписи на странице конфигурирования NUT, а именно эту: "If generic or cable specified in parenthesis you need to select the appropriate option below. " Отсюда следует, что если не generic или cable specified, то ничего заполнять не надо. Моя ошибка была в том, что я пытался указать все, что можно, а этого делать было не надо.

    • Статус ИБП, даже если все правильно сконфигурировано, не всегда корректно отображается с первого раза, т.е. после нажатия кнопки "Change" выполняется переход на вкладку Status, однако показывает ошибку. И только после клика по названию вкладки, которое является ссылкой, текущий статус отображается нормально.

    Протестировал работу связки сенса и APC Back UPS ES 700. Заметил одну особенность - если восстановить подачу эл-ва в промежуток между тем моментом, как сенс вырубился, но UPS еще работает, то машина с сенсом сама не стартует. Это происходит только если UPS совсем разрядится и вырубится, издав последний писк.
    Кроме того, в настройках NUT лучше поставить галку Power Down Instead of Halt, в противном случае в консоли сенса увидим надпись "System was halted. Press any key to reboot" или что-то в этом роде.



  • К сожалению не успел с ответом по настройке NUTa, уже сами разобрались!

    @Alex-pmx:

    Протестировал работу связки сенса и APC Back UPS ES 700. Заметил одну особенность - если восстановить подачу эл-ва в промежуток между тем моментом, как сенс вырубился, но UPS еще работает, то машина с сенсом сама не стартует. Это происходит только если UPS совсем разрядится и вырубится, издав последний писк.

    Чтобы этого не происходило нужно использовать SMART UPS. У них задается время с момента приема команды на выключение до фактического отключения нагрузки. Причем это отключение происходит и при возобновлении подачи питания в момент завершения работы. Если он выключился по команде, то включения произойдет по достижении выставленного порога заряда батарей. Если заряда достаточно - почти сразу.



  • Осталось понять, как определить Smart - не Smart, если смотреть на бесперебойники, выпущенные не АРС. :) Но с этим уже проще - материалов в Сети предостаточно.
    ps
    @werter:

    Попробуйте задать вопрос вот тут http://forum.lissyara.su/

    Попытался зарегиться на этом ресурсе - ссылка для активации учетки так и не пришла. А если попробовать поискать инфу - Извините, но вам запрещено пользоваться поиском.



  • @Alex-pmx:

    Осталось понять, как определить Smart - не Smart, если смотреть на бесперебойники, выпущенные не АРС. :) Но с этим уже проще - материалов в Сети предостаточно.

    Посмотрите здесь: http://www.apc.com/shop/ru/ru/categories/power/uninterruptible-power-supply-ups-/network-and-server/smart-ups/_/N-1h89yke



  • @Buch:

    Чтобы этого не происходило нужно использовать SMART UPS. У них задается время с момента приема команды на выключение до фактического отключения нагрузки. Причем это отключение происходит и при возобновлении подачи питания в момент завершения работы. Если он выключился по команде, то включения произойдет по достижении выставленного порога заряда батарей. Если заряда достаточно - почти сразу.

    У меня вопрос пока остается открытым, поэтому прошу помочь со следующими вопросами:
    @Buch:

    Чтобы этого не происходило нужно использовать SMART UPS. У них задается время с момента приема команды на выключение до фактического отключения нагрузки.

    Где и как это задается?
    @Buch:

    Если он выключился по команде, то включения произойдет по достижении выставленного порога заряда батарей. Если заряда достаточно - почти сразу.

    Аналогичный вопрос - где и как устанавливается порог заряда батареи? Этот же вопрос интересует и с точки зрения конфигурирования уровня заряда, при котором происходит выключение машины. Сейчас - это где-то в районе 5%, а я хотел бы увеличить этот параметр, скажем, до 50%, ибо нет смысла до последнего момента держать работающим сенс, когда большинство остальных серверов уже наверняка выключились. К тому же, при более высоком уровне заряда, по идее, должен быстрее произойти и запуск в случае восстановления подачи энергии, если я правильно все понял.
    В документации к NUT пока этой информации не нашел.
    На данный момент из другого офиса привезен APC Smart 1000. Без какого-либо конфигурирования он ведет себя точно также, как и APC Back, т.е. не включает машину с сенсом, если возобновление подачи энергии происходит при работающем ИБП.
    Можно было бы предположить, что включение происходит по достижении определенного уровня заряда, но с Back UPS этого не произошло более, чем за двое суток (тестовый стенд был оставлен на выходные. Сенс был корректно выключен со стороны ИБП, после чего на него (ИБП) возобновилась подача эл-ва). А со SMART UPS этого не произошло за два с лишним часа.



  • Как то странно все это — после выключения системы, она может включиться совсем не многим количеством способов.

    1. Если происходит обрыв питания, то в BIOS обычно есть опция включения по возвращению питания, но при этом должен быть умный ИБП который сам умеет отключать нагрузку на некоторое время, и таких я как-то не встречал за вменяемые деньги. И обычно при нормальном выключении система даже при таких параметрах сама не стартует.
    2. Подача сигнала RNG в COM порт от ИБП после восстановления питания, естественно в BIOS подобная опция должна быть активирована.
    3. Контролирование  ИБП с IP мониторингом сторонними сервисами и запуск систем через IPMI.


  • @Alex-pmx:

    Аналогичный вопрос - где и как устанавливается порог заряда батареи? Этот же вопрос интересует и с точки зрения конфигурирования уровня заряда, при котором происходит выключение машины. Сейчас - это где-то в районе 5%, а я хотел бы увеличить этот параметр, скажем, до 50%, ибо нет смысла до последнего момента держать работающим сенс, когда большинство остальных серверов уже наверняка выключились. К тому же, при более высоком уровне заряда, по идее, должен быстрее произойти и запуск в случае восстановления подачи энергии, если я правильно все понял.
    В документации к NUT пока этой информации не нашел.
    На данный момент из другого офиса привезен APC Smart 1000. Без какого-либо конфигурирования он ведет себя точно также, как и APC Back, т.е. не включает машину с сенсом, если возобновление подачи энергии происходит при работающем ИБП.
    Можно было бы предположить, что включение происходит по достижении определенного уровня заряда, но с Back UPS этого не произошло более, чем за двое суток (тестовый стенд был оставлен на выходные. Сенс был корректно выключен со стороны ИБП, после чего на него (ИБП) возобновилась подача эл-ва). А со SMART UPS этого не произошло за два с лишним часа.

    Вот страничка настройки, это через карту доступа AP963x. Такие же настройки доступны при настройке через USB/RS232 при помощи штатных программ Power Shute.
    Весь этот механизм с завершением работает когда на ИБП была выдана команда "завершения работы" - только в этом случае он выждет паузу (у меня 180 сек) и даже если за это время питание было восстановлено будут отключены выходы и включены вновь если выполнено условие возобнавления работы (у меня 15% батареи).
    Если команда не выдавалась - все будет как на обычном ИБП.
    На машине в биосе должно быть настроено включение при подаче питания.




  • Вопрос в том, как добраться до подобной странички со стороны сенса. Впрочем, попробую подключиться к ИБП по USB с ноута, сконфигурировать все как мне надо, а потом переткнуть USB кабель обратно в сенс.



  • @Alex-pmx:

    Вопрос в том, как добраться до подобной странички со стороны сенса. Впрочем, попробую подключиться к ИБП по USB с ноута, сконфигурировать все как мне надо, а потом переткнуть USB кабель обратно в сенс.

    Эти настройки делаются один раз, ясное дело на другой машине. От "сенса", точнее от nut требуется только выдача команды "завершить работу"



  • Пока что неудачно. Впрочем, это логично, если задуматься.
    Итак, имеем APS Smart 1000, подключаем его по USB к ноуту, на который ставим PowerChute Сервер, Агент и Консоль (без компонентов сконфигурировать не получится). Конфигурируем ИБП, после чего перетыкаем USB в сенс. В результате NUT видит ИБП, но не воспринимает от него команд, что логично. С какого, простите, перепуга NUT и виндовый PowerChute должны работать по одному протоколу? При наступлении ситуации, сконфигурированой в PowerChute, ИБП честно отправляет соотв. команду для PowerChute. Но с чего NUT должен "понять" её?
    В случае с картой - другое дело. Не уверен, но предполагаю, что с её помощью можно а) сконфигурировать ИБП, б) сигналы от нее одинаково хорошо понимают разные ОС и модули, в частности - NUT.
    Выход - либо внедрять решение с картой, либо искать ПО на сайте производителя ИБП и курить их форумы.



  • @Alex-pmx:

    С какого, простите, перепуга NUT и виндовый PowerChute должны работать по одному протоколу?

    В этом случае и данные nut не должен воспринимать.
    К сожалению работающее решение разобрано и нет возможности его повторить.
    Почитайте здесь http://www.networkupstools.org/docs/man/usbhid-ups.html, посмотрите конфиги nut, должен быть скрипт выполняющийся в момент когда nut решит выключаться, там и должна выдаться в ИБП команда на выключение с задержкой



  • У меня pfsense дружит с ибп фирмы APC с коробки. Поставил только пакет и все выключается/включается без проблем :)



  • Да, тоже удалось добиться нормальной работы сенса с пакетом NUT и АРС Smart 1000 и RS500.



  • Кто-то себя пяткой в грудь бил, что напишет пошаговую инструкцию… :-\



  • Попался в руки ИБП APC Back-UPS RS500 (BR500I).
    Растянул виртуалку с 2.2.6, пробросил USB от ИБП.
    Вот как оно работает с apcupsd и nut.
    Ставил релиз 2.3.1 - там нет этих пакетов.










  • Вот как оно работает с apcupsd и nut.

    А где самое вкусное: WEB интерфейс?



  • "Из коробки" нет веб интерфейса.
    Можно настроить доступ извне snmp, nut (для подключения систем, запитанных от этого же ИБП)
    Для nut есть gui в виде win nut client



  • А есть инструкция для обычных смертных ? как например настроить RS500 с кабелем на rs232?



  • А с помощью чего было реализовано? NUT

    Последние версии NUT в пакете для pfSense имеют "умный" USB драйвер, исчезли кучи настроек с выбором кабеля и пр.
    Важный момент - после  включения сервиса и  выбора драйвера требуется перезагрузка
    Для NUT в pfSense пакет устанавливает виджет.

    На скриншоте - мои настройки для APC Back-UPS RS 1000

    RUN_AS_USER root включил для E-Mail notifications, без него него не работает отправка почты через SSL\TLS

    ignorelb
    override.battery.charge.low = 30
    override.battery.runtime.low = 300

    Меняют порог отключения с дефолтных очень малых величин на 30% или 300 секунд.

    Пробовал и apcupsd,работает, но  остановился на NUT.
    Тема, где очень отзывчивый автор пакета NUT отвечает на вопросы:
    https://forum.pfsense.org/index.php?topic=115349.msg661791#msg661791
    То же, но для apcupsd:
    https://forum.pfsense.org/index.php?topic=70830.msg688548#msg688548