Сразу извинюсь за столь неудачное название. Ничего другого на ум не пришло (к сожалению). Да название пожалуй и не главное. Главное что я постараюсь написать дальше:)
А дальше я хочу рассказать как можно упростить установку/удаление программ и выполнение других административных задач одновременно на всех компьютерах в классе с помощью SSH.
Буквально на днях мне нужно было в одном интернет салоне установить некоторое Windows-приложение (разумеется под wine) сразу на всех компьютерах. Тут поневоле задумаешься об оптимизации процесса. Процесс был оптимизирован на столько, насколько это вообще возможно.
Первым делом для приложения был создан дистрибутив в виде shell-скрипта. Способ создания такого дистрибутива я описывал здесь. Потом встал вопрос "раскидывания" дистрибутива по машинам и его запуска.
На всех машинах стояла Kubuntu 7.10. Клиентские машины в зале имели адреса из диапазона 192.168.0.201-192.168.0.232. Касса (она же сервер) имела IP 192.168.0.131 (хотя в данный момент здесь это не важно).
Первым делом нужно было настроить авторизацию в SSH с помощью DSA-ключей. Как это сделать можно прочитать хотя бы здесь, однако для оптимизации этого процесса был написан следующий скрипт (слава богу на всех компьютерах в салоне пара логин/пароль для клиентов одинакова):
#!/bin/sh echo =================================== echo == Generating DSA-key == echo =================================== ssh-keygen -t dsa for host in `seq 201 232` ; do echo =================================== echo == Entering to 192.168.0.${host} == echo =================================== ssh-copy-id -i ~/.ssh/id_dsa.pub user@192.168.0.${host} done echo =================================== echo == Installing DSA-key == echo =================================== ssh-add
Пароль я тупо скопировал в буфер обмена и для его ввода тупо нажимал Shift+Ins:)
Далее переходим к копированию файлов на удалённые машины. Тут нам понадобится команда scp:
#!/bin/sh for host in `seq 201 232` ; do echo ======================================== echo == Installing on to 192.168.0.${host} == echo ======================================== scp install_prog.sh user@192.168.0.${host}:'~' ssh user@192.168.0.${host} 'chmod +x ~/install_prog.sh' ssh user@192.168.0.${host} '~/install_prog.sh' done
Всё! Работа закончена и можно идти домой:) Надеюсь что эта информация была полезной, хотя и не могу этого гарантировать.
mj 2008-04-13 23:10:37 (#)
Но это когда машин немного, а так - да, подобных скриптов у меня масса..