Материал из Joonte Wiki
Перейти к: навигация, поиск
 
(не показаны 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

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