Материал из Joonte Wiki
Alex Keda (обсуждение | вклад) |
Alex Keda (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
| + | Может быть вызван скрипт, ему передётся два параметра - действие, и путь к файлу с настройками, вида | ||
| + | #!/bin/sh | ||
| + | SettingsID="47" | ||
| + | SettingsTemplateID="DS" | ||
| + | SettingsServersGroupID="24" | ||
| + | SettingsIsActive="1" | ||
| + | SettingsIsDefault="1" | ||
| + | .... | ||
| + | т.е. обычный шелл-скрипт с набором переменных | ||
| + | |||
'''1. в разделе''' | '''1. в разделе''' | ||
Дополнения → Мастера настройки → Прочее → Группы серверов | Дополнения → Мастера настройки → Прочее → Группы серверов | ||
| Строка 55: | Строка 65: | ||
# непонятно что передали... | # непонятно что передали... | ||
/путь/к/скрипту/управления/интерфейсом/manage.interfaces.pl $action $switch $port | /путь/к/скрипту/управления/интерфейсом/manage.interfaces.pl $action $switch $port | ||
| + | |||
| + | обратите внимание, что файл с настройками (который передаётся вторым параметром) удалется после того как сприт был вызван и отработал | ||
Версия 20:49, 1 октября 2019
Может быть вызван скрипт, ему передётся два параметра - действие, и путь к файлу с настройками, вида
#!/bin/sh SettingsID="47" SettingsTemplateID="DS" SettingsServersGroupID="24" SettingsIsActive="1" SettingsIsDefault="1" ....
т.е. обычный шелл-скрипт с набором переменных
1. в разделе
Дополнения → Мастера настройки → Прочее → Группы серверов
создаём группу выделенных серверов
2. в разделе
Дополнения → Мастера настройки → Прочее → Сервера
создаём управляющий сервер, с шаблоном "Выделенный сервер" в настройках выбираем систему управления - "Скрипты", в строку "Внешний скрипт" вписываем путь до скрипта, например
DS/server.manage.sh
создаём соответствующую директорию и скрипт на сервере:
mkdir hosts/__HOSTNAME__/scripts/DS vim hosts/__HOSTNAME__/scripts/DS/server.manage.sh
делаем его исполняемым, проставляем права и владельца:
chmod 500 hosts/__HOSTNAME__/scripts/DS/server.manage.sh chown BillingUser hosts/__HOSTNAME__/scripts/DS/server.manage.sh
пример содержимого скрипта
#!/bin/sh
# что делаем
action=$1
# переменные
. $2
switch=`echo $SchemeSwitch | awk '{print $1}'`
port=`echo $SchemeSwitch | awk '{print $2}'`
# в настройках забит адрес ilo как http://1.2.3.4/
ILO=`echo $SchemeILOaddr | awk -F / '{print $3}'`
# сервер создаётся или включается
if [ $action = "Create" -o $action = "Active" ]
then
# включаем порт
/путь/к/скрипту/управления/интерфейсом/manage.interfaces.pl $action $switch $port
# ждём секунд 30, пока просрётся сеть
sleep 30
# включаем сам сервер через IPMI/lo100
ipmitool -I lanplus -H $ILO -U $SchemeILOuser -P $SchemeILOpass chassis power on
exit 0;
fi
# удаление или выключение
if [ $action = "Delete" -o $action = "Suspend" ]
then
# вЫключаем сам сервер через IPMI/lo100, пробуем кнопку нажать
ipmitool -I lanplus -H $ILO -U $SchemeILOuser -P $SchemeILOpass chassis power soft
# ждём минуту. обычно, более чем достаточно
sleep 60
# жётско гасим сервер
ipmitool -I lanplus -H $ILO -U $SchemeILOuser -P $SchemeILOpass chassis power off
# вЫключаем порт
/путь/к/скрипту/управления/интерфейсом/manage.interfaces.pl $action $switch $port
exit 0;
fi
# непонятно что передали...
/путь/к/скрипту/управления/интерфейсом/manage.interfaces.pl $action $switch $port
обратите внимание, что файл с настройками (который передаётся вторым параметром) удалется после того как сприт был вызван и отработал