Установка DHCP сервера. Использование omapi для добавление хостов в пул
Задача:
Используя omapi создать скрипт добавления, редактирования или удаления хостов с заданными настройками в пул leases без перезагрузки самого сервера
Устанавливаем dhcp
apt-get install isc-dhcp-server
Устанавливаем дополнительно утилиты для генерации ключа
apt-get install bind9utils
Переходим в директорию где будет хранится ключ, например, /etc/dhcp/ и генерим ключ
dnssec-keygen -r /dev/urandom -a HMAC-MD5 -b 512 -n HOST omapi_key
Выводим ключ
cat Komapi_key.+*.private |grep ^Key|cut -d ' ' -f2-
Прописываем в файле конфигурации DHCP сервера ключ
vim /etc/dhcp/dhcpd.conf
+
omapi-port 9111; #Порт по которому будем коннектится
key omapi_key {
algorithm HMAC-MD5; #Алгоритм шифрования
secret "7jNFrkzJ5FmDYynPAMLNiob1F7qgyQM/F7S5p1xcUUNvlxfzqKN2wlle1rQYLMucDcmxO6rP9aDVJR/aIjiiHg=="; #В кавычках сам ключ
};
omapi-key omapi_key;
+
Создаём пустой пул адресов без описания
subnet 192.168.123.0 netmask 255.255.255.0 {
}
Описание скрипта bash с опробованными командами
#!/bin/bash
#Задаём параметры в виде описания переменных
IP_ADDRESS="192.168.123.105"
MAC_ADDRESS="00:0c:29:e7:61:02"
#Может быть любое
HOST_NAME="HELL_INSTANSE"
omshell << EOF
server localhost
port 9111
key omapi_key 7jNFrkzJ5FmDYynPAMLNiob1F7qgyQM/F7S5p1xcUUNvlxfzqKN2wlle1rQYLMucDcmxO6rP9aDVJR/aIjiiHg==
#Подключаемся
connect
#Создаём локальный объект
new host
#Задаём ему параметры
set name = "$HOST_NAME"
set hardware-address = $MAC_ADDRESS
set hardware-type = 1
set ip-address = $IP_ADDRESS
#####################################
#Асоциируем локальным объект с удалённым в таблице lease
#Если есть выведет полный перечень параметров
open
#####################################
#Создание объекта в таблице lease
#Можно проводить без команды open
create
#####################################
#Удаление записи в таблице lease
#Обязательная предшествующая команда open
remove
#####################################
#Модификация записи в таблице lease
#Обязательная предшествующая команда open
#которой предшествуют команды set однозначно определяющие объект
#Задаём нужный параметр (добавляем к перечню существующих)
set some-parametr = "some_varible"
#Или удаляем текущее значение какго-либо атрибута
unset some-parametr = "some_varible"
#Обновляем запись
update
#####################################
#Закрываем локальный объект с которым ма работаем
close
#Следующей командой можно продолжить работу, например
new host #Создаём локальный объект
# и так далее
EOF
Ссылки по теме:
http://linux.die.net/man/1/omshell
Комментариев нет:
Отправить комментарий