Была недавно задачка, добавить пачку адресов клиенту на сервер. Панельки никакой нет. Количество ip-ов близилось к сотне, из разных подсетей, поэтому техникой RANGE не удалось бы воспользоваться.

Пришлось костылить на скорую руку собственный скрипт, не сидеть же обезьянничать в самом деле…

Итак, приступим:

  • Создаем файлик со списком новых адресов — new_ip
  • Создаем шаблон для генерации конфига алиаса:
# cat temp
DEVICE=eth0:NUM
BOOTPROTO=static
ONBOOT=yes
IPADDR=IPNEW
NETMASK=255.255.255.255
  • Определяем count-переменную для цикла — # start_num=1
  • Теперь ключевая команда для генерации конфигов:
cat new_ip | while read a; do sed -e "s/NUM/${start_num}/g" -e "s/IPNEW/$a/g" temp > ifcfg-eth0:${start_num}; ((start_num++)); done

Тут в общем должно быть все понятно, мы выводим список адресов, берем по очереди каждый и заменяя необходимые переменные в нашем шаблоне вставляем туда адрес, после чего направляем готовый вывод в файл конфига алиаса. Тут нам и нужна эта переменная start_num, чтобы создавать каждый раз новое имя алиаса.

  • Ну и последние действия, копируем все созданные файлы в /etc/sysconfig/network-scripts/ и делаем service network restart

Все готово, поздравляю! 🙂