Krutoy 1 169 Опубликовано: 5 июня, 2015 Тем временем, мной проведена работа по организиции обновления моих серверов (интернет-сервер, и сервер обновлений). [ok=Добавленно автообновление программ из пакета opennet][/ok] Теперь, установив opennet один раз, новые файлы и патчи будут закачиваться автоматически при перезагрузки компьютера. Изменена строка установки, теперь она выглядит так: on=component.modem;e=event;on.open(1)on.broadcast(1,"","","getip")function m()r={e.pull(10,"modem_message")}end;m()ud="update"ip=r[6]function sv()on.send(r[3],1,ud,ip,ud,"getFile","client/"..p)m()filesystem.makeDirectory(filesystem.path(p))f=io.open(p,"w")f:write(r[8])f:close()end p="lib/opennet.lua"sv()p="on/update.lua"sv()loadfile(p)("install") Напомню, гайд по установке в этом посте. Еще, по просьбе Алекса, папка /on добавленна в системные пути, и ее не нужно прописывать. Кстати, скриншот консоли самого сервера. Пока еще много бутафории, но уже есть сразу 2 работающие консоли на разных частях экрана. 4 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
swg2you 403 Опубликовано: 17 июня, 2015 (изменено) Изменена строка установки, теперь она выглядит так: on=component.modem;e=event;on.open(1)on.broadcast(1,"","","getip")function m()r={e.pull(10,"modem_message")}end;m()ud="update"ip=r[6]function sv()on.send(r[3],1,ud,ip,ud,"getFile","client/"..p)m()filesystem.makeDirectory(filesystem.path(p))f=io.open(p,"w")f:write(r[8])f:close()end p="lib/opennet.lua"sv()p="on/update.lua"sv()loadfile(p)("install") Не зная логики сервера полагаю, что можно сделать как-то так: M=component.modem;M.open(1)M.broadcast(1,"","","getip")E=load('R={event.pull(10,"modem_message")}')U="update"E()M.send(R[3],1,U,R[6],U,"getFile","client/boot")E()load(R[8])() --и развернуто M=component.modem; M.open(1) M.broadcast(1,"","","getip") E=load('R={event.pull(10,"modem_message")}') U="update" E() M.send(R[3],1,U,R[6],U,"getFile","client/boot") E() load(R[8])() В смысле грузить код из "boot" а в нем уже творить все остальное. ЗЫ Интерфейс консоли сервера зачотный _/_/_/_/ _/_/_/_/ _/_/_/_/ _/_/_/ _/_/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/_/ _/_/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/_/_/ _/_/_/_/ _/_/_/_/ _/_/_/_/_/_/ _/_/ _/ _/ _/_/_/_/ _/_/_/ _/_/_/ _/ _/ _/ _/ _/ _/_/_/ _/ _/ _/ _/ _/ _/_/_/_/_/ _/ _/ _/ _/ _/ _/ _/ _/_/_/ _/_/_/_/ _/ _/ _/ _/ _/_/ _/_/_/ _/_/_/_/ _/ _/ _/ _/ _/_/_/_/_/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ рулит Изменено 17 июня, 2015 пользователем swg2you 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 624 Опубликовано: 17 июня, 2015 Роутер подняли, поднимите и интернет сервер. Установить пока может только файликом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Krutoy 1 169 Опубликовано: 17 июня, 2015 Роутер подняли, поднимите и интернет сервер. Установить пока может только файликом. Хорошо, завтра поставлю. Но нужно будет что бы вы запустили не только ON роутер но и DNS сервер. В смысле грузить код из "boot" а в нем уже творить все остальное. Там проблема в архитектуре, которую мне пока не хватает опыта решить.Дело в том, что opennet-роутеры, которые перенаправляют сообщения от одних компов к другим, работают по своим правилам-протоколам. Эти протоколы прописаны в файле opennet.lua Например, программист последовательность параметров в on.send() может поменять, и тогда мне нужно будет менять эти последовательности и в установочной строке. Если же грузить "boot" файл, то мне придется менять эти правила уже в 3х местах, что уже накладно. По-хорошему, нужно что бы при установке грузился только 1 файл, где прописаны и правила работы с сетью и дальше код установщика. Но файл opennet.lua расчитан не на это. Поэтому нужно еще думать. >>Интерфейс консоли сервера зачотный Вот бы еще это всё оживить, и тогда будет смак. Пока только консоль по одной буковке печатает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 624 Опубликовано: 17 июня, 2015 запустили ON роутер Именно мы с монстриком ничего не запускали, мы только проверили, поставив апишку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 18 июня, 2015 Роутер подняли, поднимите и интернет сервер. Именно мы с монстриком ничего не запускали, мы только проверили, поставив апишку. Так роутер работает или нет? Может сегодня будет время, поставлю DNS Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 624 Опубликовано: 18 июня, 2015 Так роутер работает или нет? Может сегодня будет время, поставлю DNS Роутер работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Krutoy 1 169 Опубликовано: 18 июня, 2015 Opennet снова заработал Восстановлены роутеры, DNS, Internet и Update серверы Всё это доступно счастливым обладателям жилплощади недалеко от дата-центра (~300 блоков от телепорта). Как начать работу с opennet читайте в моем посте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 19 июня, 2015 Кто возьмет на себя поднятие и поддержание web-сервера? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 398 Опубликовано: 19 июня, 2015 Кто возьмет на себя поднятие и поддержание web-сервера? Хм... Интересно, а откуда брать софт? А веб-сервер и в ДЦ поставить можно. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 19 июня, 2015 Хм... Интересно, а откуда брать софт? -- Web-server by Zer0Galaxy on = require("opennet") fs = require("filesystem") ser = require("serialization").serialize webDir='/web/' maxPacketSize=8000 pwd="secret" local myIP,err=on.getIP() if not myIP then print(err) return end local sendIP, command commands={} function commands.ping() return "pong" end function commands.ver() return "Web-server ver 1.1" end function commands.get(path) path=path or 'index' file=io.open(webDir..path,'r') if not file then file=io.open(webDir..'404','r') end if file then text=file:read("*a") file:close() else text="Файл "..path.." не найден" end if #text>maxPacketSize then text="Файл слишком большой" end return text end function commands.list(path) local result={} path=webDir..(path or "") for name in fs.list(path) do result[#result+1]=name end return ser(result) end function commands.put(path,text,passwd) if passwd==pwd then file=io.open(webDir..path,'w') if not file then return "Неверное имя файла" end file:write(text) file:close() return "Файл сохранен" end return "Неверный пароль" end while true do local dat = {on.receive()} sendIP, command = dat[1], dat[2] if command then if commands[command] then on.send(sendIP, command, commands[command](table.unpack(dat,3)) ) else on.send(sendIP, false, command, "Недопустимая команда" ) end end end Надо только подумать над содержимым страниц А веб-сервер и в ДЦ поставить можно. Конечно можно 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 398 Опубликовано: 19 июня, 2015 (изменено) Большинство уже забыло про такую крутую штуку, как OpenNet, но только не я. Он должен жить! И он будет жить!В общем, приятные новости из дата-центра: поднят и сконфигурирован первый Web-сервер на новом ИТ, доступный по адресу dcweb. Добавил с десяток страничек, между которыми можно переключаться. И, как вишенка на тортике, можно скачать первый файл с сервера. Серфите, в общем)) Ах да, скрины. Кстати, для ленивых: в западной части ДЦ, у входа, поставил комп с вечно открытым браузером Изменено 19 июня, 2015 пользователем Fingercomp 5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asummonster 592 Опубликовано: 20 июня, 2015 А как свои сайты добавлять? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 22 июня, 2015 (изменено) А как свои сайты добавлять? Если на существующий сервер - обращайся к владельцу сервера. Если свой сервер хочешь - напишу инструкцию как. А пока планируется переход на новый протокол ОН. Это позволит передавать пакеты произвольной длины (сейчас ограничение 8кБ), а так же будут генерироваться события on_massage по приходу пакета, что позволит обойтись без функции on.receive() Изменено 22 июня, 2015 пользователем Zer0Galaxy 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 624 Опубликовано: 22 июня, 2015 ...а так же будут генерироваться события on_massage по приходу пакета, что позволит обойтись без функции on.receive() А можно будет использовать event.listen? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 22 июня, 2015 А можно будет использовать event.listen? Конечно. Именно его я и планирую использовать в реализации проекта FTP Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asummonster 592 Опубликовано: 22 июня, 2015 А я создал своё жалкое подобие ssh, которое запускается через костыль 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
swg2you 403 Опубликовано: 22 июня, 2015 А я создал своё жалкое подобие ssh, которое запускается через костыльХотеть смотреть! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asummonster 592 Опубликовано: 22 июня, 2015 Хотеть смотреть!Заходи на сервер в ~10 по мск. Можно и в 8. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Syabro 80 Опубликовано: 25 июня, 2015 Я так понимаю что OpenNet работает за счет карты-моста но может и по Wi-Fi работать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах