Материал из Joonte Wiki
Alex Keda (обсуждение | вклад) |
Alex Keda (обсуждение | вклад) |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
+ | Может быть вызван скрипт, ему передётся два параметра - действие, и путь к файлу с настройками, вида | ||
+ | #!/bin/sh | ||
+ | SettingsID="47" | ||
+ | SettingsTemplateID="DS" | ||
+ | SettingsServersGroupID="24" | ||
+ | SettingsIsActive="1" | ||
+ | SettingsIsDefault="1" | ||
+ | .... | ||
+ | т.е. обычный шелл-скрипт с набором переменных | ||
+ | |||
'''1. в разделе''' | '''1. в разделе''' | ||
Дополнения → Мастера настройки → Прочее → Группы серверов | Дополнения → Мастера настройки → Прочее → Группы серверов | ||
Строка 9: | Строка 19: | ||
DS/server.manage.sh | DS/server.manage.sh | ||
создаём соответствующую директорию и скрипт на сервере: | создаём соответствующую директорию и скрипт на сервере: | ||
− | mkdir hosts/__HOSTNAME__/scripts/DS | + | mkdir -p hosts/__HOSTNAME__/scripts/DS |
vim hosts/__HOSTNAME__/scripts/DS/server.manage.sh | vim hosts/__HOSTNAME__/scripts/DS/server.manage.sh | ||
делаем его исполняемым, проставляем права и владельца: | делаем его исполняемым, проставляем права и владельца: | ||
Строка 22: | Строка 32: | ||
. $2 | . $2 | ||
+ | # в настройках порта коммутора, в тарифе, прописано типа "ex2200.isp.su ge-0/0/23", | ||
+ | # т.е. имя (IP) коммутатора и порт куда включен сервер | ||
switch=`echo $SchemeSwitch | awk '{print $1}'` | switch=`echo $SchemeSwitch | awk '{print $1}'` | ||
port=`echo $SchemeSwitch | awk '{print $2}'` | port=`echo $SchemeSwitch | awk '{print $2}'` | ||
Строка 46: | Строка 58: | ||
# ждём минуту. обычно, более чем достаточно | # ждём минуту. обычно, более чем достаточно | ||
sleep 60 | sleep 60 | ||
− | # | + | # жёстко гасим сервер |
ipmitool -I lanplus -H $ILO -U $SchemeILOuser -P $SchemeILOpass chassis power off | ipmitool -I lanplus -H $ILO -U $SchemeILOuser -P $SchemeILOpass chassis power off | ||
# вЫключаем порт | # вЫключаем порт | ||
Строка 55: | Строка 67: | ||
# непонятно что передали... | # непонятно что передали... | ||
/путь/к/скрипту/управления/интерфейсом/manage.interfaces.pl $action $switch $port | /путь/к/скрипту/управления/интерфейсом/manage.interfaces.pl $action $switch $port | ||
+ | |||
+ | обратите внимание, что файл с настройками (который передаётся вторым параметром) удаляется после того как скрипт был вызван и отработал |
Текущая версия на 18:49, 6 марта 2020
Может быть вызван скрипт, ему передётся два параметра - действие, и путь к файлу с настройками, вида
#!/bin/sh SettingsID="47" SettingsTemplateID="DS" SettingsServersGroupID="24" SettingsIsActive="1" SettingsIsDefault="1" ....
т.е. обычный шелл-скрипт с набором переменных
1. в разделе
Дополнения → Мастера настройки → Прочее → Группы серверов
создаём группу выделенных серверов
2. в разделе
Дополнения → Мастера настройки → Прочее → Сервера
создаём управляющий сервер, с шаблоном "Выделенный сервер" в настройках выбираем систему управления - "Скрипты", в строку "Внешний скрипт" вписываем путь до скрипта, например
DS/server.manage.sh
создаём соответствующую директорию и скрипт на сервере:
mkdir -p 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 # в настройках порта коммутора, в тарифе, прописано типа "ex2200.isp.su ge-0/0/23", # т.е. имя (IP) коммутатора и порт куда включен сервер 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
обратите внимание, что файл с настройками (который передаётся вторым параметром) удаляется после того как скрипт был вызван и отработал