Лучший способ удаленной перезагрузки Ubuntu с Windows-машины

Предыстория: я собираюсь разместить серию машин Ubuntu в розничных точках, они используются как тупые киоски, чтобы показать серию слайдов на больших жидкокристаллических экранах телевизоров. После установки они не будут подключены к клавиатуре или мыши, но будут иметь фиксированный IP-адрес в локальной сети. Все настроено на автоматический запуск, нет автоматических обновлений, нет энергосбережения и т. Д. - я думаю, что мы довольно-таки хороши, чтобы отделиться от одной вещи. Мне нужен персонал розничной торговли, чтобы иметь возможность перезапустить коробки, если возникнет проблема.

У нас работает VNC (теперь, когда мы отключили улучшения рабочего стола!), Чтобы мы могли удаленно входить в машины, если нам это нужно, но мы не позволили бы персоналу розничной торговли делать это. <Я> Машины будут физически «вне пути» (вероятно, в потолочном пространстве), поэтому кнопка питания не легко доступна! .

Я хотел бы иметь некоторые средства, позволяющие персоналу розничной торговли перезагружать машину Ubuntu с рабочего стола одного из своих терминалов Windows. Я действительно не хочу давать им какой-то необработанный доступ к терминалу (командная строка их напугает!), И я не хочу, чтобы они использовали VNC (как указано выше). В идеале на рабочем столе Windows должен быть значок, они дважды щелкают по нему, отвечая на простой вопрос: «Вы уверены?» подскажите, а затем окно Ubuntu велит перезагрузить. Со стороны Windows это не будет проблемой, мы можем написать что-нибудь, используя Delphi, Python & amp; Qt4, что угодно - это сторона Ubuntu, с которой я застрял.

Могу ли я, чтобы программа Windows открыла терминал через сеть и попросила Ubuntu перезагрузить компьютер? Это то, для чего можно использовать SSH (я никогда такого не настраивал). Со стороны программирования для Windows на самом деле не проблема, просто я абсолютный нуб Ubuntu и не знаю, с чего начать с точки зрения платформы.

Еще одна вещь, которую мы рассмотрели, это то, что машина автоматически перезагружается в определенное время каждый день (очевидно, вне часов!). Мне это кажется немного ненужным (хотя может потребоваться принудительный перезапуск раз в неделю / месяц).

Есть мысли или предложения? Возможность перезапускать устройство по требованию через сеть - мое главное требование.

3
задан 23 August 2010 в 13:24

3 ответа

Если вы можете настроить ssh в Windows-машине, это должно быть довольно просто. Это то, что я делаю сейчас, чтобы выполнить некоторую удаленную команду с одного сервера Ubuntu на другой

ssh ip.number.0.28 -i /home/javier/.ssh/id_rsa_web -l javier "cd /home/javier/sincrotod;./sincroniza.py"

Часть -i говорит ssh использовать сертификат вместо использования логина с паролем. Порядок перезагрузки компьютера в командной строке: перезагрузка. Вам нужно быть уверенным, что пользователь, используемый для входа в систему, имеет разрешение на выключение машины.

0
ответ дан 23 August 2010 в 13:24

Могу ли я, чтобы программа Windows открыла терминал через сеть и попросила Ubuntu перезагрузить компьютер? Это то, что SSH можно использовать для [?]

Да. Это эффективно, как я это сделаю. Первым делом вы захотите установить Putty на компьютеры с Windows. Это позволяет вам входить по SSH. Но пока не беспокойтесь об этом. Давайте сделаем это задом наперед, начиная с машины Ubuntu.

Я бы написал скрипт на машине с Ubuntu для перезапуска. Если вы можете войти в ssh, скорее всего, вам не нужно делать полную перезагрузку. Вы можете утверждать, что вы «вполне можете», но это часто означает, что перезагрузка занимает в четыре или пять раз больше времени, чем нужно; это просто пустая трата времени.

Вы должны иметь возможность просто перезапустить GDM (sudo restart gdm), поэтому я бы написал интерактивный скрипт Python, который предлагает пользователю убедиться, что они уверены, что хотят перезапустить GDM. и затем перезапустите его. После этого он подождет пять секунд, а затем спросит их, работает ли он. Если нет, выполните полную перезагрузку (sudo reboot).

Редактировать: Существует также вероятность того, что вы сможете просто перезапустить приложение, отображаемое на этих экранах, даже не перезапуская GDM. Я не знаю, на что вы рассчитываете, но предположите все три и дайте пользователю возможность перезапускать каждый последовательно, начиная с приложения, затем с gdm, затем с машины.

Вы можете использовать проклятия, чтобы сделать этот вид красивее.

Далее вам нужно убедиться, что ваш пользователь Ubuntu может выполнять эти команды корневого уровня. Запустите sudoedit /etc/sudoers и добавьте что-то вроде этого:

Cmnd_Alias REBOOT = /sbin/reboot
Cmnd_Alias RESTART = /sbin/restart

useraccount   ALL=REBOOT
useraccount   ALL=RESTART

Подстановка useraccount для имени пользователя учетной записи, которая будет запускать этот сценарий.

Теперь вы должны войти в систему через SSH и протестировать скрипт.

Последняя часть головоломки - это подключение SSH к Ubuntu и автоматический запуск скрипта. Вы можете использовать сертификат (это, вероятно, более безопасно), но для этого примера я просто использую открытый текстовый пароль.

putty.exe useraccount@1.2.3.4 -pw password -m commands.txt

Очевидно, что подпункты useraccount, 1.2.3.4 и password с действительными значениями. commands.txt должен быть текстовым файлом на компьютере Windows, содержащим что-то вроде этого:

python my_python_script.py

Примечание: Путь, когда вы входите в систему, будет /home/useraccount/, поэтому либо поместите ваш скрипт на python там или изменить путь в commands.txt.

Важное примечание: Замазка закроется, как только ее команда завершит работу. Это означает, что ваш скрипт Python ДОЛЖЕН быть интерактивным (по крайней мере, спросите «Нажмите любую клавишу для продолжения» перед выходом), иначе пользователь не увидит никакого вывода. Это достаточно просто. Вы упомянули Python, поэтому я предполагаю, что вы знаете (или знаете, как узнать), как делать простые подсказки. Как я уже говорил ранее, простой интерфейс curses будет выглядеть наиболее профессионально.

Важное примечание 2: Иногда машина / программное обеспечение отказывают до такой степени, что жесткий перезапуск является единственным вариантом. Если вы работаете с компьютерами в труднодоступных местах, то, безусловно, стоит подумать о том, чтобы убедиться, что у вас есть доступ к их источнику питания, чтобы вы могли выполнить «жесткое включение» в качестве крайней меры. Убедитесь, что вы используете журналируемую файловую систему, чтобы сотрудники не облажались, если они используют это слишком часто, и предупреждают сотрудников, что, если они не используют ее в качестве крайней меры, злые цирковые люди украдут своих детей и т. Д. Есть несколько вещей, которые хуже, чем штатный сотрудник, который нажимает кнопку полного сброса при малейшем икоте.

0
ответ дан 23 August 2010 в 13:24

Другие вопросы по тегам:

Похожие вопросы: