пятница, 8 октября 2010 г.

SSH по сертификатам и удаленное выключение

Имеем:
Один APC Smart-UPS 1000VA, к нему подключен ESXi с гостевой машиной  vMA  - как это сделано я описал ранее .
Теперь подключаем к APC Smart-UPS  Soft хранилище ISCSI  реализованное на OpenFiler. Как подключать OpenFiler к ESXi есть множество статей. Openfiler подключен для хранения резервных копий гостевых машин ESXi.
Задача, при пропадание напряжения выключать OpenFiler с гостевой машины vMA, для экономии заряда аккумуляторов.
В предшествующих постах была рассмотрена установка программы мониторинга APC UPS.
И так поехали.
На гостевой машине  vMA проверим необходимые опции в /etc/ssh/ssh_config

[vi-admin@vma ~]$ sudo nano /etc/ssh/ssh_config
раскоментируем IdentityFile ~/.ssh/id_rsa

#     StrictHostKeyChecking ask
#     IdentityFile ~/.ssh/identity
       IdentityFile ~/.ssh/id_rsa
#     IdentityFile ~/.ssh/id_dsa

На сервере OpenFiler проверим необходимые опции в /etc/ssh/ssh_config

[root@of ~]# nano /etc/ssh/ssh_config
раскоментируем или добавляем RSAAuthentication yes,  PubkeyAuthentication yes, AuthorizedKeysFile %h/.ssh/authorized_keys

#       RhostsRSAAuthentication no
        RSAAuthentication yes
        PubkeyAuthentication yes
        AuthorizedKeysFile %h/.ssh/authorized_keys
#       PasswordAuthentication yes


На клиенте vMA создадим ключ командой ssh-keygen без пароля

на вопросы
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
жмём ENTER

[vi-admin@vma ~]$ sudo bash
[vi-admin@vma ~]$ ssh-keygen -b 4096 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/vi-admin/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/vi-admin/.ssh/id_rsa.
Your public key has been saved in /home/vi-admin/.ssh/id_rsa.pub.
The key fingerprint is:
53:c3:72:f9:d5:0e:53:87:56:eb:6c:69:f3:3b:7e:06 vi-admin@vma

Создадим ограниченного пользователя shutdown на сервере OpenFiler
[root@of ~]# useradd shutdown
Зададим ему пароль
[root@of ~]# passwd shutdown

Создадим на сервер vMA альясы для соединения с OpenFiler
[root@vma ~]# nano ~/.ssh/config
Host OF
HostName 10.129.0.10
User shutdown
Port 22

