Материал из Joonte Wiki
Версия от 15:49, 6 марта 2020; Alex Keda (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Может быть вызван скрипт, ему передётся два параметра - действие, и путь к файлу с настройками, вида

#!/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

обратите внимание, что файл с настройками (который передаётся вторым параметром) удаляется после того как скрипт был вызван и отработал