четверг, 13 февраля 2014 г.

Ubuntu server. DHCP + omapi

Установка  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

Комментариев нет:

Отправить комментарий