Копируем ключ на сервер OpenFiler для пользователя shutdown
[root@vma ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub shutdown@10.129.0.10
30
shutdown@10.129.0.10's password:
Now try logging into the machine, with "ssh 'shutdown@10.129.0.10'", and check in:
  .ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.

проверяем коннект по SSH с vMA на Openfiler

[root@vma ~]# ssh OF
Last login: Fri Oct  8 15:32:25 2010 from 10.129.0.9
[shutdown@of ~]$

настраиваем sudo для возможности выполнять команду /sbin/shutdown -h now

на сервере OpenFiler

[root@of ~]# nano /etc/sudoers
shutdown ALL = NOPASSWD: /sbin/shutdown -h now

[root@of ~]# nano /home/shutdown/.bashrc
sudo /sbin/shutdown -h now

Создаем файл отправки SMS перед отключением OpenFiler
[root@vma ~]#exit
[vi-admin@vma ~]$ sudo nano /opt/APC/PowerChuteBusinessEdition/Agent/cmdfiles/send_sms_OF_shutdown.sh
#!/bin/sh/home/vi-admin/sms_send/send.py -n +7953xxxxxxxx -t "OpenFiler-выключается" -l xxx@mail.ru -p xxxx > /dev/null 2>&1

сделаем файл запускаемым
[vi-admin@vma ~]$ sudo chmod +x /opt/APC/PowerChuteBusinessEdition/Agent/cmdfiles/send_sms_OF_shutdown.sh

Создадим скрипт выключение  OpenFiler
[vi-admin@vma ~]$ sudo nano /opt/APC/PowerChuteBusinessEdition/Agent/cmdfiles/OF_shutdown.sh
 !/bin/sh
/opt/APC/PowerChuteBusinessEdition/Agent/cmdfiles/send_sms_OF_shutdown.sh
ssh OF


сделаем файл запускаемым   
[vi-admin@vma ~]$ sudo chmod +x /opt/APC/PowerChuteBusinessEdition/Agent/cmdfiles/OF_shutdown.sh





четверг, 30 сентября 2010 г.

Хочу всё знать или уведомления через SMS

Данный пост является продолжение  Vmware ESXi 4.1 и APC Smart-UPS 1000VA USB & Serial RM 2U
Путей реализации отправки уведомлений через SMS много.
И так цели:
Необходимо получать SMS на сотовый в случаи пропадания питания на APC-UPS и выключении виртуальных машин на гипервизоре ESXi.
Одно из решений:
1. Регистрируем почтовый аккаунт на mail.ru
2. Скачиваем архив с скриптом на Python отсюда http://file.qip.ru/file/kv2u-TVD/sms_send.html
3. Закачиваем архив sms_send.zip на vMA через winSCP
    или делаем так  (в обоих местах лежит один и тот же скрипт)

 В конечном итоге архив должен оказаться на vMA
4. Распаковываем  и проверяем содержимое
[vi-admin@vma ~]$ unzip ./sms_send.zip
[vi-admin@vma ~]$ cd sms_send
[vi-admin@vma sms_send]$ ls

mrimsmssender  send.py

5. Немного правим скрипт под vMA
[vi-admin@vma sms_send]$ nano /home/vi-admin/sms_send/send.py

делаем первые строки такие
#!/usr/bin/python
# -*- coding: utf-8 -*-

6. делаем скрипты для отправки уведомлений
[vi-admin@vma sms_send]$ sudo nano /opt/APC/PowerChuteBusinessEdition/Agent/cmdfiles/send_sms_no_power.sh
с таким содержимым

#!/bin/sh
/home/vi-admin/sms_send/send.py -n +79534xxxxx6 -t "нет напряжения на ESXi" -l tvoi-email@mail.ru -p tvoi-password > /dev/null 2>&1
[vi-admin@vma ~]$ sudo nano /opt/APC/PowerChuteBusinessEdition/Agent/cmdfiles/send_sms_power_off.sh
с таким содержимым

#!/bin/sh
/home/vi-admin/sms_send/send.py -n +
79534xxxxx6 -t "ESXi-выключается" -l tvoi-email@mail.ru -p tvoi-password > /dev/null 2>&1

79534xxxxx6 - это номер куда отправлять SMS
tvoi-email@mail.ru - это твой адрес на mail.ru
tvoi-password - это твой пароль от от твоего почтового ящика

7. Делаем скрипты исполняемым
[vi-admin@vma sms_send]$ sudo chmod +x /opt/APC/PowerChuteBusinessEdition/Agent/cmdfiles/send_sms_no_power.sh
[vi-admin@vma ~]$ sudo chmod +x /opt/APC/PowerChuteBusinessEdition/Agent/cmdfiles/send_sms_power_off.sh
8. Добавляем в defaut.sh выполнение скрипта с отсылкой SMS о выключении
[vi-admin@vma ~]$ sudo nano /opt/APC/PowerChuteBusinessEdition/Agent/cmdfiles/default.sh
 
Должно быть вот так:
# If this does not work please contact your system administrator.
#
/opt/APC/PowerChuteBusinessEdition/Agent/cmdfiles/send_sms_power_off.sh
/home/vi-admin/upsVIShutdown.pl
Сначала отсылаем SMS, а потом выключаем виртуальные машины.
9. Указываем в качестве события пропадания напряжения на APC-UPS  скрипт send_sms_no_power.sh
Вот и все - теперь при пропадании напряжения будут идти увидомления на сотовый телефон. Так же можно сделать еще десяток скриптов и повесить их на разные события  - дело только в фантазии.

среда, 1 сентября 2010 г.

Vmware ESXi 4.1 и APC Smart-UPS 1000VA USB & Serial RM 2U

Каждому администратору использующему виртуализацию всегда доставляла боль защита виртуальных машин при отключении питания. Использование UPS спасало на половину, потому что обратной связи не было. В версии ESXi 4.1 появилась возможность проброса USB или COM  устройств на конкретную виртуальную машину.
И так имеем:
1. Smart APC  (по сути модел не имеет значения, главное наличие обратной связи)
2. Сервер виртуализации с установленным ESXi 4.1

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

1.  Необходимо скачать vMA vSphere Management Assistan
2.  Скачать с сайта http://www.apc.com для своего источника бесперебойного питания, программу PowerChute Business Edition 8.0.1 - Single Node Agen для Linux, найти её можно зарегистрировавшись и пройдя по ссылкам.
3. Понадобятся скрипты upsVIShutdown.pl и ghettoShutdown.pl

И так по порядку:
Делаем установку vMA на ESXi
 Производим запуск vMA, делаем сетевые настройки и задаем пароль юзера vi-admin  (пароль должен быть сложным).

С помощью WinSCP закидываем в домашний каталог наши 2 скрипта (upsVIShutdown.pl и ghettoShutdown.pl)  и pcbe801_linux.tar.gz скачанный с сайта APC.

Делаем наши скрипты исполняемыми.
[vi-admin@vma ~]$ chmod +x upsVIShutdown.pl
[vi-admin@vma ~]$ chmod +x ghettoShutdown.pl

Распаковываем наш PCBE и устанавливаем
[vi-admin@vma ~]$ tar -xzvf pcbe801_linux.tar.gz
[vi-admin@vma ~]$ cd Linux/
[vi-admin@vma ~]$ sudo rpm -ivh pbeagent-8.0.1-609.i386.rpm

Переименовываем файл /etc/vima-release:
[vi-admin@vma ~]$ sudo mv /etc/vima-release /etc/vima-rel

Производим настройку агента
[vi-admin@vma ~]$ sudo /opt/APC/PowerChuteBusinessEdition/Agent/config.sh
С нас потребуется ввод пароля и имени пользователя для доступа через WEB, а так же указание на каком COM порту находится наш UPS


Далее запускаем наш агент.
[vi-admin@vma ~]$ sudo /etc/init.d/PBEAgent start

Выключаем фаервол
[vi-admin@vma ~]$ sudo chkconfig iptables off 
[vi-admin@vma ~]$ sudo service iptables save 
[vi-admin@vma ~]$ sudo service iptables stop

Пробуем увидеть нашу панель управления через WEB http://10.129.0.9:3052 , у меня vMA находится на 10.129.0.9. На машине администратора должна быть установлена JAVA

Вводим пароль и имя пользователя который вносили при конфигурирование и видим наше чудо
Теперь остается дело за малым, указать нашему событию скрипт который будет гасить наши виртуальные машины.
 [vi-admin@vma /]$ sudo nano /opt/APC/PowerChuteBusinessEdition/Agent/cmdfiles/default.sh
 и добавляем туда наш скрипт
/home/vi-admin/upsVIShutdown.pl



теперь надо настроить наш скрипт что бы он гасил наши машины
[vi-admin@vma /]$ sudo nano /home/vi-admin/upsVIShutdown.pl


Последний шаг - привязываем хосты, чтобы гостевая ОС имела право их гасить:
[vi-admin@vma /]$ sudo bash
[root@vma /]# vifp addserver 10.129.0.2
[root@vma /]# vifp listservers
[root@vma /]# vifpinit

При срабатывании, скрипт отдаст команду погасить виртуальные машины и хосты, прописанные в конфиге.


P/S Устанавливать можно любую систему мониторинга написанную на JAVA, не обязательно это будет APC



вторник, 31 августа 2010 г.

Midnight Commander в Openfiler или 2 пути одного решения

В привычку некоторых людей, успешно вошло использование Midnight Commander (MC) в Linux. Openfiler не является исключением в Linux, в нем так же можно установить MC. Существует 2 пути установки простой и тернистый. Я опишу оба пути.

1. Простой путь, собственно самый короткий. Установки из репозитария.
# conary update mc=contrib.rpath.org@rpl:1/4.6.1a-1-0.1

2. Более сложный путь, с установкой из исходных кодов и установкой всего необходимого для компиляции
# conary update gcc
# conary update libtool
# conary update glib
# conary update glib:devel
# conary update glibc
# conary update glibc:devel
# conary update automake
# conary update autoconf
# conary update pkgconfig
# wget http://www.ibiblio.org/pub/Linux/utils/file/managers/mc/mc-4.6.1.tar.gz
# tar -xzvf mc-4.6.1.tar.gz
# cd mc-4.6.1
# ./configure
# make
# make install

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

Adaptec 5405 и Openfiler 64 bit

Используя Openfiler на сервере с контролером Adaptec 5405, у меня появилась мысль установить средства мониторинга и управления контроллером RAID.
Данная инструкция подойдет к любым средствам мониторинга которые написаны на JAVA
Что мы имеем:
1. Openfiler 64 bit
2. Контроллер Adaptec 5405
3. Персональный компьютер администратора с  установленной Windows 7 64 bit
И так по порядку:
Идём на сайт http://www.adaptec.com/en-US/downloads , и находим свой контроллер http://www.adaptec.com/en-US/support/raid/sas_raid/SAS-5405/ , далее ищем средства управления Storage Manager. Пройдясь по куче страниц с выбором версий и лицензионными соглашениями получаем ссылку на Adaptec Storage Manager Ver. 6.50.18579 for 64-bit Linux и Adaptec Storage Manager Ver. 6.50.18579 for 64-bit Windows
На компьютер администратора скачиваем версию для Windows и устанавливаем.
Соединяемся по ssh на Openfiler  и выполняем следующее:
# wget http://download.adaptec.com/raid/storage_manager/asm_linux_x64_v6_50_18579.tgz
# tar -xzvf asm_linux_x64_v6_50_18579.tgz
# cd manager/
# rpm2cpio StorMan-6.50.x86_64.rpm > Stror-temp.cpio
# cpio -idumv < Stror-temp.cpio
# mkdir /usr/StorMan/
# cp ./usr/StorMan/* /usr/StorMan/. -R
# cd /usr/StorMan/
# conary update sun-jre
# nano /usr/StorMan/StorAgnt.sh

в секции Linux ищем строку
JAVA_HOME="."
и правим на
JAVA_HOME="/usr/lib64/jvm/sun-java-5.0u17"

# chmod 774 /usr/StorMan/libSTORUTIL.so
# cp  stor_agent /etc/init.d/
# chmod +x /etc/init.d/stor_agent
# /etc/init.d/stor_agent start

Теперь запускаем на администраторской машине Adaptec Storage Manager и вводим IP и login с password , для коннекта к Openfiler и радуемся полученному результату
 
Теперь увидев полученный результат, нам необходимо добавить в автозагрузку старт нашего сервиса
# chkconfig --level 345 stor_agent on
# chkconfig --list
В списке видим наш stor_agent. Дальнейшая настройка контроллера совсем другая история