СЦЕНАРИЙ:
Я хочу, чтобы при запуске Linux-бокс подключался к веб-сайту Ruby on Rails, на котором есть список имен хостов, добавленных в модель. Окно Linux обновляет свое собственное имя хоста из следующей доступной записи имени хоста в списке И регистрирует свой MAC-адрес и IP-адрес на сайте rails. Жестко, верно?
Приложение Ruby on Rails
Host.rb (модель) ip_address:string, mac_address:string, hostname:string, available:boolean
Жесткая часть:
Я пытаюсь выяснить, как заставить Linux-бокс подключиться к сайту RoRs, чтобы увидеть все мои записи хостов, в которых будут перечислены все имена хостов. То есть:
id:1 hostname: "hostname-1", ip_address: nil, mac_address: nil, available: true
id:2 hostname: "hostname-2", ip_address: nil, mac_address: nil, available: true
id:3 hostname: "hostname-3", ip_address: nil, mac_address: nil, available: true
.. затем посмотрите на следующее доступное имя хоста и обновите себя до этого имени хоста, записывая mac_address и ip_address в эту запись.
После того, как Linux-бокс «загрузит» имя хоста, запись будет выглядеть так:
id:1 hostname: "hostname-1", ip_address: "192.168.1.10", mac_address: "00:13:EF:35:GH:00":, available: false
id:2 hostname: "hostname-2", ip_address: nil, mac_address: nil, available: true
id:3 hostname: "hostname-3", ip_address: nil, mac_address: nil, available: true
ЧТО Я ПРОБОВАЛ:
Я поместил новый файл в /etc/init.d/selfconfig
#! /bin/sh
# /etc/init.d/selfconfig
USER=root
HOME=/root
export USER HOME
# download remote /zip file with hostname inside
/usr/bin/wget -o /home/admin/selfconfig.zip http://examplewebsite.com/selfconfig.zip
# unzip the .zip file
/usr/bin/unzip -o /home/admin/selfconfig.zip /home/admin
# copy the hostname file to the primary hostname location
cp /home/admin/hostname /etc/hostname
exit 0
Это работает именно так, как я хочу, чтобы обновить имя хоста после перезагрузки, но файл имени хоста находится внутри статического файла .zip. Мне нужно иметь возможность динамически обновлять файл .zip или каким-то образом заставить Linux-бокс подключиться к самому сайту и получить список json или что-то в этом роде. Вот где я застрял.
ОБОСНОВАНИЕ:
Я собираюсь настроить около 150 таких машин, и это устранит НАСТОЛЬКО хлопот.
У кого-нибудь есть идеи?